Map for zero tokens
Codna builds a dependency and blast-radius graph of the repository from its import patterns. No model call, zero tokens.
The Gemini CLI is an agent you drive from the terminal. Codna maps the repository first, for zero tokens, then fixes from evidence with root cause and risk attached.
The problem
When the agent has to read its way to the bug, every file it opens is context spent. Codna does the reading deterministically, without a model, and hands over only what the fix needs.
How Codna fixes it
Codna builds a dependency and blast-radius graph of the repository from its import patterns. No model call, zero tokens.
The agent receives an evidence bundle scoped to the issue: the suspect files, the call paths, the failing test. Codna prints the raw-to-bundle token size on every run.
Every fix reports root cause, confidence, blast radius and regression risk, and passes a risk gate before it is applied or a pull request opens. With --open-pr, or through the GitHub App, the pull request states the issue, the root cause, the symbols touched and a confidence score, and asks for review before merging. Codna never merges.
codna triage . codna fix . --issue "race condition in session handling"
What you get
Codna builds a dependency and blast-radius graph of the repository from its import patterns. No model call, zero tokens.
The agent receives an evidence bundle scoped to the issue: the suspect files, the call paths, the failing test. Codna prints the raw-to-bundle token size on every run.
Store a Google Gemini key with codna key set gemini and Codna calls your provider directly.
The proof
The only measured head-to-head Codna publishes is against Cursor: 87 matched bug-fix cases on identical checkouts, 5× fewer tokens, 1.7× faster, 87 of 87 verified, about $0.02 per fix. Everything else on this page describes Codna's own behaviour, not the Gemini CLI's internals.
Use whichever fits the moment. Codna adds a deterministic map, a scoped agent, pull request review and fix PRs; it does not need the Gemini CLI and does not remove it.
Yes. codna key set gemini stores your key in the OS keychain, and --model gemini/<model> selects it for a run.
Yes. Codna is a CLI, an MCP server, a GitHub Action and a GitHub App. Add it where it helps and keep the rest of your workflow.
Bring a key from Anthropic, OpenAI, Google Gemini, Groq, Mistral, OpenRouter or xAI, stored in your OS keychain with codna key set, or sign in and use the managed allowance. The repository map is built from import patterns, so it is not tied to one language. On-device recall covers Python, JavaScript, TypeScript, Go, Rust, Java, C, C++, C#, PHP and Ruby. Your own test command verifies the fix.
Understanding runs on your machine and spends no tokens. Only the evidence bundle or the diff reaches your model provider, with your key from the OS keychain. Set privacy.egress to fail-closed in codna.yaml and Codna runs your tests only under kernel-level network denial. Secret redaction is always on. On 87 matched bug-fix cases against Cursor, Codna averaged 16,159 total tokens and about $0.02 of model spend per verified fix, 5× fewer tokens and 1.7× faster. With your own key you pay your provider directly.
Related