Skip to main content
Vinv

pip install vinv

Vinv runs, tests, and finds issues in your services — with zero code changes.

PyPI Python License 100% local

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.


vinv.ai · github.com/VinvAI/VinvAI · Python first — TypeScript & Go next

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vinv-0.0.2-py3-none-win_amd64.whl (3.3 MB view details)

Uploaded Python 3Windows x86-64

vinv-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

vinv-0.0.2-py3-none-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file vinv-0.0.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: vinv-0.0.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for vinv-0.0.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f4c807c9af5f50c950181c8444116fda5e2cd0de21fa19c907c903a7adf43947
MD5 158acfaf817cf076dd29a6311848dfbc
BLAKE2b-256 25683db3242d1b40fe1f071ae0e40b0a99f045ad1cec4cccb13c9dd59e285bd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for vinv-0.0.2-py3-none-win_amd64.whl:

Publisher: publish.yml on VinvAI/VinvAI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vinv-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vinv-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 922026e77968513a07d138248eb75c3dee1400b541dff0f31a5e7dfab1654872
MD5 b18cd852a6aea0d37de0f1e4498c16ae
BLAKE2b-256 8124fd68e6da57f42ff5ebb51d957e326a34f42f8516992a048a24b89d183348

See more details on using hashes here.

Provenance

The following attestation bundles were made for vinv-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on VinvAI/VinvAI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vinv-0.0.2-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: vinv-0.0.2-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for vinv-0.0.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e11380efef61635be8499cb3bb20368f231c2da268d4b8743909f0419fbaf481
MD5 303f42e1d23e7e411b694544b6357b4b
BLAKE2b-256 76026a3d84bd845c974aa80f5a1a3927af6e2efeec706ee673070a4cf27d6127

See more details on using hashes here.

Provenance

The following attestation bundles were made for vinv-0.0.2-py3-none-macosx_11_0_arm64.whl:

Publisher: publish.yml on VinvAI/VinvAI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.0.4

3 files

0.0.3

3 files

This release

0.0.2 This release

3 files

0.0.1

6 files

0.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page