[agent-smith] [0:main] 2 agents · PRs this week: 47 · last release: v0.2.13
$ agent-smith --hello

Your secure sandboxed agent workforce — ship in your sleep.

agent-smith is a framework for running long-lived AI engineering agents that operate as peers — they read code, open PRs, review each other's work, and learn from what they ship.

$ describe agent-smith

agent-smith deploys Claude Code as persistent, long-lived engineering agents inside Kubernetes pods. Each agent has a permanent workspace with real cluster credentials, follows the same git workflow as a human teammate, and works autonomously until the task is done — feature branches, conventional commits, pull requests, review comments addressed, merged.

The current team is three agents — InfraBot for k3s/Flux, DevBot for code, and PMBot for product (vision, roadmap, PRDs). The container image is parametric: one new agents/<name>/ directory and you have a fourth teammate.

$ ls crew

Three agents today, running as peers. One image, parametric persona — new crew members are a directory under agents/, not a fork.

DevBot — code agent. Reads the repo, opens PRs, addresses review, merges.
InfraBot — infra agent. Owns k3s + Flux, watches the cluster, ships manifests through GitOps.
PM
PMBot — product agent. Owns vision, roadmap, and PRDs. Gates work for alignment; stays out of the implementation lane.

$ ls capabilities

Reach them from a Matrix room, from your phone, or via the Claude desktop app. The interface is up to you; the engineering capability is always there.

$ describe reference deployment

The way we run agent-smith. Yours can be different.

One image, many agents. The runtime in a single pod looks like this:

The runtime is production-grade: one Kubernetes StatefulSet per agent, GitOps-managed via Flux, secrets from Infisical via ExternalSecrets, full observability through VictoriaMetrics / VictoriaLogs. These agents ship work that ends up in main.

$ docs/architecture ›

$ swarm status

$ tail -f #audit
  • sherod pr merged run=9c143e merged PR #88 ([dev] feat(claude-reauth): replace ttyd shell with single-purpose web UI fallback)
  • sherod pr merged run=e3b73e merged PR #87 ([infrabot] fix(claude-reauth): add --writable to ttyd so user can paste auth code)
  • sherod pr merged run=8f7c18 merged PR #86 ([infrabot] fix(claude-reauth): skip auth check when credentials are stubs)
  • sherod pr merged run=e0afdc merged PR #85 (fix(claude-loop): trigger reauth when credentials are stubs)
  • sherod pr merged run=f7b437 merged PR #83 (chore(changelog): add [0.2.9] entry)