Are you the author? Sign in to claim
Autonomous multi-agent SDLC harness: describe a feature in plain English and AI agents scope, code, test, review, and op
An autonomous, multi-agent SDLC harness.
Point it at a Git repo, describe a feature in plain English, and a team of AI agents scopes it, writes the code, tests it, reviews it, and opens a pull request — grounded in a knowledge base of that repo, with a live board and full cost accounting.

The delivery board — tickets flow through Backlog → Scoped → Approved → Dev → QA → Review → PR, with live token/cost totals in the header.
A single "write me code" prompt sends a model into a cold repo to grep around, burn
tokens, and guess. AutoDev Studio instead builds a knowledge base of the target
repository once, then feeds each agent a scoped, file-cited slice of it. The result
is cheaper and better-localized changes — and on hard-to-find tasks, it beats a plain
claude -p run outright.
I ran the current pipeline head-to-head against plain Claude Code, giving both systems
the identical plain-English request. On the two largest repos tested —
Textualize/rich (~35.6k LOC) and Textualize/textual (~82.5k LOC) — the tuned pipeline
beat a cold claude -p on every task it localized well, by 7% to 75%:
| Repo | Task | Pipeline | Cold Claude Code | Δ |
|---|---|---|---|---|
| rich | feature | $0.333 | $0.449 | −26% |
| rich | cross-cutting bug | $0.456 | $0.828 | −45% |
| textual | feature | $0.380 | $0.590 | −36% |
| textual | extreme cross-cutting bug | $1.705 | $6.830 | −75% |
| textual | medium bug | $1.697 | $2.146 | −21% |
| textual | greppable bug | $0.374 | $0.401 | −7% |
The benchmark is the interesting part of this project — read it before the code.
A cold coding agent pays the localization tax on every single task — it re-reads the repo from scratch to figure out where the change goes, every time. On a large codebase that tax is brutal and recurring: in the benchmark, one cold run spent $6.83 and 207 turns just locating a single bug in an 82k-LOC repo. Do that fifty times a week across a team and you're paying to rediscover the same architecture over and over.
AutoDev Studio pays that cost once. Ingesting a repo builds a durable knowledge base — structured architecture/module/feature views plus an embedding index — that persists on disk and refreshes incrementally as the repo moves. After that, every task amortizes it: localization becomes a cheap retrieval instead of an expensive cold hunt.
That makes the value proposition sharpest exactly where real engineering work lives:
The break-even is honest and known: for a stream of tiny, trivially-greppable edits, a
cold claude -p is cheaper because the KB can't save what was never expensive. The KB wins
when work is repeated, against a substantial repo, on changes that take real finding —
which is to say, most of what a team actually does.
| Feature | |
|---|---|
| Repo knowledge base | Clone → chunk → embed any Git repo into a local vector DB; agents query it for grounded context. Free local embeddings (fastembed bge-small) + embedded Qdrant, with a pure-Python TF-IDF fallback that needs no model. |
| Structured multi-view knowledge | Beyond chunks, each repo is statically analyzed (ast) into interpreted views — architecture, modules, features, workflows, entry points, domain concepts, rules, integrations. Facts come from code; only interpretation comes from the LLM. |
| Agentic PM scoping | A PM agent runs a Socratic clarify-loop, hunting for ambiguity before locking a scope, then drafts concrete engineering tickets. |
| Human approval gate | No agent touches code until a human approves the ticket (optionally pushed to Jira). |
| Dev → QA → Review → PR pipeline | Runs on an isolated branch of a cloned working copy; opens a real PR via gh. |
| Provider- & model-agnostic | Every pipeline stage picks its own provider and model, live from the UI. Native support for the Anthropic Messages API, the Claude Code CLI, and any OpenAI-compatible endpoint — Groq, OpenAI, Gemini, xAI, OpenRouter, Together, DeepSeek, a local Ollama, whatever. Routing is by provider kind, not guessed from the model name. |
| Cross-provider review | The model that writes the code is deliberately a different family than the one that reviews it, to decorrelate blind spots. |
| Bounded revise loop | QA/Review feedback is fed back to Dev for up to N rounds, with conservative verdict parsing. |
| Live board + cost meter | Kanban lanes, streamed agent logs, and real token/cost breakdowns per ticket, scope, and agent. |
| Auth + roles | Cookie-session login with admin / member / viewer roles enforced server-side. |
| Runtime settings | API keys, per-stage models/providers, loop bounds, demo mode, and Jira — all editable live from the UI, no restart. Keys encrypted at rest. |
| Zero-CDN frontend | Hand-rolled design system (dark/light), inline SVG icons, system fonts — works fully offline. |
gh CLI (only to open real PRs)cp .env.example .env # add an API key
./run.sh # creates a venv, installs, starts on :8017
OPENAI_API_KEY=sk-... docker compose up --build
pip install -e ".[semantic]" # omit [semantic] to use the TF-IDF fallback
autodev # starts the server (see `autodev --help`)
Then open http://localhost:8017 (API docs at /docs). Sign in as admin with
the one-time password printed in the server log on first boot (or set ADMIN_PASSWORD
in .env).
gh) only for a repo you own.The knowledge base uses free local embeddings in an embedded Qdrant DB — no API key, no Docker. The first ingest downloads a ~90 MB model once. Set
RAG_EMBEDDINGS=tfidfto skip embeddings entirely.
ingest repo → build knowledge base
→ PM agent clarifies + drafts tickets → human approval (+ optional Jira)
→ Dev writes code on an agent/<key> branch
→ QA runs tests + reviews ┐
→ Review checks diff vs criteria ├─ revise loop ×N on failure
→ PR pushes + opens a real PR ┘
→ human merges
The HTTP request that starts a run returns immediately; the pipeline executes on a worker thread and streams progress through the database that the UI polls.
The knowledge base is the clever part, but the machinery around it is what makes it usable by more than its author:
ifs. The orchestrator drives tickets through
explicit SDLC lanes with a bounded revise loop, and parses agent verdicts with
deliberately conservative rules — an errored agent is INCONCLUSIVE, never silently a
pass, so an unreviewed change can't slip through looking clean.viewer/member/admin) are enforced
server-side; API keys are encrypted at rest.ast) and let the LLM supply only interpretation — so the map the agents
navigate by is anchored to the real code.| Agents — live pipeline + streamed output | Costs — real per-ticket, per-agent accounting |
|---|---|
![]() | ![]() |
| Knowledge — repos & their knowledge bases | Settings — any provider, any model, per stage |
![]() | ![]() |
Hand-rolled design system, zero CDN, dark and light themes — here's the board in light mode:

Full write-ups:
pip install -e ".[dev]" # pytest, pytest-cov, ruff
pytest # run the suite (no network; the LLM boundary is mocked)
ruff check backend/app tests
Tests cover the security-critical and pipeline-logic paths — encryption at rest, password hashing and the bootstrap admin, role-based access control, runtime-settings validation and masking, the revise-loop verdict parsing, and knowledge-base helpers. CI runs lint + tests on Python 3.11 and 3.12.
See CONTRIBUTING.md to get started and SECURITY.md to report a vulnerability.
| Area | Stack |
|---|---|
| Backend | Python, FastAPI, SQLModel (SQLAlchemy + Pydantic), Uvicorn |
| Database | SQLite |
| Frontend | Jinja2 SSR, vanilla JS, hand-rolled CSS design system (dark/light, zero CDN) |
| Auth | Cookie sessions, PBKDF2 (stdlib), role-based access control |
| LLMs | Claude Code CLI (headless, streaming JSON), Anthropic Messages API, any OpenAI-compatible Chat Completions endpoint |
| Knowledge base | fastembed (bge-small) + embedded Qdrant, TF-IDF fallback; static ast analysis → per-domain views |
| Integrations | GitHub gh CLI, git, Jira Cloud REST v3 (optional) |
⚠️ Experimentelle Skill-Sammlung für deutsches Recht (Arbeits-, Gesellschafts-, Insolvenz-, Datenschutz-, Prozessrecht u
Manage multiple Claude Code agents from TUI or Web with tmux and git worktrees
Project management using GitHub Issues + Git worktrees for parallel agent execution
Core skills library for Claude Code with 20+ battle-tested skills including TDD, debugging, and brainstorming