Run Claude Code, Codex and Cursor in a real local dev environment
An agent that cannot load the page or read the logs is guessing. PortBay gives every project a running app on your Mac — .test domain, trusted HTTPS, database, logs — then dispatches those three and 8 more agents into it from a task board. Review the result at a URL, not a diff.
Added the /auth routes and the callback, wired the provider and migrated the users table. It is serving on https://app.test/auth — 2 of 3 checks green.
Deduped the webhook handler on delivery_id. Replayed the last 200 events against the local endpoint, no doubles.
Your AI coding agents already work here. Assign a card and PortBay dispatches it — under the CLIs and the keys you already have.
Run three agents at once without three checkouts
Each card gets its own git worktree, so Claude Code, Codex, Cursor or Antigravity can work the same repo at the same time and never touch each other's files.
One git worktree per card, branched for you — so three agents on one repo never touch the same file.
How concurrent runs stay isolated — see /features/agent-task-board
Agents that work on a running app, not a folder
Press play and the project gets a runtime, a .test domain, a trusted certificate and any of 7 database engines. The agent edits code that is already serving.
★ With PortBay
- HTTPS .test domain the moment you press play
- Databases, mail and logs attached per project
- The agent can hit its own changes over HTTP
△ Without it
- Agents guessing at code they cannot run
- A Docker Compose file you maintain by hand
- Certificates and hosts entries, every time
Press play and the project is serving on its own HTTPS .test domain, database attached. No Dockerfile, no Compose.
What one click starts — see /features/agent-dev-environment
Open the running result, not the diff
When a card lands in Done it carries a URL, a diff summary and the log of what the agent actually ran. You look at the app, then decide.
★ With PortBay
- Click the card, land on the working page
- Diff, output and violations on the same card
- Reject and re-dispatch without leaving the board
△ Without it
- Reading 400 lines of patch to guess the outcome
- Checking out the branch to try it yourself
- Screenshots pasted into a chat thread
A finished card carries the URL, the diff and the agent's full log. You judge the app, not the patch.
What lands on a finished card — see /features/http-inspector
One window instead of six
The board, the terminal, the database, the mail catcher, the HTTP inspector and the logs are the same app. Nothing to alt-tab to while an agent runs.
★ With PortBay
- Board, logs and services in one window
- Per-project terminals that keep their cwd
- Requests and mail captured without a proxy
△ Without it
- Six apps and a tab group per project
- Hunting for which terminal is which
- ngrok, a mail client and a DB GUI on the side
Board, terminals, databases, mail and the HTTP inspector are one window. Nothing to alt-tab to.
Everything in the window — see /features
Your code never leaves your Mac
No cloud workspace, no per-seat bill, no repo upload. PortBay is a desktop app; the agents run as the CLIs you already installed, under your own keys.
★ With PortBay
- Source, databases and secrets stay local
- Your existing agent subscriptions, your keys
- Works with the network off
△ Without it
- Pushing the repo to someone else's runner
- A second bill per seat, per month
- Waiting on a remote container to boot
Source, databases and secrets stay on local disk. Agents run as CLIs you already installed, under your own keys.
Read the desktop app source on GitHub
One app instead of the pile you have open
Every tool below is one you are probably running right now. PortBay does that job in the same window as the board your agents work.
From a folder on your Mac to an agent shipping in it
Five steps, once per project. After that the board is the only thing you touch — everything below happens in one window, on your own machine.
Bring the sites you already run
One pass, nothing retyped
PortBay reads your existing sites out of Herd, ServBay, MAMP, Valet on first launch — paths, PHP versions, domains and databases come across as they are. Point it at a folder for anything it did not find.
Projects
6 projects · imported on first launchPress play, get an environment
Runtime, domain, certificate, database
One click starts the runtime, issues a .test domain with a certificate your browser already trusts, and attaches MySQL, MariaDB or PostgreSQL scoped to that project. No hosts file, no nginx config, no Compose.
acme-storefront
started in 1.2sDrop the work on an agent
11 agents, one board
Write the card, @mention the agent, move it to To Do. PortBay opens the session, inserts the prompt and fires it — and gives every card its own git worktree at .portbay/worktrees/<card-id>, so several agents run the same repo at once without colliding.
Tasks
· Acme StorefrontAdd gift-card redemption at checkout
Fix the cart total rounding bug
Add a product reviews API
@claude · dispatchedMigrate raw img tags to next/image
@codex · dispatchedSee what it is actually doing
Live output, not a black box
The inspector streams the agent's output, the requests the app served while it worked, the files it touched and the diff it produced. You can stop it mid-run; the environment stays up.
Request Inspector
live traffic the agent causedReview at a URL, then merge
Open the app, not the patch
A finished card carries the link to the running result. Open it, use it, and decide — then merge the worktree's branch, or send the card back with a comment and let the agent go again.
Add a product reviews API
· doneMake local development self-driving
Write the card once. PortBay opens the session, runs the agent against an app that is already serving, keeps what it learned for next time, and hands you back a URL — across 11 agents and as many projects as your machine will hold.
Works with what is already on your machine
PortBay attaches to the agents you have installed and the projects you already run. No new runner, no new task format, no rewrite.
The agents you already use
Claude Code, Codex, Cursor, Copilot. Point a card at one of them and it runs on this machine, in your project, on the branch you gave it.
The stack you already run
PortBay reads the framework from the folder, serves it on its own .test domain, and starts the databases it needs.
Your machine. Your code. No cloud workspace.
PortBay is a desktop app, not a hosted runner. Nothing here is a promise about someone else’s server, because there is no someone else’s server.

Source, databases, mail and secrets stay on local disk. There is no PortBay server to send them to.
PortBayAgents run as the CLIs you already installed, under credentials you already hold. PortBay never proxies a request.
Clone an unknown repo into a macOS sandbox profile with an explicit path and network allowance, and read the violations.
Every project is already live at its own .test address on a trusted certificate. Open the page the agent just touched and look at it before you keep the branch.
macOS 11+ on Apple Silicon and Intel, plus a Linux x86_64 AppImage. No Windows build yet.
Your Mac is the server. Nothing in the cloud unless you connect it.
Open source, AGPL-3.0
The app, the CLI and the MCP server are open under AGPL-3.0. Read every line, build it yourself, fork it. No black boxes, no hidden logic.
Runs on your machine
Your sites, databases, captures, local models and speech-to-text all run on your Mac — PortBay is only the control plane. No shared compute, no cloud account. You reach the outside when you choose to: a tunnel, an SSH deploy, an external agent.
Verifiable releases
Every release is signed, notarized and stapled in CI, ships a full SBOM, and auto-updates are checked against a published public key before they install. Nothing reaches you unverified.
- v0.1.9 signed, notarized, SBOM attached
- 9 releases shipped
- AGPL-3.0 open source
- macOS and Linux today · Windows on the roadmap
GitHub numbers as of September 2026
Free until you outgrow six projects
The Community plan is the whole everyday product — the agent task board, HTTPS, databases, mail capture and tunnels. Pro removes the ceilings, not the features.
CommunityProTeam
$012345678901234567890123456789
The full everyday product, open source, for up to 6 projects.
Fully functional forever. Not a trial.
What’s included
- ProjectsUp to 6Unlimited
- Shared Kanban task board
- Trusted HTTPS on .test domains
- Per-project MySQL databases
- Public Cloudflare tunnels
- Sandboxed runs2 projectsUnlimited
- Task attachments10 MB per file250 MB per file
- Custom domain suffixPinned to .test
- SSH keep-alive & auto-reconnect
- Encrypted sync
Billing, refunds and the contributor path to free Pro: full pricing details
Running in three steps
Install, point it at a project, assign a card. The longest part is the download.
==> Downloading PortBay
==> Installing Cask portbay
🍺 portbay was successfully installed
$
Found 7 sites in Herd, ServBay, MAMP, Valet
✓ acme-shop PHP 8.4 · MySQL
✓ docs-site Node 22 · static
✓ billing-api PHP 8.3 · PostgreSQL
# each one gets
https://acme-shop.test
Fix the checkout total on VAT orders
assignee @claude-code
worktree card/412-vat-total
status ● running
# when it lands
open https://acme-shop.test/cart
Free and open source. No account, no seat count, no repo upload.
Answers to your questions about PortBay
Don’t see your question answered here? The docs go deeper — every feature, flag and failure mode.
Read the docsPortBay is a free, open-source desktop app for macOS and Linux — the local command center for developers and their AI agents. It gives every project a real running environment (PHP, Node, database and static apps on real .test domains with automatic HTTPS, in one click, no Docker, no config) and a task board that can dispatch AI coding agents like Claude Code, Codex and Cursor to work your tasks inside that running environment.
Yes. PortBay is free and open source, and runs up to 6 projects. A Pro plan ($10/month, or free forever via a merged qualifying PR or a GitHub sponsorship) removes the project limit and adds 250 MB task attachments, custom domains and tunnels, hardened SSH tunnels and encrypted sync across two Macs.
Nothing breaks. Existing projects keep running and are never deleted; only adding new ones is blocked. Without an account the cap is 3 projects, a free account raises it to 6, and Pro removes it. A lapsed Pro account drops back to the 6-project cap, never to 3.
PortBay ships a signed, notarized macOS build for Apple Silicon and Intel (macOS 11+) and a Linux x86_64 build (AppImage, deb and rpm). There is no Windows build yet. Windows is the remaining gap; no date is promised, and the roadmap lives in the README on the PortBay GitHub repository.
Yes to both. PortBay is a native macOS app on macOS 11 or later, built for Apple Silicon (M1 or newer) with a separate Intel (x86_64) DMG. There is also a Linux x86_64 build.
Yes. PortBay's task board doubles as a control hub for AI coding agents. You assign a card to an agent and move it to Todo; PortBay dispatches one of 11 agent CLIs — Claude Code, OpenAI Codex, Cursor, Gemini, Aider, Copilot CLI, OpenCode, Amp, Qwen Code, Antigravity and Ollama — to work it. The agent claims the card (In Progress), does the work in your running project, comments what it changed, and the card advances to Done. It all runs on your machine.
No. PortBay itself needs no API key and no account for your first 3 projects (a free account raises that to 6). Agents dispatched from the board use the Claude, Codex or Cursor subscription you already have, through the CLIs installed on your Mac. Local models need no key either: PortBay manages an Ollama server and its built-in agent can work a card fully on-device.
PortBay detects and dispatches the agents you already have installed: 11 out of the box — Claude Code, OpenAI Codex, Cursor, Gemini, Aider, Copilot CLI, OpenCode, Amp, Qwen Code, Antigravity and Ollama — plus any other CLI via a Custom command template. You can run them in CLI (headless) mode or open them in the desktop app, and dispatch one from a card by moving it to Todo or by @mentioning the agent in a comment.
Vibe Kanban, Conductor and Cline orchestrate coding agents across parallel git worktrees. PortBay does that too — each dispatched card gets its own worktree and branch under a board-level concurrency cap — but the card also runs inside a full local dev environment: managed PHP and Node runtimes, a per-project database, trusted HTTPS on a real .test domain, email capture and a public tunnel. The agent builds against a running app, not an empty checkout. PortBay is also your everyday local dev tool, open source, and runs fully on your own machine.
PortBay sends nothing. The board, cards and comments live on your Mac, and PortBay itself makes no cloud calls with your code. The agent CLIs you dispatch (Claude Code, Codex, Cursor) talk to their own model providers under your existing accounts, the same as when you run them in a terminal. Dispatch a local Ollama model instead and the entire run stays on-device.
An agent runs with your user permissions, like any CLI you launch. PortBay adds guardrails: a Require review setting that holds agent-reported work in Review until you approve it, a Rejected column only a human can use, a strike system that stops a failing card from re-dispatching after 3 failed runs by default, and per-card git branches (an isolated worktree per card once parallel dispatch is on). For untrusted code, a sandboxed run confines file writes to the project folder.
A sandboxed run wraps a project's process in a macOS sandbox-exec profile that PortBay generates: file writes are confined to the project folder and temp directories, and you pick a network policy (blocked, loopback only, outbound, or full). Every denied attempt lands in a violations log. You can clone a Git URL straight into a sandbox. Community includes 2 sandboxed projects at once; Pro removes the cap.
Yes. The board, your cards and the agent's comments all live on your Mac — nothing is sent to a server and there is no account required to use it. It is a single, private source of truth between you and your agents, not a cloud service.
Unlike PHP-only tools, PortBay runs PHP, Node, databases and public tunnels in one app, gives every project automatic HTTPS on a real local domain, and imports your existing sites from Laravel Herd, ServBay, MAMP and Laravel Valet in one click. The app is open source.
No. PortBay runs native managed runtimes — PHP-FPM, Node and more — directly on macOS, so projects start in seconds without containers, images or YAML files.
PHP apps including Laravel and WordPress, Node frameworks like Next.js and Vite, plain static sites, and mobile targets including Flutter, Expo, iOS and Android — each detected and run the right way automatically. Behind them PortBay provisions MySQL, MariaDB, PostgreSQL, Redis, MongoDB, Memcached and SQLite.
Yes. Every project gets a real .test domain and a trusted mkcert HTTPS certificate that PortBay issues and renews for you, so your browser treats local sites as secure with no warnings.
Yes. PortBay opens a secure Cloudflare tunnel that gives your local site a public HTTPS URL in one click — useful for client demos, webhooks and testing on real devices.
Yes. PortBay installs and supervises a local Ollama server, pulls models from the live catalog, and exposes one on-device endpoint (127.0.0.1:11434) that its own features and your own tools can share. It powers Speech-to-Text rewrites and the optional SSH host assistant — models and prompts never leave your Mac. You can also hand a board card to a local model and let PortBay's built-in agent run the whole task on-device, or keep dispatching the agent CLIs you already use (Claude Code, Codex, Cursor) for everything else.
Yes. PortBay includes on-device Speech-to-Text: hold the Fn key and talk, and a speech model on your Mac's Neural Engine (Whisper or Parakeet) transcribes while a local AI model cleans up the result — so a task card, commit message or agent prompt comes out as text worth keeping. With a local speech model it works in any app on your Mac, the audio never leaves the machine, and ⌘Z always restores your exact words.











