vinv.ai/open source · Apache 2.0

dead code detection · python · runtime + static

Dead code detection that knows what actually ran

Static tools (Vulture, ts-prune, Knip) only prove "nothing references this." Vinv also reports code that no captured run ever executed — with the live callers that still point at it and an agent verdict on what to do.

Install → pip install vinv · claude mcp add --scope user vinv -- npx -y vinv-mcp · 100% local, Apache 2.0.

Source-only (no run needed): index deadcode <repo> — or the vinv_deadcode MCP tool — lists every function, class and method nothing references, each with file and line. It even catches transitively-dead chains (code whose only callers are themselves dead).

Runtime (behavioral): from a recorded run, Vinv reports connected islands of symbols no capture executed — split into never referenced vs reached from live code but never taken (opposite verdicts a filtered canvas can't tell apart), with the traced neighbourhood an integration would wire back into.

Static analysers miss dynamic dispatch, feature flags, registries and environment drift, so they emit candidates a human must adjudicate — which is why the cleanup never happens. Vinv grounds the verdict in what executed, and asks your own coding agent to judge each section as integrate · reimagine · delete · keep · unclear.