zachsibert.com

v0.7.1 a terminal board for coding agents

firstmate-tui

One live board over everything your coding agents are doing, and every pull request waiting on you.

install the latest release
$ curl -fsSL https://raw.githubusercontent.com/zachsibert/firstmate-tui/main/bin/install.sh | bash

It fetches the release tarball, checks the checksum, and writes the command. It never touches your shell profile.

01

Six panes. One screen.

Each pane answers one question, and each has a number key. Press it to show or hide the pane. Every row is one scannable line, and a hold you set appears in exactly one place.

  1. Captain's Call

    What needs your own hand right now: the live holds you set, decisions an agent asked for, blocked agents, and pull requests that are yours to review. Nothing lands here unless it needs you.

  2. Underway

    One row per live agent, from every home, with what it is doing and whether its terminal pane is still alive. Finished work never lingers here.

  3. My PRs

    Every open pull request you authored, plus the ones recorded on unfinished tasks, with checks judged from the newest run of each check so a superseded failure does not count.

  4. Teammates' PRs

    The open pull requests where you are a requested reviewer and not the author, filtered by the label rules you set per repository.

  5. Charted Next

    Queued and gated work with the reason it waits: behind another task, deferred to a date, or held from outside. Warnings come first and are never counted.

  6. Recently Landed

    What shipped and what was written: merged pull requests, done tasks, the holds you answered, and every report an agent left behind, newest first.

02

Hands stay on the keyboard.

The board is read-only, with three exceptions: accept a hold, discard it, or defer it. Each one asks for your words or your confirmation first, then runs the supervisor's own command. The board never merges anything. That part is still yours.

  • a

    Accept

    The grid gives way to the hold's card so the full reason is in view. Pick an option by its letter, or type a line of your own. Enter records it and the row leaves the board.

  • d

    Discard

    One y to confirm. The task closes as not wanted, the cursor moves to the next row, and a refresh follows so the supervisor's state catches up.

  • D

    Defer

    Type a date, prefilled with today plus two weeks. The row leaves Captain's Call at once and comes back in Charted Next marked dated.

  • f

    Search

    Every pane at once, the way quick open works in an editor. A few letters in any order, best match first. Enter jumps to the row in its pane.

  • .

    Settings

    The running version and where it lives, the latest release, an upgrade in place, a list of betas by commit, and a way back to stable. Only y runs anything.

  • ?

    Help

    Every key on one overlay. The bottom line of the board keeps the short list in view the whole time.

jkmove tabnext pane enteropen, focus, or view 1to6show or hide a pane xhide a row rrefresh now qquit

03

A board over a fleet.

firstmate is a supervisor that runs coding agents from a checkout on your machine and keeps its state on disk. herdr is the terminal multiplexer those agents run in. firstmate-tui sits over both and puts what they know on one screen that refreshes itself.

readsthe state on disk

  • The main home, and every delegate home it lists.
  • Holds, decisions, queued work, reports.
  • Nothing is written back except through the supervisor's own command.

askstwo outside sources

  • GitHub, for your pull requests and their checks.
  • herdr, for which agent panes are still alive.
  • Both without holding up the rest of the board.

nevergets ahead of you

  • Never edits a supervisor file itself.
  • Never answers a question with words of its own.
  • Never merges anything.
Refresh in two beats
The fleet snapshot lands and four panes repaint at once. The GitHub fetch starts on its own and the two pull request panes repaint when it returns. A slow GitHub never delays the fleet.
Second launch is instant
The board draws what it showed last time, each pane marked cached until live data lands, and puts the cursor back on the row you were on.
Ships as a release
Every merge is a GitHub Release with a checksum. Upgrade from the Settings page. Betas are published from any branch and named by commit, so you can try one exact change.
Fits a narrow terminal
Wide columns drop first. Below 80 columns the six panes become one scrolling list with section headers.
04

The real thing.

The firstmate-tui board filling a dark terminal. A title line names the tool, the fleet directory and the number of homes, with the next refresh countdown at the right. Six bordered panes stack below it, each titled with its number key and a row count. The focused pane has an amber border and its first row is highlighted white. The bottom line lists the keys.
A board from the 0.6 series, before the panes took their current names. Same shape: six panes top to bottom, the focused one in amber, the selected row in white, the keys along the bottom.

Zach Sibert

software engineer

I run a small fleet of coding agents and got tired of scrolling back through chat to find out where things stand. firstmate-tui is the board I wanted: one screen, six questions answered, and nothing done on my behalf without my say.

github.com/zachsibert