Autonomous coding agent orchestrator — turns high-level goals into PR'd code.
It is not another coding agent. It orchestrates the ones you already have.
Real software isn't built by a single person typing in a terminal. It's built by teams — a tech lead breaks down the work, engineers pick up tasks, reviewers catch mistakes, and the whole thing ships through a structured process.
sweteam brings that same discipline to AI coding agents. It doesn't replace your coding agents — it gives them the same structure that makes real engineering teams ship reliable code.
Describe what you want. The planner asks questions, proposes an architecture, and breaks it into scoped tasks — just like a tech lead running a planning session.
Decomposes your goal into small tasks with acceptance criteria, dependency order, and file-level scope. You review and refine before anything gets built.
Each task is assigned to a coding agent on its own branch. Independent tasks run in parallel — like engineers on a team working on separate features simultaneously.
A separate agent reviews each task's diff against its acceptance criteria. If the review fails, the coder automatically retries until the reviewer is satisfied.
Approved tasks are merged, the branch is pushed, and a PR is opened. The session stays open — give feedback, agents iterate on the same PR until you're satisfied.
Every interaction lives in a persistent session with full history. Crash, close the terminal, come back tomorrow — nothing is lost.
Discovers installed CLIs automatically and uses their existing auth. No API keys to configure, no extra setup.
Chat with the planner, refine the plan, then go hands-off. You stay in control of the strategy.
Independent tasks run concurrently across multiple agents, organized into a dependency graph (DAG).
Every task is reviewed by a separate agent against its acceptance criteria. Failures are retried automatically.
Session stays open after the PR. Give feedback, agents iterate on the same PR until you're satisfied.
Re-enter any session and see agent output streaming in real time. Never lose track of what's happening.
Supports Claude Code, Codex CLI, OpenCode, or any custom CLI that reads stdin and writes stdout.
All git and GitHub operations via git and gh CLI directly. No abstractions, no surprises.
sweteam follows a structured pipeline from plan to PR.
Planner decomposes your goal into tasks with dependencies
Tasks organized into a dependency graph
Independent tasks run concurrently
Each task assigned to a coding agent on its own branch
Reviewer checks diff against acceptance criteria
If review finds issues, coder retries automatically
Approved tasks squash-merged into session branch
Branch pushed and GitHub PR created automatically
/create
β
v
ββββββββββββββββββββββββββββ
β planning β <ββ chat with planner
ββββββββββββββ¬ββββββββββββββ
β @build
v
ββββββββββββββββββββββββββββ
β building β <ββ agents code + review
ββββββββββββββ¬ββββββββββββββ
β
v
ββββββββββββββββββββββββββββ
β awaiting_feedback β <ββ PR created, user reviews
ββββββββββββββ¬ββββββββββββββ
β @feedback
v
ββββββββββββββββββββββββββββ
β iterating β <ββ agents apply feedback
ββββββββββββββ¬ββββββββββββββ
β
v
awaiting_feedback βββ (loops until satisfied)
β
β /stop
v
ββββββββββββββββββββββββββββ
β stopped β
ββββββββββββββββββββββββββββ
You need at least one coding CLI installed:
| CLI | Install |
|---|---|
| Claude Code | npm install -g @anthropic-ai/claude-code |
| Codex CLI | npm install -g @openai/codex |
| OpenCode | go install github.com/opencode-ai/opencode@latest |
Plus: git, gh (GitHub CLI, authenticated), and Node.js v18+.
npm install -g sweteam
sweteam init
Auto-discovers your installed CLIs and generates ~/.sweteam/config.toml.
sweteam create myrepo
# Or from the interactive REPL:
sweteam
sweteam> /create myrepo
myrepo> Add dark theme with system preference detection and a Ctrl+T toggle
βΆ Planner β s_a1b2c3d4: Add dark theme
ββββββββββββββββββββββββββββββββββββββββ
β I'll break this down into 6 tasks:
β task-001: Add ThemeConfig and color definitions
β task-002: Implement system preference detection
β task-003: Create dark theme preset
β ...
β Type @build when you're ready.
myrepo> @build
sweteam dispatches tasks to coding agents, runs reviews, and creates a PR — all autonomously.
myrepo> @feedback The dark theme colors are too muted. Make the accent brighter (#00BFFF).
Agents pick up your feedback, iterate, and push updates to the same PR.
| Command | Description |
|---|---|
sweteam | Launch interactive REPL |
sweteam init | Auto-discover CLIs and generate config |
sweteam create [repo] | Create a new session |
sweteam list | List all sessions |
sweteam enter <id> | Re-enter an existing session |
sweteam show <id> | Show detailed session status |
sweteam stop <id> | Stop a session |
sweteam delete <id> | Delete a session |
| Command | Description |
|---|---|
@build | Finalize plan and start autonomous coding |
@status | Show task progress dashboard |
@plan | Re-display the current plan |
@feedback <text> | Give feedback on completed work (triggers new iteration) |
@diff | Show cumulative diff |
@pr | Show the PR link |
@tasks | List all tasks with statuses and review info |
@stop | Stop this session |
@help | Show available commands |
| Command | Description |
|---|---|
/create [repo] | Start a new session |
/list | See all sessions |
/enter <id> | Resume a session |
/show <id> | Inspect a session |
/stop <id> | Stop a session |
/delete <id> | Delete a session |
/init | Re-run CLI discovery |
/help | Show help |
/exit | Quit |
sweteam --coder codex # Override coder agent
sweteam --reviewer claude-code # Override reviewer agent
sweteam --parallel 5 # Override max parallel tasks
sweteam --config ./custom.toml # Use custom config file
sweteam is built with TypeScript and uses a layered architecture with pluggable agent adapters.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β sweteam CLI β
β β
β ββββββββββββ ββββββββββββββββ ββββββββββββββββββββββ β
β β Session β β Planner β β Orchestrator β β
β β Manager β β (chat mode) β β (autonomous) β β
β ββββββββββββ ββββββββββββββββ ββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Agent Adapter Layer β β
β β ββββββββββββββ ββββββββββββ ββββββββββββββββββββββ β β
β β β Claude Codeβ β Codex CLIβ β OpenCode / Custom β β β
β β ββββββββββββββ ββββββββββββ ββββββββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββββββ β
β β SQLite + Drizzle β β git + gh CLI (native) β β
β β (session store) β β (branches, PRs, commits)β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Component | Choice |
|---|---|
| Language | TypeScript (ESM, Node.js 18+) |
| ORM | Drizzle |
| Database | SQLite via better-sqlite3 |
| CLI framework | Commander.js |
| Terminal UI | Custom (chalk, raw-mode prompt) |
| Git | git + gh CLI (child process) |
| IDs | nanoid |
| Config | TOML |
| Tests | Vitest |
src/
βββ index.ts # CLI entry point (Commander.js)
βββ repl/ # Interactive REPL loop
βββ session/ # Session manager, state machine, agent log
βββ planner/ # Planner agent and plan parser
βββ orchestrator/ # Task runner, reviewer, build/feedback handlers
βββ adapters/ # Agent adapters (claude-code, codex, opencode, custom)
βββ commands/ # CLI subcommands (create, list, enter, etc.)
βββ config/ # Config loader and GitHub auth
βββ git/ # Git and GitHub CLI wrappers
βββ ui/ # Terminal UI (banner, prompt, agent panel, markdown)
βββ db/ # SQLite schema and client (Drizzle ORM)
βββ __tests__/ # Test suite
~/.sweteam/
βββ sweteam.db # SQLite database (sessions, tasks, messages)
βββ config.toml # Global configuration
βββ logs/ # Agent output logs (for live attach)
β βββ s_a1b2c3d4.jsonl
βββ repos/ # Cloned repositories
βββ YourName--myrepo/
Config lives at ~/.sweteam/config.toml. Generated by sweteam init.
[roles]
planner = "claude-code" # Which CLI generates the plan
coder = "claude-code" # Which CLI writes code
reviewer = "claude-code" # Which CLI reviews code
[execution]
max_parallel = 3 # Concurrent coding agents
max_review_cycles = 3 # Review/fix loops before escalating
branch_prefix = "sw/" # Prefix for all branches
[git]
commit_style = "conventional" # conventional | simple
squash_on_merge = true
[agents.claude-code]
command = "claude"
args = ["-p"]
[agents.codex]
command = "codex"
args = ["-q"]
[agents.opencode]
command = "opencode"
args = ["--non-interactive"]
Any CLI that accepts a prompt on stdin and writes output to stdout can be used as an agent:
[agents.my-agent]
command = "my-coding-tool"
args = ["--mode", "autonomous"]
prompt_via = "stdin" # stdin | arg | file
output_from = "stdout" # stdout | file
# Then reference it in your roles:
[roles]
coder = "my-agent"
git clone https://github.com/SiluPanda/sweteam.git
cd sweteam
npm install
# Run in dev mode (no build step)
npm run dev
# Run with subcommands
npm run dev -- create myrepo
# Run tests
npm test
# Build
npm run build
# Link globally for testing
npm link
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
# Fork and clone
git clone https://github.com/your-name/sweteam.git
cd sweteam
npm install
# Create a branch
git checkout -b feat/my-feature
# Make changes, run tests
npm test
# Submit a PR