You want it working
Install koda, point it at a model, and fix your first bug. Plain English, copy-paste commands, about five minutes.
koda drives the model you already run locally — Ollama, LM Studio, llama.cpp, vLLM, MLX — and any other server that speaks the OpenAI chat API. It reads and edits your code, runs your tests, and shows you a diff before it changes anything.
One binary, ~6 MB·Starts in ~3 ms·No runtime dependencies·Rust 1.82+·MIT
You want it working
Install koda, point it at a model, and fix your first bug. Plain English, copy-paste commands, about five minutes.
You want to know how
One Rust binary, no sidecars. The agent loop, the tool protocols, how a request is curated to fit a small context window.
Runs on your hardware
Your code is read by a model on your machine. Nothing is uploaded, no account, no metering. Cloud endpoints work too — that is your choice, not the default.
Asks before it acts
Every write shows a unified diff first. Every command asks. PLAN mode removes the
write tools entirely, so nothing on disk can change while you are still thinking.
Runs a real debugger
The debug tool drives your language’s actual debug adapter — breakpoints,
stepping, variables, logpoints. The model reads state instead of guessing at it.
Knows where things live
A symbol graph of the whole project is built on open, so the model asks where
apply_discount is defined rather than grepping for it.
Survives a small context
An 8k window fills up fast. koda supersedes stale reads, squeezes what is left on a ladder, and only then drops — never the opening request.
Remembers between sessions
Facts, procedures and style rules land as plain markdown in your project you can read, edit, commit or delete. Nothing is inferred behind your back.