Skip to content
PortBay
For

PortBay for the way you already work

One page per agent you dispatch and per framework you edit. Each one shows the setup end to end, the commands as you would type them, and the limits before you hit them.

Your agents, and the stacks they build in

One page per agent you dispatch and per framework you edit. The board sits in the middle of both.

Every agent, on one board

Claude Code, Codex, Cursor, Gemini and Copilot are dispatched from the same cards, under the credentials you already hold.

Every stack, in its own source

Click an element in the running app and the edit lands in the file that produced it — Blade, ERB, JSX, a Vue single-file component, a Hugo layout.

For your AI agent

Move a card to To Do and PortBay launches the CLI you already have installed, pointed at that card, inside a project that is already running.

Claude Code

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.

Codex

Codex CLI parallel agents, run from one board

Codex works a prompt and exits, which makes it simple to parallelize and hard to track. PortBay gives every run a card: dispatched headless, worked in a running project, finished with a comment.

Cursor

Run Cursor agents from a local task board

Move a card to To Do and PortBay opens Cursor on the project folder, with the card as the brief. The work happens on your Mac, in a project that is already running at a real URL.

Gemini

Gemini CLI, pointed at a card instead of a prompt

Dispatch gemini -p from a card, and wire the board into .gemini/settings.json over MCP.

Aider

Aider runs from a card, and the card is the message file

The card becomes Aider's message file, and the run happens in a project that is already serving.

OpenCode

OpenCode runs the card, in an app that is already up

opencode run, dispatched from a card into a project that is already serving.

Amp

Amp's non-interactive mode, driven by a board

amp -x, one prompt per card, inside a project that is already running.

Qwen Code

Qwen Code, dispatched with the same -p as its parent

qwen -p from a card, in a project that is already serving over HTTPS.

Copilot CLI

Copilot CLI, working a card in a running app

Run copilot -p from a card, inside a project that is already serving over HTTPS.

Antigravity

Antigravity opens on the project, with the card on your clipboard

The one roster agent that cannot run headless — PortBay opens the IDE on the folder and hands you the brief.

Ollama

Hand a card to a model on your own machine

The fully offline lane: a local model works the card through PortBay's own runtime.

For the visual editor

Click an element in your running app, change it, and the edit is spliced into the source file that produced it — your real template, not a CMS field or a JSON config, with no markers left behind. Pro, early access, and off by default; each page states its own setup and its own limits.

Laravel

Edit Blade templates visually, straight into the .blade.php

Blade elements carry their own source coordinates through a Composer package on Packagist, so edits land in the .blade.php that rendered them.

Livewire

Livewire views, edited in the browser — and the honest catch

Writes into your .blade.php files normally, and states the real cost: wire: DOM morphing degrades live selection, so edit and Save rather than live-tweak.

Inertia

Inertia pages edit like Vite source, because that is what they are

The best-supported Laravel variant: page components are ordinary Vite files, so they get precise and structural editing with nothing installed.

Rails

Click a Rails view, change the .html.erb that rendered it

One Gemfile line and a Railtie. Coordinates survive partials, layouts, content_for and collection rendering — 18 of 18 exact on Rails 8.1 and 7.2.

Django

Django templates, edited where they render

A pip install plus one INSTALLED_APPS line, and your TEMPLATES setting untouched. 18 of 18 coordinates exact on Django 6.1 and 5.2.

WordPress

Edit your WordPress theme's PHP, not a builder's database

Edit your theme's own PHP or block templates rather than a page builder's database rows — with the limits of a no-stamper stack stated up front.

WordPress block themes

Block theme templates are files, and this edits the files

Edits a Full Site Editing theme's own templates/*.html and parts/*.html as source files, and is explicit about the half that lives in the database.

Next.js

Click a Next.js element, change that exact span of .tsx

Register one SWC plugin at version 0.1.1 or newer and your JSX carries source coordinates under Turbopack and webpack alike.

Nuxt

Edit .vue pages in a running Nuxt app, nothing installed

Nothing to install: nuxt dev takes no config path, so PortBay extends your app with a generated layer that adds the stamping plugin.

Remix

One Remix route holds the markup and the head — edit both

Element edits go into the route module's JSX; title and description go into the same file's meta export. Nothing to install on Vite.

Astro

Edit .astro files in the browser, with nothing added to your repo

Nothing to install: PortBay registers stamping under astro.config's vite.plugins from a config generated outside your repo.

SolidStart

SolidStart routes, edited in the browser with nothing installed

SolidStart 2 runs vite dev, so PortBay stamps the server it launches. Version 1's vinxi layout still edits, by matching markup.

Vite

A visual editor for Vite with nothing to install

The zero-install lane: PortBay instruments the Vite dev server it launches, leaving your package.json and lockfile byte-identical.

React

Click a React element, change that exact span of .tsx

Host elements in your .jsx and .tsx carry file, line and column, added to the dev server rather than to your repo. Honest about the component-usage tier.

Vue

Edit the template block of a .vue file from the browser

PortBay stamps the template block of every .vue file — script and style are never scanned — so edits land in the SFC you wrote.

Svelte

SvelteKit routes, edited in the +page.svelte that rendered them

Edits resolve to the +page.svelte that rendered them, and page settings to that route's own svelte:head rather than the site-wide app shell.

Qwik

Qwik City routes, edited down to the line of .tsx

Qwik's scaffold already ships the Vite seam, so there is nothing to install — with the one JSX tier that carries no coordinate named up front.

Angular

Angular templates, edited by markup match — and what it refuses

Edits resolve into your component templates by matching markup. Honest about Angular's bindings: [class] and [ngClass] cannot be targeted.

Hugo

A visual editor for Hugo layouts, not just front matter

Edits the layout templates, not just the front matter — with Hugo's Go-template interpolation refused rather than guessed at.

Jekyll

Edit Jekyll's Liquid layouts, not just the posts

Edits the Liquid layouts rather than only the posts, and writes page titles to that page's own front matter instead of the shared layout.

Eleventy

Eleventy layouts, edited whatever the template language

Nunjucks, Liquid, Markdown or HTML — the editor matches your markup rather than parsing a template grammar, so a mixed-language site behaves the same throughout.

Static HTML

Edit a plain HTML site in the browser, with no build step

No framework, no build step, nothing to install: the served document is the source file, so edits go straight into your .html.

Visual editor

A visual editor for your codebase, not a copy of it

Click an element on your running site in your own browser and edit its text, classes and styles straight into the source file, across 21 stacks.

Your entire stack, connected on first run

Open a folder and PortBay names the framework, picks the runtime, serves it over trusted HTTPS on a .test domain, and attaches the databases and mail capture it needs. No Dockerfile, no vhost, no certificate to install.

18 of the 80 stacks PortBay already knows how to start.

Looking for a capability rather than a stack? Start at Features. Weighing a switch? Compare PortBay with your current tool. Everything past what a page covers lives in the docs.

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