Skip to content

Agent Smith

From ticket to PR

Agent Smith is an open source AI coding agent. You drop a ticket into your tracker, and a PR shows up on your repo, with the ticket already updated to point at it. Every run writes down what it cost in tokens and dollars, and every change it made comes with the reasoning the agent followed. That's the whole loop.

This page is the orientation. There's a fast-path link list at the bottom — if you're here to ship today, skip the rest and jump straight in.

What it does, in one paragraph

You drop a ticket into your tracker. Agent Smith reads it, clones every repo in the project into its own sandbox (each with its own toolchain image — a .NET repo gets dotnet/sdk:8.0, a Node repo gets node:20), generates a plan, lets you approve it (or runs headless if you've told it to), writes the code, runs the tests, opens one pull request per repo with the changes cross-linked, and writes the ticket back as resolved with every PR URL in the comment.

Lifecycle: ticket → orchestrator → sandboxes → pull requests → resolved

What lands on disk after a run

Every run gets a directory under .agentsmith/runs/. The directory name is the run id — a UTC timestamp plus a 4-hex collision suffix plus a slug.

.agentsmith/runs/2026-05-22T14-03-11-9f2a-fix-login-bug/
├── plan.md       — the plan the agent followed, role-by-role
├── result.md     — what got done, cost in tokens and USD
└── decisions.md  — non-obvious choices made during the run

plan.md and decisions.md are the why-record. Six months later, when you've forgotten why the agent picked path A over path B, the answer is in there. That was the reason I built it this way — I got tired of code I couldn't reverse-engineer.

What's supported

Trackers — these are the ticket sources Agent Smith reads from and writes back to.

Tracker Trigger modes Connect page
Azure DevOps Boards webhook · polling · label Azure DevOps
Jira webhook · polling · label Jira
GitHub Issues webhook · label GitHub Issues
GitLab Issues webhook · polling · label GitLab Issues

AI providers — Agent Smith calls these directly from your infrastructure. You pick the model per role (a cheap one for scout passes, the good one for the actual code).

Provider Notes
Anthropic Claude First-class. Prompt caching on by default.
OpenAI First-class. Reasoning models supported.
Azure OpenAI Same as OpenAI plus per-deployment routing.
Google Gemini First-class.
Ollama Local models. No API key, no internet.
OpenAI-compatible Groq, LM Studio, vLLM, your own endpoint.

See Connect your AI provider for the config blocks.

Skills — the role definitions (architect, backend dev, security analyst, contract reviewer, …) live in a separate repo, github.com/holgerleichsenring/agent-smith-skills, versioned with release tags. You pin a tag in your agentsmith.yml and you're done. The skills repo gets updates without touching your Agent Smith binary, and the binary gets updates without touching your skills. See Skills catalog for the pin strategy.

Get running today

The pages below are the fast-path. They assume you have Docker (or a Kubernetes cluster you can deploy to) and an API key for an AI provider. If you've got that, you're ten minutes away from your first run.

  1. Install — CLI binary, Docker image, or k8s.
  2. Connect your tracker — pick the page for your tracker.
  3. Connect your repos — single repo, or multi-repo if your project spans more than one.
  4. Connect your AI provider — the config block for the provider you have.
  5. First runagent-smith fix "#54 in todolist" end to end.

Then pick a trigger mode (webhook is what you want for production) and pick a host setup (docker-compose is the easiest, k8s is what you want for shared use).

How it works, when you have time

Everything else lives in Reference. That's where the per-pipeline pages, the full agentsmith.yml schema, the architecture deep-dives, the pipeline-specific pages and the historical run-logs sit.

License

MIT. Copyright (c) 2026 Holger Leichsenring. Source at github.com/holgerleichsenring/agent-smith.