pip install vinv
Vinv runs, tests, and finds issues in your services — with zero code changes.
Python services & APIs · runs on your machine · no account, no API keys, no telemetry
Vinv watches a real run of your Python services and hands your AI coding agent the actual execution evidence — traces, argument values, the failing frame — instead of leaving it to guess from static text. Then it won't let a fix land until it passes acceptance tests written before the fix that the agent never sees.
Your coding agent (Claude Code, Cursor, Copilot…) is the only LLM. No new bill, no provider keys.
Install
pip install vinv
Or run any engine with zero install via uv:
uvx --from vinv exerciser campaign ./my-service --budget 20
First run fetches a one-time ~500 MB local embedding model. Python 3.12–3.14.
Context beats model size
Vinv found four bugs and one performance problem in fastapi/full-stack-fastapi-template (~44k★). Same five issues, same prompts, Vinv grading every run:
| Setup | Fixed |
|---|---|
| Cheap commodity model + Vinv evidence | 4 bugs + 1 optimization |
| Frontier model, working blind | 1 bug |
| Cheap commodity model, working blind | nothing |
One trial per condition — a demonstration, not a benchmark. The evidence is what moved, not the weights.
On the same template the optimization loop detected connection-pool starvation from live traces alone, dispatched the fix, and proved it: sustained-load median 75.6ms → 41.2ms, 45.4% faster (95% CI [36.3%, 45.8%]), responses byte-identical. Upstream on Hugging Face, it found and proved an allocation fast-path in smolagents — ~37,000× less transient allocation, output byte-identical across 2,015 inputs (PR #2572).
What you get — Run · Test · Find · Prove
- 🏃 Run — brings every service in your repo up under tracing with zero edits to your code: timings, arguments, return values, call trees, from the real run.
- 🧪 Test — drives real requests through every endpoint (valid, boundary, negative, authenticated) and banks each response as a permanent regression case.
- 🔎 Find — surfaces what actually broke or slowed down: server errors, crashes, latency hotspots, memory leaks, and dead code — each tied to the exact source line.
- ✅ Prove — hands that evidence to your coding agent, then verifies its fix against acceptance tests it never sees. A "faster" change that alters any output is auto-reverted.
The engines
pip install vinv installs one package that ships every engine as a console script:
| Command | What it does |
|---|---|
exerciser campaign <repo> --budget N |
Start here. One budget across every armed oracle; reports which technique paid |
tracelens run -- <cmd> |
Zero-edit runtime tracing of a Python service or CLI |
identification consolidate <repo> |
Join traces to source; produce the API/call-graph map |
bringup … · goal … · handbook … |
Service discovery, fix episodes, and the codebase handbook |
vinv-embedder |
The local embedding sidecar (no cloud keys) |
Works with any MCP client
Vinv is also an MCP server — point Claude Code, Cursor, or any MCP-compatible agent at
it and your agent gets vinv_query (semantic code search), rank_suspects (fault
localization over real runs), runtime values_of / slice / coverage_of, and a
vinv_session tool that drives the whole verify/optimize loop from chat.
Privacy
100% local. No telemetry, no analytics, no usage pings. Traces stay on your machine and sensitive values are redacted. Apache-2.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vinv-0.0.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: vinv-0.0.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1b626505d8a5db09fe9177aad90a45beedc190ae736e12668633ff36e4c05a5
|
|
| MD5 |
d95272bbc06b61962e8e937e3054aa0d
|
|
| BLAKE2b-256 |
326fc3c03e4c6e41fac2cc8bd1ac5d23efd3f2017f7d6a87528d19f8262c2d87
|
Provenance
The following attestation bundles were made for vinv-0.0.1-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on VinvAI/VinvAI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vinv-0.0.1-cp313-cp313-win_amd64.whl -
Subject digest:
c1b626505d8a5db09fe9177aad90a45beedc190ae736e12668633ff36e4c05a5 - Sigstore transparency entry: 2539961855
- Sigstore integration time:
-
Permalink:
VinvAI/VinvAI@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Branch / Tag:
refs/tags/pypi-v0.0.1 - Owner: https://github.com/VinvAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Trigger Event:
push
-
Statement type:
File details
Details for the file vinv-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: vinv-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d35a6e77e93abeb4e63842b80cf2a63c280f2ffbe7e2c560e2f8510670cfa005
|
|
| MD5 |
368ed4111d4f0d26028d2c56d3991c03
|
|
| BLAKE2b-256 |
fda55569ca732c58dde9fb819958fa2aa16b70669204cefbf1c679ceeeb972a6
|
Provenance
The following attestation bundles were made for vinv-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on VinvAI/VinvAI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vinv-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
d35a6e77e93abeb4e63842b80cf2a63c280f2ffbe7e2c560e2f8510670cfa005 - Sigstore transparency entry: 2539962009
- Sigstore integration time:
-
Permalink:
VinvAI/VinvAI@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Branch / Tag:
refs/tags/pypi-v0.0.1 - Owner: https://github.com/VinvAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Trigger Event:
push
-
Statement type:
File details
Details for the file vinv-0.0.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: vinv-0.0.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f5db5b2132976aed6add68d5a2ba1fe119c46ebe914ba6a97899ba131834e6b
|
|
| MD5 |
c8604e9ee58b594e21930b2a72c4e936
|
|
| BLAKE2b-256 |
93301285afee0b3299714f052e311bc4f777964364049902ae7f9a067dcc0834
|
Provenance
The following attestation bundles were made for vinv-0.0.1-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
publish.yml on VinvAI/VinvAI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vinv-0.0.1-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
2f5db5b2132976aed6add68d5a2ba1fe119c46ebe914ba6a97899ba131834e6b - Sigstore transparency entry: 2539961618
- Sigstore integration time:
-
Permalink:
VinvAI/VinvAI@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Branch / Tag:
refs/tags/pypi-v0.0.1 - Owner: https://github.com/VinvAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Trigger Event:
push
-
Statement type:
File details
Details for the file vinv-0.0.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: vinv-0.0.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d26a214c48db0d359e247b53c9142f06db4a285382899d747ce479b478d26a9b
|
|
| MD5 |
8acaf693d4abdc2dd67261433e68e539
|
|
| BLAKE2b-256 |
4849353a2fd669a9ea2a1e4544654b4581609d79ef9dc559139ede9eab46a305
|
Provenance
The following attestation bundles were made for vinv-0.0.1-cp312-cp312-win_amd64.whl:
Publisher:
publish.yml on VinvAI/VinvAI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vinv-0.0.1-cp312-cp312-win_amd64.whl -
Subject digest:
d26a214c48db0d359e247b53c9142f06db4a285382899d747ce479b478d26a9b - Sigstore transparency entry: 2539961741
- Sigstore integration time:
-
Permalink:
VinvAI/VinvAI@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Branch / Tag:
refs/tags/pypi-v0.0.1 - Owner: https://github.com/VinvAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Trigger Event:
push
-
Statement type:
File details
Details for the file vinv-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: vinv-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac75042d87582577bdac3e41adc56c6a7bb19f5be21a5f414146b4997880e412
|
|
| MD5 |
b4c98f7a1bf9a6e5349c586c8d3288d4
|
|
| BLAKE2b-256 |
882a04bc6e5b0ccb53ddcf0183a3f24eb2031582e0f2e272827ec53ff75770fd
|
Provenance
The following attestation bundles were made for vinv-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on VinvAI/VinvAI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vinv-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
ac75042d87582577bdac3e41adc56c6a7bb19f5be21a5f414146b4997880e412 - Sigstore transparency entry: 2539961266
- Sigstore integration time:
-
Permalink:
VinvAI/VinvAI@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Branch / Tag:
refs/tags/pypi-v0.0.1 - Owner: https://github.com/VinvAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Trigger Event:
push
-
Statement type:
File details
Details for the file vinv-0.0.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: vinv-0.0.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0f0dda3e8ad939255f17d303c8cef87034ff6870900791740ad462880b385ee
|
|
| MD5 |
0e320376b94697eac39de7d796804fd3
|
|
| BLAKE2b-256 |
00f59249230d11167e7f9f6c0492881e40e9515a7a82edc02477e50f984bd94d
|
Provenance
The following attestation bundles were made for vinv-0.0.1-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
publish.yml on VinvAI/VinvAI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vinv-0.0.1-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
b0f0dda3e8ad939255f17d303c8cef87034ff6870900791740ad462880b385ee - Sigstore transparency entry: 2539961426
- Sigstore integration time:
-
Permalink:
VinvAI/VinvAI@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Branch / Tag:
refs/tags/pypi-v0.0.1 - Owner: https://github.com/VinvAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b2ed1ebfab46f36240c8b3ca4301b09c39a92dae -
Trigger Event:
push
-
Statement type: