Skip to main content

Raid logoRaid logoRaid

Open-source CLI for orchestrating complex development workflows.

Raid CLI demo

Easy Install

Homebrewbrew install 8bitalex/tap/raid
Scriptcurl -fsSL https://raidcli.dev/install.sh | bash
Or download manually from GitHub (Windows, Linux, macOS)

Your whole stack, one YAML profile

A profile is a version-controlled YAML file that describes your entire development environment: the repositories to clone, how to set them up, the environments to switch between, and the commands your team runs. Check it in once — every teammate and every machine gets the same setup.

profile.raid.yml
name: platform
repositories:
- name: api
url: [email protected]:my-org/api.git
path: ~/dev/api
- name: frontend
url: [email protected]:my-org/frontend.git
path: ~/dev/frontend
- name: worker
url: [email protected]:my-org/worker.git
path: ~/dev/worker

One-command onboarding

raid install clones every repo in your profile and runs their install tasks concurrently. A new teammate is fully set up before they finish their coffee.

terminal
$ raid install
Cloning 3 repositories
api ~/dev/my-project/api
frontend ~/dev/my-project/frontend
worker ~/dev/my-project/worker
Running install tasks (3 workers)
api npm install
frontend npm install
worker go mod download
Done in 1m 18s

Tribal knowledge, codified

Every setup step, script, and gotcha lives in raid.yaml alongside the code. No wiki to update, no Slack thread to dig through — the repo is the runbook.

raid.yaml
install:
tasks:
- type: Shell
cmd: brew bundle
condition:
platform: darwin
- type: Shell
cmd: npm install
- type: Shell
cmd: cp .env.example .env
condition:
exists: .env.example

Shared team commands

Define custom commands once in your profile — raid deploy, raid reset-db, whatever your team needs. Everyone gets the same commands without any extra setup.

profile.raid.yml
commands:
- name: deploy
usage: Deploy to production
tasks:
- type: Confirm
message: "Deploy to production?"
- type: Shell
cmd: ./scripts/deploy.sh
- name: reset-db
usage: Reset local database
tasks:
- type: Shell
cmd: docker compose down -v db
- type: Group
ref: db-migrate

Environment switching

raid env staging writes the right .env files into every repo and runs environment tasks across all of them at once — profile-level tasks and each repo's own. Switch contexts in seconds, not minutes.

profile.raid.yml
environments:
- name: dev
variables:
- name: NODE_ENV
value: development
- name: DATABASE_URL
value: postgresql://localhost/dev
tasks:
- type: Shell
cmd: docker compose up -d
- type: Wait
url: localhost:5432
timeout: 30s

Built for AI agents

Raid is a first-class MCP server: raid context serve gives Claude, Cursor, or any MCP client live workspace context and tools to run your team's commands — with per-command agent safety metadata controlling what runs unattended. Headless mode (--yes) and --json output make every command scriptable.

mcp.json
{
"mcpServers": {
"raid": {
"command": "raid",
"args": ["context", "serve"]
}
}
}

How does Raid stack up?

See how Raid compares to other popular task runners and dev tools.

Raidmakejustmiseturbo
Multi-repo orchestration
Team profile sharing
One-command onboarding
Environment switching
Custom task runner
YAML config
No DSL to learn
Concurrent task execution
Language-agnostic