Show HN: VinvAI runs and observes your services to find bugs and perf issues

itsAnshul1 pts0 comments

Vinv (Vibe Inverse) — runs your services, finds issues, and verifies fixes, with zero code changes

vinv.ai/open source · Apache 2.0<br>☀ light/Install — free →/GitHub →

run · test · find · prove — 100% local<br>Vinv (Vibe Inverse) runs your services, finds issues, and verifies fixes — with zero code changes.<br>It connects runtime traces to the source code that produced them, hands that evidence to your coding agent, then runs the code again to verify the fix actually works.<br>Then nothing lands unless it survives acceptance tests written before the fix that the agent never sees — judgement comes from what the code actually did, not from what the agent claims.<br>Vinv even uses Thompson sampling to decide how much runtime context to give the agent — because more is not always better.<br>Python first — services and APIs. TypeScript and Go next. Free and open source, Apache 2.0. No account, no API keys, no telemetry.

install<br>Use it from your IDE, your CLI, or any MCP-compatible agent. Vinv isn't another coding agent — it's the runtime-evidence layer underneath the one you already use.<br>// pick your editoropens Vinv in your editor<br>VS Codeinstall →stableCursorinstall →agent-nativeWindsurfinstall →codeiumVSCodiuminstall →open buildTraeinstall →bytedanceInsidersinstall →nightly<br>Each button hands off to your editor and opens the Vinv page — one click to install. Deep link not working? Open the listing directly on Open VSX.<br>// or — no editor, any MCP clientpip + MCP<br>pip install vinvclaude mcp add vinv -- npx -y vinv-mcp<br>No editor needed. This installs the engines and registers Vinv with any MCP client — it finds your open workspace automatically and exposes every Vinv tool (semantic search, dead code, fault localization, runtime evidence) to Claude Code, Cursor, or any agent, with no extension installed. See vinv-mcp and vinv on PyPI.<br>On first run Vinv builds its engines in a terminal you can watch, and fetches a one-time ~500 MB local embedding model. You need uv and Rust, plus a coding-agent CLI you already pay for. No account, no API keys, about four minutes. It all lives in one open repository.

demo

// watch the 2-minute demo — cold repo to a proven fixevery arrow is evidence

// one command starts it — Vinv drives the other eight stagesevery arrow is evidence

context beats model size<br>Receipts first — then how the loop produces them. Vinv found four bugs and one performance problem in fastapi/full-stack-fastapi-template (~44k★). Same five issues, same prompts, Vinv grading every run:<br>Commodity model + Vinv evidence4 bugs + 1 optimizationFrontier model, blind1 bugCommodity model, blindnothingOne trial per condition — a demonstration, not a benchmark. Blind, the commodity model scored zero. Hand it the failing frame, the caller chain, and the real argument values, and it beats a stronger model guessing from static code. The evidence is what moved, not the weights.<br>On that same pristine template the optimization loop later detected — from live traces alone — that the app's default database pool makes requests queue for connection checkouts under concurrent load, dispatched the pool-sizing fix, and proved it: sustained-load median 75.6ms → 41.2ms, 45.4% faster (95% CI [36.3%, 45.8%]) , responses byte-identical. Two earlier attempts whose measurement windows couldn't certify the win were auto-reverted — the accept landed only when the evidence did.

// FastAPI template — pool starvation under sustained load45.4% · CI excludes zero · byte-identicalSame discipline, upstream on Hugging Face. Pointed at huggingface/smolagents (~28.5k★) — public Apache-2.0 agent framework, no affiliation — the allocation loop found and proved a fast-path in sanitize_for_rich. Benchmarked with tracemalloc on a realistic 4 KB log line: transient per-call allocation 36.27 KB → 0.00 KB (~37,137× less) ; end-to-end on log_task, ~615.7 KB → ~125 B across 3 calls; output byte-identical across 2,015 inputs. Upstream as PR #2572.

// huggingface/smolagents#2572 · light-theme GitHubbenchmarked · reproducible proof in the PRThat is how come after it: oracles find the waste, your agent proposes the edit, paired-bootstrap + byte-identical replay decide accept or revert, and only then does anything go upstream. What follows is the machinery behind those receipts.

the part nobody automated<br>84% of developers use or plan to use AI coding tools, and more of them actively distrust the output (46%) than trust it (33%) — distrust nearly doubled in a year. The agent edits the wrong handler, invents return shapes, then grades its own homework while the server won't start.<br>We automated writing and left proving manual. So the work moved instead of disappearing. Meanwhile the repo fills up: duplication climbs, refactoring falls, and dead code accumulates — and every dead module competes for your agent's context window, making the next answer worse.<br>Vinv automates the proving. Then, and only then, the finding and the fixing.

under the hood: the oracle roster<br>You never...

vinv agent code open evidence model

Related Articles