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
Visit Server

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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured