Paseo plugin: talk to one first mate agent that runs a crew of Paseo agents in their own worktrees, with a live board of the crew
From the plugin's README
+yolo on that project), and a worker's worktree is only
cleaned up after its work has landed.no-mistakes pipeline (reviewed-PR stands in for the last).npmjs · Paseo 0.9+
paseo plugin add npm:@gpambrozio/paseo-firstmate@0.1.1GitHub · Paseo 0.8 fallback
paseo plugin add gpambrozio/paseo-plugins --ref 572a27b127fb37808600172a6ed761c01b3f15fc --path firstmateGit security status and fallback installation are pinned to commit 572a27b127fb.
From the plugin's README
paseo plugin install npm:@gpambrozio/paseo-firstmate
To hack on it, clone the repository and run paseo plugin install "$PWD" from this folder after
npm install and npm run typecheck. Everything the plugin writes into the first mate's home — its
charter, the records it starts with, the home's icon — is in templates/, as the files it becomes;
paseo plugin reload firstmate puts a change to work.
README
A Paseo plugin: talk to one agent, ship with a crew.
You talk to a single agent — the first mate — and it runs the crew for you. Every task goes to a worker: its own Paseo agent, in its own git worktree, so parallel work on one repository never collides. The first mate writes each worker's instructions, supervises it to the end, and brings you finished pull requests, investigation findings, and only the decisions that are really yours. You are the captain.
A FirstMate panel in the sidebar puts the conversation with the first mate beside a board of its crew — Queued, Working, Blocked, Parked, Done, Failed and Idle — with each worker's last word on what it is doing and a link to its pull request.
This is a Paseo-native take on firstmate by Kun Chen, by way of ABorakati/paseo-firstmate. Where those run the crew in terminal sessions and supervise it with shell scripts, this one uses nothing but Paseo: the workers are ordinary Paseo agents you can open, read and type into like any other, in worktrees Paseo manages, and Paseo itself tells the first mate when a worker finishes, fails or asks for permission. There is nothing else to install.
paseo command on the daemon machine, which a Paseo install puts there. It is used to find the
plugin's own files, to interrupt a worker from the board, and to name the first mate's project in
Paseo's sidebar.paseo plugin install npm:@gpambrozio/paseo-firstmate
To hack on it, clone the repository and run paseo plugin install "$PWD" from this folder after
npm install and npm run typecheck. Everything the plugin writes into the first mate's home — its
charter, the records it starts with, the home's icon — is in templates/, as the files it becomes;
paseo plugin reload firstmate puts a change to work.
Open FirstMate in the sidebar, pick the first mate's model, and press Launch the first mate. If you already started an agent for the job, adopt it from the list below the button instead.
Tell it about a project: "the web app is at ~/code/web — ship through pull requests". It keeps a registry, so you only say this once.
Ask for work: "fix the flaky login test and add dark mode". Two workers appear on the board, each in its own worktree. Minutes later:
PR ready for review, captain: https://github.com/you/web/pull/42 (fix the flaky login test - risk: low - CI green)
"Merge it." The first mate never merges without your word, unless you have told it a project may.
/compact does in Paseo. Restart
starts a new first mate from scratch, with the same model and settings, after asking you. Both wait
until the first mate is between turns. On a restart its records carry over, the old conversation stays in
Paseo's history, and workers already running keep going — the new first mate checks on them
regularly, since Paseo tells only the agent that started a worker when it finishes./fm <message> in any composer sends the message to the first mate, from wherever you are./bearings — where everything stands, in four sections: what needs your call, what landed,
what is under way, and what is next. /bearings file also writes it to a dated report in the first
mate's home; /bearings include PRs checks the live pull requests too./ahoy — what happened since you last spoke, then every open decision, one at a time, with a
recommendation.Each card is a worker, a backlog item, or both. Press one for its actions:
A column with nobody in it is hidden, so the board shows only what has workers in it. On a wide screen up to three columns sit side by side; past three they take two rows, with the extra one in the second row. Columns fold to a strip and move with the arrows in their headers, and the split between chat and board drags. The layout is remembered, including where a hidden column goes when it fills again.
Opening the panel counts as looking at the first mate: when it has finished a turn, its workspace in Paseo's sidebar turns to done, as it would if you had opened the first mate itself. One waiting on your permission stays flagged until you answer.
A worker's workspace and session also get a FirstMate tab showing its card, with a box for telling the first mate something about it.
The Files view — next to the crew board, or its own tab on a phone — shows everything in the home and opens any text file for editing, with a preview for Markdown. Cmd/Ctrl+S saves on a desktop. The first mate writes these files too, so a save never silently replaces its newer version: you are told it changed, and choose to load theirs or overwrite it with yours.
The first mate lives in a directory of its own — by default inside Paseo's plugin data, or anywhere you choose in the settings. It writes there and nowhere else; your projects are read-only to it, and every change is a worker's job.
In Paseo's sidebar the first mate's project and workspace are called FirstMate rather than after
the folder, and the project shows FirstMate's ship, from icon.svg in the home — Paseo picks up a
project's icon from its folder. Rename either, replace the file, or upload an icon in the project's
settings, and your choice is kept.
AGENTS.md — its charter: how it takes requests, briefs and supervises workers, and talks to you.
Written from data/charter.md every time the plugin starts or the first mate is launched, so do not
edit it here.data/charter.md — the charter itself, yours to change. It starts as FirstMate's own charter, and
while you leave it alone, a new version of the plugin brings its improvements. Once you edit it, your
version is kept; if FirstMate's charter changes after that, the board tells you, Compare opens the
new one beside yours (data/charter.new.md) and Done marks yours up to date. Saving it in the panel
rewrites AGENTS.md at once; the first mate reads it at its next session, or when you ask it to re-read
its charter. The note at the top lists the {{placeholders}} filled in for you, notes between <!--
and --> are left out, and an empty file goes back to FirstMate's charter.data/captain.md — your standing orders. Anything you write here outranks the charter (except
its hard rules: it never writes to a project, never merges without your word, never throws away
unlanded work). Never overwritten.data/opening.md — the first thing a new first mate is told, when you launch it and when you
restart it. Change the words, the language, or what it should do before anything else; keep asking
it to read AGENTS.md and take the helm, which is what makes it a first mate. Notes between <!--
and --> are left out, a restart adds a note of its own after yours about the first mate before, and
an empty file means FirstMate's own wording. Never overwritten.data/projects.md — the project registry, and how each one ships:
direct-PR — the worker opens a pull request ready for review;reviewed-PR — the worker also reviews its own diff, runs the full test suite and waits for CI;local-only — no remote; the worker leaves a clean branch, and the first mate lands it when you say.+yolo after the mode lets the first mate merge green work on that project without asking.data/backlog.md — every task, in flight, queued and done. The board reads it.data/<task>/brief.md, data/<task>/report.md — each worker's instructions, and an investigation's
findings.Because all of it is on disk, a restart is a non-event: the first mate reads its records, checks them against the live crew, and carries on.
Settings › Plugins › FirstMate — or the gear in the panel's header, or FirstMate settings in ⌘K.
+yolo on that project), and a worker's worktree is only
cleaned up after its work has landed.no-mistakes pipeline (reviewed-PR stands in for the last).MIT — see LICENSE.
Scanned 25 Sep 2026, 05:34 UTC from gpambrozio/paseo-plugins/firstmate.