Skip to content
PortBay

Run Claude Code agents from a local task board

Write a card, assign Claude Code, move it to To Do. PortBay launches the CLI you already have installed, points it at the card, and the work happens in a running local project on your Mac.

The short answer

How do I run multiple Claude Code agents at once?

Two problems have to be solved separately: isolation and verification. Claude Code covers isolation itself — claude --worktree auth gives each run its own checkout and branch, and claude agents lists what is in flight. What a worktree lacks is somewhere to run: no server, no database, no URL to check the work at. PortBay supplies that half. Each card is a Markdown file in .portbay/tasks/; move one to To Do and PortBay launches Claude Code as a headless CLI subprocess pointed at that card, inside the project's running environment — a real .test domain with trusted HTTPS, a per-project database, captured mail. The run reads .portbay/HANDOFF.md first, comments what it changed, and advances the card; a strike system stops a failing card after 3 runs by default. Settings → Integrations writes the MCP config, so a connected session can drive the board itself.

Verified against the product, 2026-07-10.

In the app

One card, one Claude Code run

acme-shop · Board6 cards3 agents online
Pending2
infra
Rate-limit the API
P1
Dark mode polish
P2
Todo2
auth
Add OAuth login
P0Claude Code0/3oauth-login
Auto-dispatching
implement OAuth on app.test
db
Migrate to Postgres
P1
In Progress1
Fix flaky checkout test
P0
Done2
Set up Mailpit inbox
P2
Seed demo data
P2
1/5 · AssignA card lands in Todo and @claude is mentioned

Assign Claude Code, move the card to To Do, and PortBay dispatches it into the running project. The card comes back with comments and a summary of what changed.

Walkthrough

Your first Claude Code card

Six steps from a clean Mac to a Claude Code run you can review at a real URL. Every command runs as written.

  1. Install PortBay
  2. Add your project
  3. Connect Claude Code over MCP (optional)
  4. Write a card and assign Claude Code
  5. Move the card to To Do
  6. Review the work at a real URL

Install PortBay

Homebrew installs the app and the bundled portbay CLI. Prefer a direct download? Grab the DMG from GitHub Releases and drag PortBay.app into Applications.

brew tap portbay-app/portbay && brew install --cask portbay

Add your project

Click Add project in the app, pick the folder, and confirm the detected type, hostname and port. Save, then start it. Your project now answers at its own .test URL over HTTPS. The CLI does the same from a terminal.

portbay add ~/code/myapp

Connect Claude Code over MCP (optional)

Settings → Integrations detects the agent CLIs on your Mac and writes the MCP config for each client, Claude Code included. Or add it from the terminal. A connected session can read the board, claim cards and move them forward.

claude mcp add portbay -- /opt/homebrew/bin/portbay-mcp

Write a card and assign Claude Code

Describe the task the way you would brief a teammate. Assign Claude Code on the card itself, or set it as the board default so every card without its own agent uses it. The card is a plain Markdown file in your repo.

.portbay/tasks/fix-signup-validation.md

Move the card to To Do

Auto-dispatch launches Claude Code the moment the card lands. Manual mode queues the card and asks you to confirm each run. A concurrency cap keeps a busy board from launching ten agents at once.

Review the work at a real URL

The agent edits your repo, checks its work against the running project, comments what it changed, and appends a hand-off entry to .portbay/HANDOFF.md. Open the project URL and review. Turn on Require review to hold agent-reported work for your approval.

https://myapp.test
Without PortBay

The same task, without the board

Claude Code manages worktrees and background sessions on its own, and that solves the checkout half. What each worktree still lacks is an environment: no running server, no database, no URL to open.

PortBay closes the verification gap: the card dispatches into a project that is already running, at a URL both you and the agent can open, and the hand-off note carries the context to the next run.

Questions

Asked before downloading

Does PortBay need an Anthropic API key to run Claude Code?

No. PortBay launches the Claude Code CLI you already have installed, under your existing account. It ships no model of its own and adds no key of its own. If Claude Code works in your terminal, it works from the board.

Can I run several Claude Code agents in parallel?

Yes. Each card dispatches its own run, and a board-level concurrency cap decides how many run at once. A card can also create or switch to its own git branch on dispatch, so parallel agents don't fight over the working tree.

Can Claude Code drive the board itself over MCP?

Yes. Settings → Integrations writes the MCP config for Claude Code. A connected session reads the hand-off, claims the next card, posts progress and touched files, then updates the hand-off and moves the card forward. Three read-only resources expose the project context, the board and the hand-off.

What happens when a Claude Code run keeps failing?

Each run that ends without Done adds a strike. At the cap, 3 by default, the card stops auto-dispatching and lands in Blocked with a comment. Before that, an optional rescue attempt hands the last try to a stronger agent, and a teacher step distills the failure into a lesson in .portbay/LEARNINGS.md that every later run reads.

PortBay mascot — a friendly blue tugboat

Give your projects and your agents a real local home.

Download for macOS

Free & open source · macOS 11+ on Apple Silicon · Pro from $10/mo