multiagent-setup
1.25.0
See the version list below for details.
dotnet tool install --global multiagent-setup --version 1.25.0
dotnet new tool-manifest
dotnet tool install --local multiagent-setup --version 1.25.0
#tool dotnet:?package=multiagent-setup&version=1.25.0
nuke :add-package multiagent-setup --version 1.25.0
multiagent-template
Autonomous multi-agent code generation and PR automation for 12 AI coding assistants. Scaffold a workspace where a team of specialized agents — orchestrator, architect, developer, reviewer, DevOps, designer, and more — drives software from backlog to merged PR without hand-holding. You set direction; the agents handle execution.
<p align="center"> <img src="docs/demo.svg" alt="multiagent-setup demo" width="720"/> </p>
Quick Start
Recommended: one-liner bootstrap. Installs all deps (git, gh, jq, .NET 10, agent CLI) and creates the workspace in one shot.
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Neftedollar/multiagent-template/main/bootstrap.sh | bash -s -- MyProject
curl -fsSL https://raw.githubusercontent.com/Neftedollar/multiagent-template/main/bootstrap.sh | bash -s -- MyProject --provider gemini
# Windows (PowerShell)
irm https://raw.githubusercontent.com/Neftedollar/multiagent-template/main/bootstrap.ps1 -OutFile bootstrap.ps1
.\bootstrap.ps1 MyProject
.\bootstrap.ps1 MyProject --provider codex
Already have git, gh, jq, and .NET 10 installed? (You don't need to know .NET — it's just the packaging mechanism.)
dotnet tool install -g multiagent-setup
multiagent-setup new MyProject # Claude (default)
multiagent-setup new MyProject --provider nessy # Nessy CLI (Claude alias)
multiagent-setup new MyProject --provider codex # OpenAI Codex
multiagent-setup new MyProject --provider qwen # Qwen Code
multiagent-setup new MyProject --provider cursor # Cursor IDE
multiagent-setup new MyProject --provider windsurf # Windsurf IDE
multiagent-setup new MyProject --provider copilot # GitHub Copilot
multiagent-setup new MyProject --provider gemini # Google Gemini CLI
multiagent-setup new MyProject --provider cline # Cline (VS Code)
multiagent-setup new MyProject --provider aider # Aider AI pair programmer
multiagent-setup new MyProject --provider continue # Continue.dev (VS Code / JetBrains)
multiagent-setup new MyProject --provider roo # Roo Code (VS Code)
multiagent-setup new MyProject --provider all # all providers at once
# Add a provider to an existing workspace (no need to recreate)
multiagent-setup add-provider cursor
multiagent-setup add-provider gemini --force # overwrite existing files
multiagent-setup add-provider all # add all providers at once
# Update an existing workspace to the latest templates
multiagent-setup update # skip already-customised files
multiagent-setup update --force # overwrite everything (CLAUDE.md preserved)
Then start working:
cd MyProject
claude # or: nessy / codex / qwen-code / gemini (terminal agents)
# or open in Cursor / Windsurf / VS Code (IDE agents)
/orchestrator Implement user authentication with JWT
What you get in 5 minutes:
- A workspace where agents run
PLAN → BUILD → TEST → VERIFY → SHIPautonomously - 20+ specialist roles installed in
~/.claude/commands/— orchestrator, architect, developer, reviewer, DevOps, designer, and more - Safety hooks active: dangerous commands blocked, commits enforced as conventional, files auto-linted on save
- One human touchpoint: review and merge the PR when the pipeline finishes
Why multiagent-template?
The problem: Asking a single AI agent to be architect, developer, reviewer, and DevOps all at once leads to context collapse, no accountability, and inconsistent quality.
The solution: A structured workspace where each agent plays a defined role in a gated pipeline:
PLAN → BUILD → TEST → VERIFY → SHIP
- Orchestrator coordinates — never writes code itself
- Architects design before developers build
- Reviewers validate independently after each step
- Safety hooks prevent dangerous commands, enforce commit conventions, auto-lint
Each step has an approval gate. Failures retry (3×) → helper role (2×) → human escalation. The human only sees escalations, not every step.
When to choose multiagent-template
| Scenario | multiagent-template | Single Claude Code | Standalone Aider |
|---|---|---|---|
| Pair-programming a single file | — | ✅ | ✅ |
| Full feature from spec to merged PR | ✅ | Struggles | Struggles |
| Team of specialized roles | ✅ | ❌ | ❌ |
| Autonomous overnight backlog drain | ✅ | Limited | ❌ |
| Works inside your existing IDE | ✅ (via provider flags) | ✅ | ✅ |
| Any AI provider (Claude, Gemini, Codex…) | ✅ 12 providers | Claude only | Any, but no pipeline |
Supported Providers
| Provider | Binary / Tool | Best for | Notes |
|---|---|---|---|
| claude | claude |
Terminal-first, most capable | Claude Code by Anthropic — default |
| nessy | nessy |
Claude users with a different alias | Nessy CLI — Claude-compatible |
| codex | codex |
OpenAI API key holders | OpenAI Codex CLI — creates AGENTS.md |
| qwen | qwen-code |
Open-source model users | Qwen Code — creates QWEN.md |
| gemini | gemini |
Google API key holders | Gemini CLI — creates GEMINI.md |
| cursor | Cursor IDE | IDE-first workflows | Rules in .cursor/rules/ (MDC format) |
| windsurf | Windsurf IDE | IDE-first + Codeium users | Rules in .windsurf/rules/ (Wave 8+) |
| copilot | GitHub Copilot | VS Code + GitHub users | Reads .github/copilot-instructions.md |
| cline | Cline | VS Code extension users | Creates .clinerules in project root |
| aider | Aider | Terminal pair programming | Creates .aider.conf.yml — auto-reads CLAUDE.md |
| continue | Continue.dev | VS Code + JetBrains users | .continue/config.yaml with /orchestrator slash command |
| roo | Roo Code | VS Code extension users | Rules in .roo/rules/ — auto-loaded per project |
Use --provider all to scaffold all providers (claude + nessy + codex + qwen + cursor + windsurf + copilot + gemini + cline + aider + continue + roo).
How It Works
One human (CEO) gives tasks. The Orchestrator agent breaks them into steps, picks the right specialist role, runs the pipeline, and delivers a PR. Human escalation is required only for: public content, breaking API changes, infra decisions with cost impact, or 5+ consecutive failures.
Pipeline types
| Type | Steps | When |
|---|---|---|
feature |
PLAN → BUILD → TEST → VERIFY → SHIP | New functionality |
bugfix |
BUILD → TEST → VERIFY → SHIP | Skip planning |
infra |
PLAN → BUILD → VERIFY → SHIP | No test step |
content |
PLAN → BUILD → VERIFY(CEO) | Docs / marketing |
spike |
PLAN | Research only |
Modes
| Mode | How to trigger | Description |
|---|---|---|
| CEO Mode | /orchestrator <task> |
Human gives task, orchestrator executes |
| Single Expert | /<role> <question> |
Direct expert call, no pipeline |
| Autonomous | claude -p "/orchestrator ..." |
Orchestrator self-selects tasks from backlog |
Workspace Structure
MyProject/
├── CLAUDE.md <- workspace context (read by AI on every session)
├── code/ <- product repo (git-ignored)
├── docs/
│ ├── process.md <- operational manual (pipeline source of truth)
│ ├── role-capabilities.md <- role index for dynamic orchestrator routing
│ └── workflows/ <- pipeline specs (WORKFLOW-*.md)
├── .claude/
│ ├── commands/ <- slash-command roles (synced from agency-agents)
│ ├── hooks/lint.json <- auto-lint formatter config
│ ├── mcp.json <- MCP server config
│ └── settings.json <- hook configuration
├── .github/
│ └── workflows/
│ └── orchestrator.yml <- run orchestrator in CI (claude/nessy providers)
├── .codex/ <- Codex config (--provider codex)
│ └── skills/ <- orchestrator skill pre-loaded
└── tools/
├── completions.zsh <- zsh completions
└── completions.ps1 <- PowerShell completions
Bringing in an existing codebase:
multiagent-setup new MyProject
cd MyProject
git clone https://github.com/my-org/my-repo code/MyProject
# Edit CLAUDE.md to describe the project → done
Hook System
All hooks are compiled into the multiagent-setup binary — no shell scripts, no platform quirks.
| Hook | Trigger | Action |
|---|---|---|
block-dangerous |
PreToolUse (Bash) | Blocks rm -rf /, push --force main, DROP TABLE, etc. |
enforce-commit-msg |
PreToolUse (Bash) | Enforces conventional commits (feat:, fix:, etc.) |
auto-lint |
PostToolUse (Edit/Write) | Runs formatter on changed file (prettier, ruff, gofmt, rustfmt…) |
log-agent |
PreToolUse (Agent) | Logs sub-agent launches to .claude/agent-log.jsonl |
stop-guard |
Stop | Reminds to run tests and update knowledge graph |
research-reminder |
PostToolUse (WebSearch) | Reminds to persist research in O'Brien memory |
Agent Roles
20+ specialist roles from agency-agents, installed at workspace creation time.
| Layer | Roles |
|---|---|
| Strategy | /product-manager, /product-trend-researcher |
| Management | /orchestrator, /testing-reality-checker, /specialized-workflow-architect |
| Engineering | /engineering-software-architect, /engineering-backend-architect, /engineering-frontend-developer, /engineering-code-reviewer, /engineering-devops-automator, /engineering-security-engineer |
| AI / ML | /engineering-ai-engineer |
| Design | /design-ux-researcher, /design-ui-designer |
| GTM | /specialized-developer-advocate, /engineering-technical-writer, /marketing-content-creator |
The orchestrator routes dynamically via docs/role-capabilities.md — no hardcoded assignments. If no role fits, it creates an ad-hoc role on the fly.
Infrastructure (Optional)
AGE Graph
Graph knowledge base on PostgreSQL + Apache AGE, connected via age-mcp. Stores modules, pipelines, role bindings, security findings, code insights. Grows with every task.
O'Brien
Semantic memory on pgvector — cross-session context, task locking, crash recovery.
multiagent-setup install-mcps # interactive Docker setup
multiagent-setup install-mcps --manual # enter connection strings manually
Examples
See examples/ for concrete workflows:
- SaaS Starter — foundation, auth, billing, autonomous sessions
- Open Source Maintainer — bug triage, PR reviews, releases
CLI Reference
multiagent-setup new <project> [org] [--provider claude|nessy|codex|qwen|cursor|windsurf|copilot|gemini|cline|aider|continue|roo|all]
multiagent-setup add-provider <provider> [--force] # add provider to existing workspace
multiagent-setup update [--force] # update workspace templates to latest version
multiagent-setup sync-roles [--clone|--pull] [--agency-dir <path>]
multiagent-setup install-mcps [--docker|--manual] [--age-conn <str>] [--obrien-conn <str>]
multiagent-setup hook <name>
multiagent-setup doctor # check workspace for common config issues
multiagent-setup -v | --version
Requirements
| Tool | macOS/Linux | Windows |
|---|---|---|
| .NET SDK 10+ | brew install dotnet |
winget install Microsoft.DotNet.SDK.10 |
| GitHub CLI | brew install gh |
winget install GitHub.cli |
| git, jq | brew / apt | winget install Git.Git jqlang.jq |
| Agent CLI | see provider table above | same |
| Docker | optional, for AGE/O'Brien | winget install Docker.DockerDesktop |
bootstrap.sh / bootstrap.ps1 install everything automatically on a clean machine.
Contributing
Templates live in tools/setup-cli/Templates/. Each provider gets its own directory under providers/. See CONTRIBUTING.md for setup instructions and how to add a new provider.
FAQ
Does this work with projects that already have code?
Yes. The workspace wraps your existing repo: multiagent-setup new MyProject creates the workspace, then clone your repo into code/MyProject/.
How do I use multiple providers?
Run multiagent-setup new MyProject --provider all to scaffold all providers at once. To add a provider to an existing workspace: multiagent-setup add-provider gemini.
What does the orchestrator do when I'm not watching?
In CEO Mode it waits for your next task. In Autonomous mode (claude -p), it picks tasks from the GitHub Project backlog and escalates only for defined edge cases.
Can I add custom roles?
Yes. Create a .md file in .claude/commands/ with a name: frontmatter field. The orchestrator uses it automatically, and can also create ad-hoc roles on the fly.
Do I need Docker / AGE graph / O'Brien?
No. The MCPs are entirely optional. The workspace and pipeline work without them. install-mcps is a separate optional step for teams that want persistent memory across sessions.
A safety hook is blocking a command I need.
Claude Code will prompt you to approve or deny the hook's decision. Click "Allow" to override for that command. You can also edit .claude/settings.json to adjust which hooks are active.
How do I update an existing workspace to the latest templates?
Run multiagent-setup update from inside your workspace. Your customised context files (CLAUDE.md, GEMINI.md, etc.) are preserved. Add --force to overwrite everything.
Where can I see what agents were spawned in a session?
The log-agent hook writes to .claude/agent-log.jsonl — one JSON line per agent launch with timestamp, type, model, and prompt preview.
Is this production-ready?
Yes. The tool has a stable API (breaking changes only in major version bumps). It's used for autonomous overnight runs and SaaS development sessions. The doctor command checks your workspace for common config issues.
Can the orchestrator run in CI without a local machine?
Yes. A GitHub Actions workflow (orchestrator.yml) is scaffolded for claude/nessy workspaces. It triggers on issue labels and runs the orchestrator headlessly via claude -p. See examples/ for autonomous session patterns.
Does the pipeline need internet access?
Only for git push/PR creation steps and any web research the agent does. All local code analysis, formatting, and linting runs offline.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.31.0 | 47 | 4/9/2026 |
| 1.30.0 | 35 | 4/9/2026 |
| 1.29.0 | 34 | 4/9/2026 |
| 1.28.0 | 36 | 4/9/2026 |
| 1.27.0 | 45 | 4/9/2026 |
| 1.26.0 | 35 | 4/9/2026 |
| 1.25.0 | 44 | 4/9/2026 |
| 1.24.0 | 52 | 4/8/2026 |
| 1.23.0 | 38 | 4/8/2026 |
| 1.22.0 | 41 | 4/8/2026 |
| 1.21.0 | 39 | 4/8/2026 |
| 1.20.0 | 35 | 4/8/2026 |
| 1.19.0 | 40 | 4/8/2026 |
| 1.18.0 | 42 | 4/8/2026 |
| 1.17.0 | 37 | 4/8/2026 |
| 1.16.0 | 41 | 4/8/2026 |
| 1.15.3 | 41 | 4/8/2026 |
| 1.15.2 | 36 | 4/8/2026 |
| 1.15.1 | 39 | 4/8/2026 |
| 1.15.0 | 35 | 4/8/2026 |