Bobby is an open-source npm CLI that gives structure to AI-assisted development. It turns Claude Code into a disciplined engineering partner with tickets, TDD, peer review, automated testing, and agent chaining that runs a full pipeline end-to-end.
Target audience: People who use Claude Code and want a structured process instead of "one big prompt and hope for the best."
npx bobbycode initThis scaffolds your project with:
.bobby/tickets/— single directory, frontmatter-based stages.bobby/sessions/— session logs for pipeline observability.bobbyrc.yml— all configuration in one commented file.claude/skills/with 21 workflow skills.claude/agents/with 17 agent definitions.claude/commands/with 20 slash commandsCLAUDE.mdwith Bobby workflow instructions
Then start working:
bobby create -t "Build login page" -p high # Create a ticket
bobby create -t "User auth" --epic # Create an epic (breaks down)
bobby list # See your board
bobby run pipeline TKT-001 # Run the full pipeline
bobby dashboard # Open the workspace dashboardAll configuration lives in .bobbyrc.yml, generated with comments during bobby init. Key sections:
# Project identity
project: my-app
stack: nextjs # nextjs | rails-react | django | python-flask | go | rust | polyglot | generic
target: claude-code # claude-code | cline
# Directories
bobby_dir: .bobby
tickets_dir: .bobby/tickets
sessions_dir: .bobby/sessions
ticket_prefix: TKT # Prefix for ticket IDs (e.g., TKT-001)
# Dev commands — used by all agents for test/lint/build
commands:
dev: npm run dev
test: npm test
lint: npm run lint
build: npm run build
# Health check URLs — agents verify the app is running before testing
health_checks:
- name: app
url: http://localhost:3000
# Feature areas — categorize tickets, route to area-specific skills
areas: [auth, dashboard, api]
# Testing tools available to the test agent
testing_tools: [playwright, curl]
# Max retries when review/test rejects (per ticket)
max_retries: 3Optional configuration (commented out in generated file)
# Custom pipelines
pipelines:
default: [plan, build, review, test]
secure: [plan, build, security, review, test]
fast: [plan, build, test]
# Skill routing — maps areas to project skill directories
skill_routing:
auth: [dev/fullstack]
api: [dev/backend]
# Project-specific skills the build agent follows
build_skills:
- api-patterns
- component-library
# Multi-repo shipping (PR per repo)
repos:
- name: api
path: backend-api
- name: ui
path: frontend-ui
# Git branch naming conventions
git_conventions:
feature_branch_prefix: feature # Epic branches: feature/{id}-{slug}
ticket_branch_prefix: tkt # Ticket branches: tkt-{id}
worktree_prefix: bobby # Worktree branches: bobby/{id}-{stage}
# Dashboard configuration
dashboard:
port: 7777
worktree_root: ../bobby-wt
auto_approve_stages: []
auto_merge: false
# Parallel isolation for batch operations
parallel_isolation: none # none | worktree
# Backlog management
backlog_limit: 50
backlog_stale_days: 30
# Conductor.build integration (set to false to skip)
conductor: trueBobby auto-detects your tech stack during bobby init and configures commands, health checks, and areas automatically.
| Stack | Detection | Commands | Health Check |
|---|---|---|---|
| Next.js | next in package.json |
npm run dev/test/lint/build |
:3000 |
| Rails + React | Gemfile + React subdirectory | Docker Compose + npm | :3000 (API), :3001 (UI) |
| Django | manage.py or django in requirements.txt |
manage.py runserver/test + ruff |
:8000 |
| Python / Flask | Flask in requirements.txt | flask run + pytest + ruff |
:5000 |
| Go | go.mod |
go run/test + golangci-lint |
:8080 |
| Rust | Cargo.toml |
cargo run/test/clippy |
:8080 |
| Polyglot | 2+ language markers in subdirectories | Per-service (configured during init) | Per-service |
| Generic | Fallback | Empty (you configure in .bobbyrc.yml) |
None |
Custom stacks: Create .bobby/stacks/<name>.json with your own commands, areas, and health checks. Custom stacks appear at the top of the bobby init selection menu. See docs/CUSTOMIZING.md for the JSON schema.
Bobby ships with a local web dashboard for kicking off agents in parallel, isolated workspaces and watching them work in real time.
bobby dashboard # Opens http://127.0.0.1:7777 in your browser
bobby dashboard --port 7778 # Custom port
bobby dashboard --no-open # Don't auto-open the browserWorkspace model. Each workspace = one ticket + one git worktree on its own branch + one claude subprocess. Multiple workspaces run in parallel without colliding — each agent lives in its own isolated checkout.
What you get:
- Workspace list on the left — live status dots (running, awaiting approval, ready to merge, failed, stopped)
- Live logs streamed via Server-Sent Events — every tool call, every file edit, every stage transition
- Diff viewer — unified diff of the workspace branch vs main
- Files tab — changed files with added/removed line counts
- Runs history — every agent invocation with exit codes and durations
- Actions per workspace:
Run,Stop,Approve(advance to next pipeline stage),Reject(retry build),Merge(no-ff into main),Discard
Crash-safe state. Workspace state is persisted atomically to .bobby/workspaces.json, so bobby dashboard survives restarts.
Security. The dashboard binds to 127.0.0.1 only and has no authentication. If you override the host, bobby prints a loud warning.
After npx bobbycode init, here's a complete walkthrough:
bobby create -t "Add health check endpoint" -p medium --area apibobby list BACKLOG PLANNING BUILDING REVIEWING TESTING SHIPPING
─────── ──────── ──────── ───────── ─────── ────────
TKT-001 · · · · ·
Add health
check endpoint
■ medium
bobby run pipeline TKT-001Bobby chains four agents automatically:
[bobby-plan] → Breaks down the ticket, writes plan.md + test-cases.md
[bobby-build] → TDD implementation, commits to a feature branch
[bobby-review] → Code review against acceptance criteria
[bobby-test] → Runs tests, verifies ACs pass
If review or test rejects, Bobby loops back to build (up to 3 retries).
bobby run shipCreates a PR, waits for CI, and merges.
| Situation | Command |
|---|---|
| I have a clear task to build | bobby run pipeline TKT-001 |
| I have a big feature idea | bobby create -t "Feature" --epic then bobby run feature TKT-001 |
| I want to review the live app | bobby run ux / bobby run pm / bobby run qe |
| I want to validate before building | bobby run vet TKT-001 or bobby run strategy |
| Something broke | bobby run debug TKT-001 |
| I need a security audit | bobby run security TKT-001 |
| I want to ship what's ready | bobby run ship |
| I want to step through one agent at a time | bobby run next TKT-001 |
Bobby chains Claude Code agents through a pipeline:
bobby run pipeline TKT-001
[bobby-plan] ✓ planned
[bobby-build] ✓ built + committed
[bobby-review] ✓ approved
[bobby-test] ✓ passed → shipping
bobby run ship → creates PR, merges
Each agent is a separate Claude Code subagent with a fresh perspective. Rejections loop back to building automatically (max 3 retries).
backlog → planning → building → reviewing → testing → shipping → done
Tickets live in .bobby/tickets/. Stage is tracked in frontmatter — no physical file moves, clean git diffs.
| Command | Description |
|---|---|
bobby create -t "Title" |
Create a ticket (--epic, --parent <id>, -p <priority>) |
bobby list [stage] |
Show the ticket board (--blocked, --epic <id>, --area <area>) |
bobby view <id> |
View ticket details (--plan, --files) |
bobby move <id> <alias> |
Move ticket stage (see aliases below) |
bobby update <id> |
Update ticket fields (--priority, --area, --title, --parent) |
bobby assign <id> <name> |
Assign ticket to a person or agent |
bobby comment <id> <note> |
Add a note to a ticket |
| Command | Description |
|---|---|
bobby triage |
Interactive backlog curation — keep, prioritize, plan, archive, or skip each ticket |
bobby archive [ids...] |
Archive stale backlog tickets (--stale <days>, --dry-run) |
| Command | Description |
|---|---|
bobby run <agent> [ids...] |
Run an agent on ticket(s) — see Run Modes below |
bobby dashboard |
Launch the local web dashboard — parallel workspaces, live logs, diffs, approvals |
| Command | Description |
|---|---|
bobby learn <skill> "pattern" "desc" |
Record an anti-pattern or best practice to a skill's learnings |
bobby retro |
Generate a weekly retrospective from session logs |
| Command | Description |
|---|---|
bobby init |
Initialize a new Bobby project (or re-initialize to update skills/agents) |
bobby export-plugin |
Export Bobby skills and agents as a Cowork plugin (.zip) |
bobby activate <key> |
Activate pro license |
bobby upgrade |
Upgrade Bobby to the latest version (--check to preview) |
bobby move TKT-001 plan # → planning
bobby move TKT-001 build # → building
bobby move TKT-001 review # → reviewing
bobby move TKT-001 test # → testing
bobby move TKT-001 ship # → shipping
bobby move TKT-001 done # → done
bobby move TKT-001 reject "reason" # → building + rejection comment
bobby move TKT-001 block "reason" # → blocked (remembers previous stage)
bobby move TKT-001 unblock # → back to previous stage
The bobby run command supports multiple orchestration patterns:
# Full pipeline — auto-chains plan → build → review → test
bobby run pipeline TKT-001
bobby run pipeline TKT-001 TKT-002 # Multiple tickets sequentially
# Feature workflow — plans all epic children holistically, then executes each
bobby run feature TKT-001 # Epic ID
bobby run feature # Interactive epic selection
# Single agent on a ticket
bobby run plan TKT-001
bobby run build TKT-001
bobby run review TKT-001
bobby run test TKT-001
# Batch mode — run agent on all tickets in the matching stage
bobby run plan # All tickets in "planning" stage
bobby run build # All tickets in "building" stage
# Next step — runs whatever agent is next for a ticket's current stage
bobby run next TKT-001
# Ship — creates PR, waits for CI, merges all shipping tickets
bobby run ship
# Freeform agents (no ticket required)
bobby run ux # Visual/UX review via browser
bobby run pm # Product review via browser
bobby run qe # QA testing via browser + API
bobby run vet # Interrogate design before planning
bobby run strategy # Strategic validation gate
bobby run docs # Update documentation
bobby run performance # Benchmark and detect regressions
bobby run watchdog # Post-deploy smoke tests
# Specialist agents (ticket required)
bobby run security TKT-001 # OWASP + STRIDE audit
bobby run debug TKT-001 # Root-cause investigationThese agents chain together automatically via bobby run pipeline:
| Agent | Role |
|---|---|
| bobby-plan | Plans tickets — epic breakdown or refinement. Produces plan.md + test-cases.md |
| bobby-build | TDD implementation. Writes code and commits to the current branch |
| bobby-review | Peer code review. Reviews git diff against acceptance criteria (fresh perspective) |
| bobby-test | Automated testing. Runs test suite and verifies acceptance criteria pass |
| bobby-ship | Creates PR from current branch, waits for CI, merges |
Freeform agents that review the live application and create tickets for issues found:
| Agent | Role |
|---|---|
| bobby-ux | UX design review via browser automation — never reads source code |
| bobby-pm | Product review — identifies UX gaps and feature opportunities, shapes into tickets |
| bobby-qe | QE testing via browser + API calls — never reads source code |
| bobby-vet | Interrogates designs before planning — probes assumptions, explores alternatives |
| bobby-strategy | Strategic validation gate — assesses demand, scope, ROI before tickets enter planning |
Focused agents for specific concerns:
| Agent | Role |
|---|---|
| bobby-security | OWASP Top 10 + STRIDE threat modeling on changed code |
| bobby-debug | Systematic root-cause investigation — traces data flow, tests hypotheses |
| bobby-docs | Updates README, CLAUDE.md, and docs to stay in sync with code changes |
| bobby-performance | Benchmarking — measures page load, resource sizes, Core Web Vitals |
| bobby-watchdog | Post-deploy verification — smoke tests, uptime, console errors |
| bobby-arch | Architecture discovery — documents codebase structure and decisions |
| bobby-ticket-intake | Converts PM specs into structured Bobby tickets |
Each agent is backed by a skill — a detailed instruction set in .claude/skills/bobby-{name}/SKILL.md. Skills also accumulate learnings over time in learnings.md, so agents get smarter as your project evolves.
Record anti-patterns and best practices so agents avoid repeating mistakes:
bobby learn bobby-build "hard-coded test values" "Implement the algorithm, don't match test inputs"
bobby learn bobby-review "missing error handling" "Check all async calls have try/catch"Learnings are stored in .claude/skills/bobby-{name}/learnings.md and loaded by agents before every run.
Bobby scaffolds Claude Code slash commands in .claude/commands/ so you can invoke agents directly from Claude:
/bobby-plan /bobby-build /bobby-review
/bobby-test /bobby-ship /bobby-pipeline
/bobby-feature /bobby-ux /bobby-pm
/bobby-qe /bobby-vet /bobby-strategy
/bobby-security /bobby-debug /bobby-docs
/bobby-performance /bobby-watchdog /bobby-arch
/bobby-ticket-intake /bobby-local
Define named pipelines in .bobbyrc.yml to customize the agent chain:
pipelines:
default: [plan, build, review, test]
secure: [plan, build, security, review, test]
fast: [plan, build, test]Run a named pipeline:
bobby run pipeline TKT-001 --pipeline secureContributions are welcome! To get started:
- Fork the repo and create a feature branch from
main - Install dependencies:
npm install - Make your changes
- Run tests:
npm test - Open a pull request against
main
Please keep PRs focused on a single change. If you're planning something large, open an issue first to discuss the approach.
MIT