mrkeyoor.com_
Sun 13 Sept 16:44 UTC
Automationevaluationupdated 13 Sept 2026

firstmate review

firstmate is a directory of instructions and shell tools that turns one terminal coding agent into a supervisor for several coding agents. It gives each worker a separate Git worktree, watches their progress, and brings one human the resulting pull requests, local merges, or research reports.

trackingstars / 7d
Verdict

Our Firstmate run installed 35 packages in 16 seconds and built in 4 seconds, but pytest collected 0 tests and exited 5, so that clean setup result does not validate the crew workflow. Use it if you already trust terminal coding agents and want one of them to supervise isolated workers under explicit merge rules. Skip it if credential isolation, Windows support, or predictable behavior across every supported harness is a release requirement.

We ran it

Lab card: what happened when we ran firstmateScreenshot of firstmate (github.com/kunchenguid/firstmate)
Install✓ · 16s35 packages · 37 MB
Build✓ · 4s
Tests✗ · 5s0 passed · 0 failed of 0 (pytest)
Known vulns0(pip-audit)
Repo552 files~281,006 lines of source · 18.1 MB · 3 CI workflows · tests dir

Answers from our run

Does firstmate build from source?

Dependencies installed in 16 seconds (35 packages), and the build succeeded in 4 seconds. We cloned commit ecfe071 into a clean Debian container with 3 CPUs and no project-specific setup.

Do firstmate's tests pass?

Yes: 0 of 0 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does firstmate have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use firstmate?

Windows users: the README lists macOS and Linux, and the helper and test surfaces are mainly Bash.

What are the alternatives to firstmate?

Claude Squad, Gas Town. Our Firstmate run installed 35 packages in 16 seconds and built in 4 seconds, but pytest collected 0 tests and exited 5, so that clean setup result does not validate the crew workflow.

Setup2/5Clone is easy; the working toolchain and agent logins are substantial
Docs4/5Detailed backend and safety contracts, with a steep reading load
Community3/55,630 stars and same-day work, alongside 1,321 open items
Maturity2/5No GitHub release and open delivery and update defects

Who it’s for

Developers already paying for and using Claude Code, Codex, Grok, Pi, OpenCode, or Cursor Agent CLI.
Maintainers who regularly split one repository task across several independent worktrees.
Terminal-first teams willing to inspect worker panes and keep merge approval rules explicit.
Operators who want persistent local or SSH-reachable supervisor homes with state stored on disk.

Who it’s NOT for

Windows users: the README lists macOS and Linux, and the helper and test surfaces are mainly Bash.
Developers expecting an ordinary app or package: the README says the cloned repository itself is the distro and requires several companion command-line tools.
Teams that require process-level credential isolation: the configuration guide says the launch filter is not a sandbox, and the default Claude worker mode uses --dangerously-skip-permissions.
OpenCode operators who need unattended message delivery today: open issue 4360 says an idle worker can be misclassified so its queued doorbell never reaches the agent.
Teams with a fixed branch naming policy: open issue 1887 says task briefs and other paths still assume the fm/<task-id> form.

Setup reality

Our sandbox installed 35 packages in 16 seconds and used 37 MB, then completed its build step in 4 seconds. Pytest exited 5 after 5 seconds because it collected no tests: 0 passed and 0 failed of 0. Pip-audit found 0 known vulnerabilities.

A useful Firstmate home also needs an authenticated coding-agent harness, Git, authenticated GitHub CLI, Node, no-mistakes, several axi tools, and the chosen terminal backend. Most backends also need treehouse. Provider logins, Git credentials, and SSH access for remote secondmates remain the operator's responsibility.

The README supports macOS and Linux, with tmux as the default backend. Herdr is supported, while Zellij, Orca, and cmux are marked experimental. Our 18.1 MB checkout had 3 CI workflows, no Dockerfile, and a tests directory. The project has no GitHub release, so revision pinning starts with a commit.

One agent supervises workers across 5 terminal backends

The 18.1 MB checkout puts one coding agent between you and a group of worker agents. The supervisor turns a request into ship or scout tasks, starts each worker in a separate Git worktree, watches durable status files, and returns a pull request, approved local merge, or research report. The current backend list covers tmux, Herdr, Zellij, Orca, and cmux. You can watch or type into each worker's terminal, which is useful when autonomy needs inspection rather than a hidden job queue.

Our measured checkout had 552 files, about 281,006 lines of source, and occupied 18.1 MB. Much of the product is policy and coordination: AGENTS.md defines the supervisor, shell scripts manage sessions and worktrees, and local directories hold fleet state. There is no application binary to install. Starting a supported agent inside the cloned repository activates the instructions, so prompt interpretation and the selected harness are part of the runtime.

Eight primary harness choices do not behave identically

Our 552-file checkout documents 8 primary choices when pi-signed is counted separately: Claude Code, Grok, Pi, its signed wrapper, Oh My Pi, Codex, OpenCode, and Cursor Agent CLI. Claude, Grok, and Pi are the co-primary recommendations. Their supervision mechanisms differ. Claude uses a Stop hook, Grok uses background notifications, Pi loads tracked extensions, and Codex uses bounded foreground checkpoints. Cursor must run interactively because its headless mode lacks the documented turn-end hook.

That adapter work is where failures become hard to diagnose. Open issue 4360 reports that an idle OpenCode worker with an empty-looking composer can be classified as holding pending operator text. Firstmate then leaves the message in its inbox and keeps skipping the doorbell. A supervisor that cannot reliably wake a finished worker may leave completed work unseen. Anyone standardizing on one harness should test send, stop, restart, and recovery paths for that exact adapter before dispatching real changes.

What happened when we ran it

Our sandbox installed 35 Python packages in 16 seconds, adding 37 MB on disk. The build step completed in 4 seconds. The run used commit ecfe071 in a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, and no secrets. Pip-audit reported 0 known vulnerabilities in the installed packages. Those numbers describe the lab's detected Python environment, while the project itself is mainly shell scripts and instruction files.

The test command failed with exit code 5 after 5 seconds. Pytest collected no tests and printed no tests ran in 0.03s, leaving 0 passed and 0 failed of 0. The checkout did contain a tests directory, so the result means our generic pytest step did not discover its shell-heavy suite. It does not say Firstmate's own test runner failed, and it gives us no passing product test result for this commit.

A 37 MB lab install leaves most of the toolchain outside the count

Our 37 MB lab result covers the detected Python environment, while the README's visible quick start starts elsewhere: authenticate gh, clone the repository, enter the directory, and launch an agent. The configuration guide lists a larger operating environment. Every home needs Node, Git, authenticated GitHub CLI, no-mistakes 1.46.0 or newer, and several axi utilities. The backend adds tmux, Herdr, Zellij, Orca, or cmux; most choices also use treehouse for worktrees.

Our 35-package result therefore should not be read as the total Firstmate setup. Coding-agent subscriptions or provider credentials must already work in the destination terminal. Git pushes need usable SSH or HTTPS authentication, and remote secondmates need an SSH-reachable host. The worker environment allowlist can narrow inherited variable names. The documentation explicitly says it cannot stop same-user processes from reading credential files, which rules out treating worker panes as a security boundary.

Three project modes control landing, while worker authority still matters

Inside the 18.1 MB checkout, each project chooses among 3 delivery modes: no-mistakes, direct-PR, or local-only. An optional +yolo flag changes merge autonomy. The supervisor stays read-only over project code outside named guarded operations; workers make changes in isolated worktrees and follow the configured landing authority. This structure reduces branch collisions and keeps the human's merge decision visible. It does not determine whether a generated change is correct or whether a worker should have had access to the repository.

Claude users should read the permission section before the first 281,006-line fleet run. With no local override, Firstmate launches Claude workers using --dangerously-skip-permissions; setting the mode to auto chooses Claude's permission classifier instead. Invalid values refuse the spawn. That is refreshingly explicit documentation, but the default is a serious choice. Combine narrow repository credentials, protected branches, review gates, and a deliberately selected permission mode before allowing several workers to operate at once.

A September 13 push comes with 1,321 open issues and pull requests

GitHub recorded 5,630 stars and a push on September 13, 2026. Search results showed 447 open issues and 874 open pull requests, matching the repository's 1,321 combined open-item count. The same-day updates prove active work, but the queue is extraordinary for a repository created in June 2026. GitHub's latest-release endpoint returned no release. Pin a reviewed commit instead of treating the default branch as a stable distribution channel.

Two open reports touch the supervision contract directly. Issue 4354 says self-update changes trusted script bytes and can leave already armed process watches rejecting their actions. Issue 4360 describes OpenCode wake delivery that never reaches an idle worker. Firstmate is unusually candid about these boundaries, and its docs are deeper than its clone command suggests. The 0-test pytest result still leaves buyers responsible for running the project's shell test path and rehearsing recovery on the exact harness and backend they plan to use.

Alternatives

ProjectWhat it isPick it when
Claude Squad gh↗A terminal interface for managing several AI coding agents in separate workspaces.pick this instead when you want to drive parallel agents yourself through a focused terminal UI rather than appoint an agent supervisor.
Gas Town gh↗A multi-agent workspace manager for coordinating larger coding fleets.pick this instead when a larger workspace-management system fits better than Firstmate's single liaison and shell-based home.

What people are saying

  1. [github-trending] kunchenguid/firstmate

Sources

  1. Firstmate repository and README
  2. Firstmate architecture
  3. Firstmate configuration guide
  4. Firstmate contribution requirements
  5. OpenCode doorbell delivery issue 4360
  6. Self-update watch binding issue 4354
  7. Branch naming issue 1887
  8. Firstmate releases

More automation reviews

background-agents · gawkbot · wechaty · celery · dagu · helm · the whole board →