Adversarial Multi-Agent Orchestration Tool for AI-assisted development
WARNING: This tool launches AI agents that run with full access to your codebase and system. Agents can read, create, modify, and delete files autonomously. By default, agents run with
--dangerously-skip-permissions, which bypasses all safety prompts. Review your agent prompts and configuration before runningcrew start. See SECURITY.md for details.
crew provides two distinct modes for AI agent orchestration:
| Command | Mode | Use Case |
|---|---|---|
design |
Cross-Review | Refine ideas into polished design docs |
crew |
Parallel Agents | Run multiple AI agents for debugging/optimization |
git clone https://github.com/YOUR_USERNAME/crew ~/dev/crew
cd ~/dev/crew
./install.shThis creates symlinks in ~/.local/bin. If not already in PATH, add to your shell config:
export PATH="$HOME/.local/bin:$PATH"Requires:
- Bash 4+
yqfor YAML parsing:brew install yq- An AI CLI:
claude,opencode, orgemini
Supported platforms:
- macOS (primary, actively developed)
- Linux (tested)
- Windows WSL (untested, should work)
Before running crew start, verify the following:
- Git clean state — commit or stash all work; agents will modify files
- Review prompts — read every file in
.crew/prompts/before agents use them - Review
crew.yaml— confirm each agent'scommandandenvfields look correct - No secrets in config — API keys go in shell env (
export ANTHROPIC_API_KEY=...), never increw.yaml -
.gitignorecovers runtime files —.crew/logs/,.crew/run/should be ignored - Understand
--dangerously-skip-permissions— agents bypass all safety prompts and can read/write/delete any file
Tip: Run
crew validateto check config syntax before starting agents.
Turn ideas into refined design documents through automated Writer ⇄ Reviewer loops.
# Initialize with your idea
design init "A CLI tool for managing container deployments"
# Start cross-review loop
design review
# Check status
design status┌──────────────┐ trigger ┌──────────────┐
│ Plan Writer │ ──────────────→│ Reviewer │
│ Agent │ │ Agent │
└──────────────┘ └──────────────┘
↑ │
│ trigger (if !pass) │ pass?
└───────────────────────────────┘
- pass: Reviewer approves the plan
- stale: Plan unchanged for 2 iterations
- conflict: Same issues repeat 3+ times
.design/
├── design.yaml # Config
├── idea.txt # Your initial idea
├── plan.md # Current plan
├── review.md # Current review
└── history/ # All iterations
Run multiple AI agents in parallel for continuous codebase improvement.
# Initialize in your project
crew init
# Start all agents
crew start
# Start specific agents
crew start QA DEV JANITOR
# Monitor real-time
crew monitor
# View logs
crew logs QA
> **Tip**: For long-running tasks (like full test suites), log output may appear "stuck" due to buffering. The log will update in a large chunk once the command completes.
# Stop all
crew stopEdit .crew/crew.yaml:
project: my-project
check_interval: 30
agents:
- name: QA
icon: 🔴
command: claude --dangerously-skip-permissions
prompt: prompts/qa.txt
interval: 10
timeout: 600
- name: DEV
icon: 🔵
command: claude --dangerously-skip-permissions
prompt: prompts/dev.txt
- name: JANITOR
icon: 🟢
command: claude --dangerously-skip-permissions
prompt: prompts/janitor.txt
interval: 10
timeout: 600
> **Note**: Changes to `crew.yaml` (including `interval` and `env` variables) require a restart of the affected agents to take effect. Run `crew restart [AGENT]` to apply changes..crew/
├── crew.yaml # Config
├── prompts/ # Agent prompts
├── logs/ # Agent logs
└── run/ # PID files
Use the env field in .crew/crew.yaml to configure per-agent environment variables for different providers:
agents:
- name: DEV
command: claude --dangerously-skip-permissions
prompt: prompts/dev.md
env:
ANTHROPIC_BASE_URL: https://openrouter.ai/api/v1
ANTHROPIC_MODEL: anthropic/claude-sonnet-4-20250514| Provider | ANTHROPIC_BASE_URL |
|---|---|
| Anthropic (default) | https://api.anthropic.com |
| OpenRouter | https://openrouter.ai/api/v1 |
| Self-hosted | http://localhost:8080/v1 |
WARNING: Never put API keys in
crew.yamlif it's committed to git.
Set ANTHROPIC_API_KEY in your shell environment instead:
export ANTHROPIC_API_KEY="sk-..."| Variable | Description |
|---|---|
CREW_AGENT |
Override default agent type (claude, opencode, gemini) |
ANTHROPIC_BASE_URL |
Override API endpoint for Claude CLI |
ANTHROPIC_MODEL |
Override model for Claude CLI |
ANTHROPIC_API_KEY |
API key for Claude CLI (set in shell, not config) |
DEBUG |
Set to 1 for verbose output |
cd ~/dev/my-app
design init "Add real-time collaboration with WebSockets"
design review --max-iter 3
# Result: .design/plan.md with refined designcd ~/dev/my-app
crew init
# Edit .crew/crew.yaml and prompts
crew start QA DEV JANITOR
crew monitor
# Agents run continuously, finding and fixing issues
crew stopIf you already have crew set up on another project:
cd ~/dev/crew # or wherever you cloned crew
git pull
./install.sh # re-creates symlinks, safe to re-runIn each project that uses crew:
crew stop # stop any running agents
rm -rf .crew/run/ # remove old PID files
rm -rf .crew/logs/ # remove old logs (optional)Breaking change: Commands with pipes or shell operators (e.g. cmd1 | cmd2)
no longer work in the command field. Use a wrapper script instead.
Before:
command: ANTHROPIC_MODEL=my-model claude --dangerously-skip-permissionsAfter:
command: claude --dangerously-skip-permissions
env:
ANTHROPIC_MODEL: my-modelcrew validate # check config syntax
crew start # test agents start correctly
crew status # confirm all running
crew stop # clean shutdownMIT