Skip to main content

Benzi

Benzi
by Variant Technologies

Benzi compiles your codebase into a resolved, queryable map of calls, data flow, and control flow first; then it explains, runs, edits and verifies your code using it. Includes a runtime tracer that settles what static analysis can’t.

Benzi is free to use — actively in development, a work in progress.

Full README, benchmarks, and demos on GitHub


What is Benzi

Most AI coding agents dump a repository into a context window and hope the model finds what matters. Benzi works differently: before answering anything, a real compiler — built on tree-sitter — parses every file in the project and resolves it into a precise, queryable map. Every symbol, every call edge, every reference, every class in its inheritance chain. One pass, done.

Call flow and data flow are joined at every call site, so a bad value traces to its origin in one tool call. Claude Code greps; Cursor embeds; Aider maps signatures; Benzi resolves — and answers in O(1). Ten languages so far, plus a second engine for markup (HTML, CSS, DOM-JS).

What people say

"78.2% for $37 is a slap in the face to the 'brute force wins' school." — Alex Xiang, zicode (translated)

"Benzi is proving that the core competency of coding tools is shifting from simple 'reading comprehension' to 'structural grasping ability.'" — Gi Pyeong Lee, Tech Blog

"Fewer tokens, no context drift. Wild idea, honestly." — prompt 🤖 AI News

"It analyzes changes before writing them — and beats Claude Code on benchmarks." — Ponte al dIA (translated)

SWE-bench Verified

The full SWE-bench Verified set — 500 real GitHub issues from twelve Python repositories — run end to end on DeepSeek v4-flash, one attempt per instance, graded by the official swebench.harness.run_evaluation inside its own per-instance Docker images, with network access to GitHub and PyPI blocked inside every container.

Resolved 391 / 500 — 78.2%
Total cost, all 500 instances $37.33
Cost per instance resolved $0.095
Source lines read (total / median) 231,574 / 379
Model turns (total / median) 16,091 / 27

Full technical report and per-instance breakdowns: GitHub.

How it works

  1. Compile. Tree-sitter parses every file; imports are resolved, class ancestry built, every identifier traced to its definition. The output is an index, not a blob of text.
  2. Query. The agent answers questions and plans edits through structured tools over that index — profile, get_callers, backflow, trace_path, skim_source, and ~30 more.
  3. Edit, gated. Every write passes syntax and semantic gates against the real language parser — a broken parse auto-reverts, checking blast radius before a change lands, not just after.
  4. Verify by running it. A focused repro runs under a runtime tracer — real argument values, real returns, real dispatch — which both proves the change and settles the map.
  5. Reindex, incrementally. The map follows the filesystem, never the agent's account of what it did — each turn re-parses only the files whose bytes actually moved.

Tools

A sample of Benzi's 35+ tools — the full list is on GitHub:

Tool What it answers
get_callers Every call site that reaches a function — the code that will feel a change.
call_tree The transitive call closure from one function, forward or in reverse.
trace_path The call chain connecting two functions, and the data carried along it.
backflow / forwardflow Where a wrong value came from / where a return value ends up.
profile The full 360 on one symbol in a single call.
search_symbols Case-insensitive substring search across every symbol in the repo.
get_hierarchy A type's resolved bases and its direct subclasses.
skim_source A body's one-level outline, so you know which lines are worth reading.
execute_from / execute_generated_testcase Runs code under the call tracer; writes and runs a self-contained repro.

Full list of 35+: GitHub.

Features

  • Six states, never a guess — every call site and file carries one: resolved, external, candidate, unresolved, observed, or unindexed. Whatever static analysis can't settle is flagged as unsettled, not guessed.
  • Runtime tracer — hooks every call during execution and overlays the observations back onto the static map.
  • Persistent memory — durable per-repo facts survive restarts.
  • Dual-engine: code + markup — a separate index for HTML/CSS/DOM-JS.
  • Model-agnostic — Anthropic, OpenAI, or any compatible API.

Language support

Python · JavaScript · TypeScript · Java · C# · C++ · C · Go · Rust · Ruby

One compiler, ten languages. Python is deepest — it's the only one with the runtime tracer. Depth varies elsewhere; see Language support on GitHub for specifics.

Install

pip install benzi

# one-time setup -- verify your email, then bring your own API key
benzi-login --login you@example.com
benzi-login --anthropic-key sk-ant-...       # or --nonanthropic-key for
                                              # groq/deepseek/kimi/etc

# then, from inside (or pointed at) any repo:
benzi-headless . "what does this repo do?"

This also installs benzi-mcp — the same compiled index exposed as tools over MCP, for whatever agent you already run (Claude Code, Cursor, your own harness). Point your MCP client at it after the same benzi-login step; output quality then depends on that harness, since this mode has no agentic loop of its own.

. means "the repo I'm standing in" — pass a path instead if you're running it from somewhere else. Your key stays on your own machine and talks to your model provider directly; Benzi's servers never see it or proxy the call. Run benzi-login with no flags any time to see what's currently saved, or benzi-headless --help for every option.

Benzi is also available as a live web demo (no install, no key needed) and a VS Code extension.

FAQ & comparisons

Do I need an API key? For the CLI, MCP, and the VS Code extension, yes — bring your own Anthropic or OpenAI-compatible key. Only the browser demo runs without one.

How is this different from Cursor, Copilot, or Claude Code? They find code by searching text — grep, or embedding similarity. Benzi resolves it first: a tree-sitter compiler builds a real index of symbols, call edges, inheritance and data flow, and the agent queries that index instead of guessing which files to read.

Full FAQ & comparisons (privacy, pricing, limits, and how Benzi compares to Claude Code, LSP servers, CodeQL and CodeGraph): GitHub.


Full README on GitHub — benchmarks, demos, and more.

Metadata

Release files for benzi 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for benzi 0.1.5
File
benzi-0.1.5-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
benzi-0.1.5-cp314-cp314-manylinux_2_34_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ x86-64 Details
benzi-0.1.5-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
benzi-0.1.5-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
benzi-0.1.5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
benzi-0.1.5-cp313-cp313-manylinux_2_34_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ x86-64 Details
benzi-0.1.5-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
benzi-0.1.5-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
benzi-0.1.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
benzi-0.1.5-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details
benzi-0.1.5-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
benzi-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
benzi-0.1.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
benzi-0.1.5-cp311-cp311-manylinux_2_34_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64 Details
benzi-0.1.5-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
benzi-0.1.5-cp311-cp311-macosx_10_13_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.13+ x86-64 Details

Total release size: 50.5 MB

Release files / benzi-0.1.5-cp314-cp314-win_amd64.whl

Download URL benzi-0.1.5-cp314-cp314-win_amd64.whl
Size 2.6 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9e50d680fc925edf506502ab981173cb1620957374a91ff05c692b9a39ed95fd
BLAKE2b-256 checksum
How to use checksums
8ce2754f84415f6ff8ddde370eabfc4b275bd47d81c17a1d28d4dda2526eb15c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp314-cp314-manylinux_2_34_x86_64.whl

Download URL benzi-0.1.5-cp314-cp314-manylinux_2_34_x86_64.whl
Size 4.8 MB
Tags CPython 3.14 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
c4b07fc45ea1d3e59d2ea090bf99069e89fd1976960a1e5fca61f1239043bd26
BLAKE2b-256 checksum
How to use checksums
6722a74b9a9415d09fdee100ea07ecaa5e735d2d3114f846698feee38de5eb95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp314-cp314-macosx_11_0_arm64.whl

Download URL benzi-0.1.5-cp314-cp314-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
616aee5e79378db43d7986981b586ed8595add4a64dbc1eb5de59bdfff329de2
BLAKE2b-256 checksum
How to use checksums
335aac83d01b42821e269c0f8cc168db9dd497d12194d5aa068c73d75f091af1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp314-cp314-macosx_10_15_x86_64.whl

Download URL benzi-0.1.5-cp314-cp314-macosx_10_15_x86_64.whl
Size 2.9 MB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
1c0bb907f2398e14901e48db69940dfea30c1c2e39807465923d5ebc44af6b2b
BLAKE2b-256 checksum
How to use checksums
50a5bd18e74dd21bf3e76989d5e8e12fe6a0995ac1faa24474d8731694735b00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp313-cp313-win_amd64.whl

Download URL benzi-0.1.5-cp313-cp313-win_amd64.whl
Size 2.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
efac043311e4f322808825cff260a66b388d6bbbdb5262eacf56038156ee8cd5
BLAKE2b-256 checksum
How to use checksums
09ba96cb70564ae90a0e40b2f5e12814492166344dc234a058dd5166e3acb2c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp313-cp313-manylinux_2_34_x86_64.whl

Download URL benzi-0.1.5-cp313-cp313-manylinux_2_34_x86_64.whl
Size 4.8 MB
Tags CPython 3.13 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
050453388d15eb0ef4343d621b5fe7bd7dfbfbd31f1ca2cf94781f2f2d5a82a8
BLAKE2b-256 checksum
How to use checksums
8ac65231130fa0bcae43ec3d9f26ec1d55f0c7e31843fb45020c259fd5551b9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp313-cp313-macosx_11_0_arm64.whl

Download URL benzi-0.1.5-cp313-cp313-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6d2cfdd44ffd4989485d3259d00d0a4281c899229b8b00690b605735353cfe04
BLAKE2b-256 checksum
How to use checksums
27dfe18dee455cfa434bf0b2c3346ed20210419aa5b14026fec68a3b2d9cf8ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp313-cp313-macosx_10_13_x86_64.whl

Download URL benzi-0.1.5-cp313-cp313-macosx_10_13_x86_64.whl
Size 2.9 MB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
7076cf76c8ede2ae86c347a5aea8c0341e18560ba12fe8d1bb50b53f3e02c5e7
BLAKE2b-256 checksum
How to use checksums
0a48f3a5f41dac7a3c46337d72eda40553951623205e13bf33765c8303af86c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp312-cp312-win_amd64.whl

Download URL benzi-0.1.5-cp312-cp312-win_amd64.whl
Size 2.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e6226e279999d6cc29b27f246c45a9ca91dae9996dc298d8d500943d89ea5365
BLAKE2b-256 checksum
How to use checksums
eec63195cbe5e59344c6eedebe10059b09b2f1af7f8ca88e47bb08a5d3639709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL benzi-0.1.5-cp312-cp312-manylinux_2_34_x86_64.whl
Size 4.7 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
9e7bb18fe70dd97cfd07d5145d775a9918d41b7bdc7f3f1192aa2c17e334dea0
BLAKE2b-256 checksum
How to use checksums
66ef747979dbe6089d44117013d770b7a673b6ce1dc9c30386ab34b646da9e54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp312-cp312-macosx_11_0_arm64.whl

Download URL benzi-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
Size 2.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
34c8466e0c9456db21e41aa5a1adc94dfdef8d7bfa6faeb95632e3055c4fedfe
BLAKE2b-256 checksum
How to use checksums
0a36825d44d1689004520eb7250f9141318381ad1fc4b305ea71e75c4c3d30ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl

Download URL benzi-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl
Size 2.8 MB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
dcc32d9d982c6c13d104f93c0e85d2c46239336923643e6183f0cb5aab47a4fb
BLAKE2b-256 checksum
How to use checksums
b30890e90d7b013c039bb32eda65c5509f5a5246ca2d1bec757733717f89fd2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp311-cp311-win_amd64.whl

Download URL benzi-0.1.5-cp311-cp311-win_amd64.whl
Size 2.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5db62e0a761a5f38474e8d274dcca9cf488c8e2fd2b0c7edc6bfaba1bd0d9584
BLAKE2b-256 checksum
How to use checksums
6348937676cc25996dd9e45fb1268743760b957fb1f9ff509a82391c7f7e69cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp311-cp311-manylinux_2_34_x86_64.whl

Download URL benzi-0.1.5-cp311-cp311-manylinux_2_34_x86_64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
be35cf7b5520cc25eb56f5d3446c53ad3a517e51dd625954f0bdd0866fabe8b5
BLAKE2b-256 checksum
How to use checksums
0cdef279effe0c3a902599cb73479bfbaaa0e02d9ee3ab6eab9bcd6854e38bdc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp311-cp311-macosx_11_0_arm64.whl

Download URL benzi-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
Size 2.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6dc34593209e470071ede805640bafd6aa71d0c05cd48e30b782ad7bd86c7ca2
BLAKE2b-256 checksum
How to use checksums
a4b20254ec9d4dd993cf49ab0084e16e798223a1be5478bd117e86b377ca464c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / benzi-0.1.5-cp311-cp311-macosx_10_13_x86_64.whl

Download URL benzi-0.1.5-cp311-cp311-macosx_10_13_x86_64.whl
Size 2.7 MB
Tags CPython 3.11 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
67d21b9a4ddb5de9e0cefce7becc0840f6389510dd73a87d840ae97ca3e7948a
BLAKE2b-256 checksum
How to use checksums
847fe14a220b44b3c61a5920ca06750b58f8fc21fc95626ba9b8af0fe5c84952
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.1.6

16 release files

This release

0.1.5 This release

16 release files

0.1.1

8 release files

0.1.0

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page