Aider runs from a card, and the card is the message file
Aider takes its brief from a file rather than an argument, which suits a board exactly: PortBay writes the card out and runs `aider --message-file` against it, inside a project already serving at a real URL.
How do I run Aider against a queue of tasks?
Aider is a diff-and-apply agent: it reads a brief, proposes edits to the files you gave it, and commits. PortBay makes the brief a card. Assign Aider, move the card to To Do, and PortBay writes the card's text to a prompt file and spawns `aider --message-file <that file>` with the working directory set to your project. Aider is the only agent on PortBay's roster delivered its prompt this way — every other CLI takes it as an argv argument — and it is also the only one whose capabilities record no tool-calling loop, because Aider's loop is diff and apply rather than call-and-observe. That difference is worth knowing before you assign it a task that needs the agent to fetch a URL. What PortBay adds is the surrounding environment: the project is running on its own .test hostname with trusted HTTPS and a per-project database, so you can check the result by opening it. Each card takes its own git worktree, and a model chosen on the card is passed through as `--model`.
A card written out as a message file
PortBay serializes the card, hands Aider the path, and collects what changed back onto the card when the run ends.
Your first Aider card
Five steps from a clean Mac to an Aider run whose result you open in a browser. Every command runs as written.
- Install PortBay
- Add your project and press play
- Make sure aider is on your PATH
- Write a card and assign Aider
- Move the card to To Do, then read the diff and the app
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 portbayAdd your project and press play
PortBay reads the stack from the folder, fills in the runtime and port, issues the certificate and attaches a database. That is the environment the run inherits — and the one you will check its work in.
portbay add ~/code/myappMake sure aider is on your PATH
PortBay resolves the aider binary and offers it in the agent picker. Aider authenticates with its own provider keys from your environment, not through a subscription handshake and not through PortBay — nothing about that changes when it runs from a card.
which aiderWrite a card and assign Aider
Keep the brief file-shaped: name the files, state the change, state how you will know it worked. That text becomes the message file verbatim. Optionally pin a model on the card and PortBay appends --model to the command.
.portbay/tasks/extract-invoice-service.mdMove the card to To Do, then read the diff and the app
Aider edits and commits in the card's own worktree. The card collects what changed; the running project shows you the result. Turn on Require review to hold the card until you approve, and use the Rejected column when you do not.
https://myapp.testAider without a board
Aider is comfortable in a terminal, which is why the bookkeeping is the part that breaks first.
On a board the brief is a Markdown file in the repo, the branch is the card's own worktree, and the reason survives the run.
cd ~/code/myappcat > /tmp/msg.txt <<'EOF'Extract the invoice totals into a service objectEOFaider --message-file /tmp/msg.txt # the brief lives in /tmp and is gone tomorrow# the branch is whatever you were on# and nothing recorded why the change was asked for
The pieces underneath
Asked before downloading
PortBay writes the card's brief to a prompt file and runs `aider --message-file <path>` with the working directory set to the project. Aider is the only agent on the roster delivered its prompt as a file rather than an argv argument, because that is the interface Aider offers.
No, and PortBay records that rather than hiding it. Aider's capabilities are marked as no tool-calling: its loop is propose-a-diff and apply it, not call a tool and observe the result. It edits files well; it does not go and fetch a URL to check itself. Assign it work that is a code change, and use a tool-calling agent for work that needs verification mid-run.
Yes. Aider is one of three agents whose long model flag is wired — with Claude Code and Codex — so a model chosen on the card is appended as `--model <model>`. Aider authenticates with your own provider keys, which PortBay neither stores nor proxies.
No. PortBay wires MCP both ways for Claude Code, Codex, Cursor and Gemini only. Aider is dispatched to, not connected back — which for a diff-and-apply agent is the natural shape anyway.

Give your projects and your agents a real local home.
Download for macOSFree & open source · macOS 11+ on Apple Silicon · Pro from $10/mo