Comparison

Codna vs Aider

Aider is a pair programmer in the terminal. Codna is a deterministic understanding layer with a scoped agent: zero tokens to map, a fix that explains itself, and a pull request you review.

The problem

Knowing where code lives is not knowing what breaks.

Codna's graph answers the second question. It records which files depend on which, so a fix accounts for its blast radius, and the agent works from the evidence for this issue rather than the whole repository.

How Codna fixes it

How Codna works

1

Map for zero tokens

Codna builds a dependency and blast-radius graph of the repository from its import patterns. No model call, zero tokens.

2

Hand over evidence, not the repo

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.

3

Report, gate, open the PR

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 fix . --issue "the checkout test is failing" --tests --apply

What you get

What you get

A blast-radius graph

Codna builds a dependency and blast-radius graph of the repository from its import patterns. No model call, zero tokens.

Tests in the loop

Run codna fix --tests --apply and Codna runs your tests in a sandbox and re-fixes until they pass, up to the iteration limit you set. Set fix.test_command in codna.yaml, or pass --test-cmd, when your runner is not pytest.

Every fix explained

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.

The proof

Fewer tokens. Faster. Verified.

Codna16K
Cursor81K
Average tokens per fix on 87 matched bug-fix cases: Codna and Cursor.

Frequently asked

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 Aider's internals.

Alongside. Codna is a CLI too; run codna fix when you want a scoped fix with root cause and risk, and keep Aider for conversational editing.

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. Run codna fix --tests --apply and Codna runs your tests in a sandbox and re-fixes until they pass, up to the iteration limit you set. Set fix.test_command in codna.yaml, or pass --test-cmd, when your runner is not pytest.

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.

Understand. Fix. Evolve.