ventrox

ventrox

Enables coding agents to log friction events (tried, failed, minutes lost) and allows reviewers to cluster, rank, and resolve these vents locally without network access.

Category
访问服务器

README

Ventrox

A coding agent hits the same wall many times a day, and nobody sees it. Ventrox adds one tool call to the agent: what it tried, what failed, minutes lost. The agent cannot read vents back; the server stamps each with session, project, branch, and time. A reviewer starts VENTROX_SECRET=$(ventrox grant) claude and lists vents grouped by rough similarity, ranked by count and minutes. The wall that cost the most minutes comes first. A few hundred lines of Python, one SQLite file in your home directory, two commands to install. Nothing goes over the network, and nothing lands in your repo. Clustering is TF-IDF on n-grams and misses synonyms; redaction is a regex list, best effort. Limits: 20 vents per session, 5 per 10 minutes. The idea comes from Lovable's vent tool and vent-widget.

Install

Install Ventrox as a global tool:

uv tool install git+https://github.com/Vetrox/ventrox.git

Or clone and install from the checkout:

git clone https://github.com/Vetrox/ventrox && cd ventrox && uv tool install .

Then run setup:

ventrox setup

Setup copies the ventrox-report and ventrox-review skills into ~/.claude/skills/. It then registers the MCP server with claude mcp add --scope user ventrox -- ventrox.

Use

Reporter: the agent calls ventrox_vent with tried, failed, and minutes_lost. It writes one vent per turn, and only after the same friction repeats (two failures or more than 10 minutes). It corrects a vent in the same session with ventrox_edit. The server accepts 20 vents per session and 5 vents per 10 minutes.

Reviewer: start a session with a single-use token:

VENTROX_SECRET=$(ventrox grant) claude

The token is single-use and valid for 10 minutes. The session then holds the reviewer tools. Call them in this order:

  1. ventrox_recluster groups open vents by vocabulary overlap.
  2. ventrox_clusters lists the groups ranked by open count, then minutes lost.
  3. ventrox_resolve_cluster marks a group resolved or wontfix.

Uninstall

ventrox setup --remove
uv tool uninstall ventrox
rm -r ~/.local/share/ventrox   # deletes all vents

Tools

Tool Mode Arguments Returns
ventrox_vent reporter tried, failed, minutes_lost id, or error
ventrox_edit reporter id, plus any of tried, failed, minutes_lost ok
ventrox_get reviewer id the vent, or error
ventrox_search reviewer query, status (optional), limit (default 20, max 100) results, newest first
ventrox_clusters reviewer none clusters ranked by open count, then minutes lost
ventrox_recluster reviewer none clusters count, vents count
ventrox_resolve reviewer id, status (resolved or wontfix) ok
ventrox_resolve_cluster reviewer cluster_id, status (resolved or wontfix) ok, changed count

Text fields hold 1 to 4000 characters. minutes_lost ranges from 0 to 1440.

Environment variables

Variable Purpose Default
VENTROX_HOME Data directory unset
VENTROX_SESSION Session ID generated per process
VENTROX_SECRET Grant token for a reviewer session; single-use, valid 10 minutes unset
VENTROX_EXAMPLES Path to a file with project examples unset
VENTROX_MAX_PER_SESSION Vents the server accepts per session 20
VENTROX_MAX_PER_10MIN Vents the server accepts per 10 minutes 5

Data location

The server picks the first of $VENTROX_HOME, $XDG_DATA_HOME/ventrox, and ~/.local/share/ventrox. All vents live in vents.db in that directory. The file is plain SQLite with no encryption; only file permissions protect it. The server refuses to start when the data directory is inside a git worktree, and exits with code 2.

Skills

ventrox-report tells the agent when a friction counts as a vent and what the three fields must contain. ventrox-review tells a reviewer to run recluster, clusters, then resolve. ventrox setup installs both.

Project examples

Put a .ventrox.md file at the project root to add project-specific examples of good vents. Set VENTROX_EXAMPLES to a file path to add examples for all projects. The server appends both to the ventrox_vent tool description.

Develop

uv sync
uv run pytest
uv run ventrox

Non-goals

Ventrox does not sync to an issue tracker. It has no multi-user mode. It records no tool-call traces, only the three fields the agent writes. It opens no network connection.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选