Agent Smith is an open source AI coding agent. You drop a ticket into your tracker, it clones the repo into a sandbox, writes the code, runs the tests, opens the PR, and sets the ticket back to resolved.
Every run shows its cost. Every change comes with the reasoning the agent followed.
You drop a ticket into your tracker — Jira, Azure DevOps, GitHub Issues, GitLab, whatever you use. Agent Smith reads it, figures out which project it belongs to, and starts a run. If your project has more than one repo, every repo gets its own sandbox with its own toolchain image (one runs dotnet/sdk:8.0, another runs node:20, a Python worker gets python:3.12). Each sandbox clones its repo and cuts a branch named agentsmith/ticket-{N}.
Then the AI does the boring middle part. It analyses the code, comes up with a plan, lets you approve it (or runs headless if you trust the pipeline), writes the changes, runs the tests, and commits. One pull request per repo, all linked to each other in the PR body so reviewers see the whole change at once. The ticket gets set to resolved with every PR URL in the comment.
That's the standard flow. There's an approval gate before any code change lands, and every run records token usage and dollar cost so you actually know what you spent.
Every run keeps the same five beats, and you can open any of them: the ticket it started from, the plan it settled on, the building, the verification, and the outcome. The outcome is where the pull request link sits, next to what the run cost and how many model calls it took to get there.
That verification beat is cross-checked against the diff the run actually committed, so a run cannot report itself green without a matching change. When it does come back red, it says so and ships the partial work as a record rather than quietly rounding up.
Agents, trackers, repositories and the projects that tie them together live in a catalog you edit in the same UI. References are picked from what exists, so a project cannot point at an agent you renamed last week. Every edit is recorded with who changed what, and every edit can be reverted.
One ticket, one sandbox per repo, one pull request per repo. If you want the step-by-step version, the docs have a diagram generated from the pipeline definitions themselves, by a test that fails whenever the code and the picture disagree. Every step, and where the model actually gets a say.
Agent Smith does not store any information about your code. It runs on your infrastructure and calls your AI provider directly — the more AI gets used, the more information tends to end up stored somewhere you never intended. Not here.
Great developers write great code. They even write documentation. But I have never seen the why being documented. Agent Smith documents the plan and maintains a decisions.md log, so the reasoning stays available over the complete lifecycle of the program.
The AI generates a plan, the plan gets shown to you, you approve or reject. Trust the pipeline? Set a config flag and runs go headless. Both modes ship because some teams want the eyeball, some don't.
You prefer mono repositories? Great, Agent Smith can work on UI, backend and workers directly. You got multi repositories per project? No problem. Agent Smith will create one sandbox per repository and create multiple pull requests.
You write Python? The sandbox will be Python based. Dotnet? Sandbox will use your dotnet sdk. The language is not part of the Agent Smith, it is part of the infrastructure that is used to get the job done. There are no limitations in terms of languages.
Agent Smith bootstraps an .agentsmith/ directory into your repo: context, phase specs, a decision log, a memory of what it learned. That is the product, and it is also how this repository got written, over six months, by me and one language model. 610 completed phases and 244,753 lines of C#, with 2,587 recorded decisions and 3,760 tests behind them. About 500 hours of my time went in, roughly 50 minutes per completed phase.
Ten coding principles are enforced as architecture tests: max 120 lines per file, state held in DI, exactly one method allowed to decide whether a run delivered, a gate that has to run after the thing it judges. Every one of them has something that went wrong behind it. When a rule was right and the existing code broke it 187 times, the violations went into a frozen baseline that entries can only leave, so the debt moves one direction and nobody has to schedule a cleanup week.
A blocking commit hook lets a phase commit through once the build, all 3,760 tests, four CLI dry runs and every pipeline harness preset come back green. CI would have told me about a break afterwards. The hook stops the commit from existing. And the principles.md I built this project under is the same file Agent Smith injects into its own agents at runtime.
The skill catalog grew to 95 role definitions and then dropped to 12 in one breaking release, because stronger models did better with bash and a clear goal than with narrow toolsets. The plan generator got retired after evaluations caught it truncating every multi repo plan. A cached token metric read zero for months while the caching underneath it worked fine. The full account is in the docs, along with how every figure here was counted.
code is the headline because it's the one most people show up for — it covers bug fixes and features alike, and the older fix-bug and add-feature names still route to it. Seven more presets ship in the box: security-scan and api-security-scan (a security master reviewing a codebase or a live API), pr-review (a review of a pull request, posted back as PR comments), legal-analysis (contract review), mad-discussion (multi-agent design discussion when you want to argue something out), init-project (bootstraps the .agentsmith/ directory per component in each repo), and spec-dialog (a design conversation that ends in a ticket or a phase draft). Same orchestrator, different masters, different output shapes.
You can also define your own in agentsmith.yml. Skill files are YAML, no prompt engineering. Pipeline reference is in the docs.
Works with Claude, OpenAI, Gemini, Ollama (for fully local), and anything OpenAI-compatible (Groq, Azure OpenAI, LM Studio, vLLM, your own endpoint). You pick the model per role: a cheap one for the scout pass that maps the codebase, the good one for the actual code.
Deploy as a single binary, Docker container, or Kubernetes. The sandbox-agent injects via an init-container into whatever toolchain image your repos use, so you get one carrier image plus the upstream toolchain image you already trust. A chat gateway lets you trigger runs from Slack and Teams when that's how your team works.
First bug fix in about five minutes if your Docker is set up. The install guide walks through it.