Wheelhouse

Run a crew of AI coding agents without living in their terminals.

Wheelhouse is one calm page on your own machine to talk to Firstmate, see what your crew is doing, and review real results.

npm i -g @chrisjowen/wheelhouse
  • Serves only your own computer
  • Firstmate stays in charge
  • v0.2.1, MIT licensed
Wheelhouse, your bridge to Firstmate and the whole crew: a retro illustration of a captain and Firstmate at a ship’s wheel beside a brass-framed screen showing the Firstmate chat, the Harbour and a task’s passage from Queued to Landed
Talk to Firstmate. See the whole crew. Review previews, make decisions, keep work moving.

Take the tour

Under two minutes on the chat, decisions, the Harbour, a project, a task, PR review and plugins. Pick a chapter to jump to it. In Wheelhouse, Help in the header brings the tour back.

Answer a decision in the chat. Under a live preview card, pick between two onboarding designs, add a note, approve, and the card folds to your answer.
Review a pull request in stages. Review PR on a task page opens it in the PR review plugin: a walkthrough, a quality pass, then the key changes stop by stop.

Everything on one bridge

Each page reads what Firstmate and its crew already record, and says so when something is unknown rather than guessing. Screenshots show a demo crew working on made-up projects.

Wheelhouse: the main sections in the menu down the left; On deck beside it with the work under way; and the conversation with Firstmate on the right, with open decisions as cards in the chat

Chat with Firstmate

1 of 20

Talk to Firstmate like a teammate. Chat, answer with buttons, mention tasks with #, run commands with /, or just dictate. On deck, beside it, shows what each of your crew is doing.

The Firstmate chat: a reply that a pull request is ready, with its live preview as a card underneath, showing the app and links to the pull request and a full-size view

Preview cards

2 of 20

When a reply is about a task with a running app, its live preview shows as a card underneath: the page itself, the pull request and its checks, and a full-size view.

Decisions in the Firstmate chat: a review question and a choice between two designs, each a card with Approve, Fix, Skip and Discuss

Decision cards

3 of 20

Every open decision shows as a card in the chat, answered in place. When a question lists options, the card shows them as choices with the recommended one picked.

Decisions: every open question as a card, with Approve, Fix, Skip and Ask me later, and keyboard shortcuts

Decisions

4 of 20

Every open question in one stack, answered in one tap: Approve, Fix, Skip or Ask me later, with keyboard shortcuts.

The ship’s bell: a question waiting and a pull request gone green, each with a one-click answer

The ship’s bell

5 of 20

Rings for green pull requests, questions, stuck workers and landed merges, each with a one-click answer.

Harbour: a card per project, the one that needs you first, each with what waits on you, the work under way and its step, and what landed this week

Harbour

6 of 20

Every project at a glance: a card each, the one that needs you first, what waits on you, the work under way and its step, and what landed this week.

A project page: lumen’s banner with what needs you, a row of tabs for its work, issues, links, secrets and passage, and the tasks waiting on your move

Project pages

7 of 20

Each project has its own page: a banner with what needs you, and tabs for its work, issues, links, secrets, passage and any plugin that adds one.

Fleet radar: every task as a dot moving from Queued through Building, Testing and Pull request to Landed

Radar

8 of 20

Watch the whole fleet flow from Queued through Building, Testing and Pull request to Landed, live.

A task page: the automated checks step by step, with two failing tests and the start of their output

Task pages

9 of 20

Every check, file, pull request and log for a task in one place, step by step, with the failing tests’ output where it matters and a live console for its worker.

A live preview of the app under review, with feedback sent to the worker and Firstmate’s reply beside it

Live preview

10 of 20

Click around the real app under review and send feedback straight to the worker, with Firstmate’s reply beside it.

The conversation between a worker and Firstmate: an instruction the worker has read, and the automated review’s question with Firstmate’s call on it

The conversation

11 of 20

Every question a worker asked and how it was answered, including the automated review’s questions and Firstmate’s call on each.

Stop 1 of the review: a reviewer note pinned above lines 61 to 64, a change request pinned under them, and the chat answering a question about the stop’s ranking query

PR review

12 of 20

With the PR review plugin, Review on any pull request opens a guided review: a walkthrough, a quality pass, then the key changes stop by stop, with the reviewer’s notes pinned above the lines they discuss.

docket open on the acme-platform example: the Browse graph with the Research Assistant agent selected, and its confidence, sources and three pieces of evidence in the Inspector

Docket casebook

13 of 20

With docket’s plugin, a project’s Docket tab is its casebook: browse the team-memory graph, table and history, ask questions, search and sync. Shown here is docket open’s own page; the Docket tab draws the same UI inside Wheelhouse.

The passage editor testing a new Deployed locally step on a landed task: where the task would be, and the local deploy’s output

Passage editor

14 of 20

Add your own steps to a task’s passage, like a local deploy after merge, and test them on a landed task before you keep them.

The Vault page: each secret by name with the projects that may use it, an Add a secret button, and the recent use of the vault by task, command and result

Vault

15 of 20

Give the crew secrets by name with wh-vault. Values stay in the macOS Keychain; the Vault page shows names, grants and use, never a value.

Decided for you: review questions Firstmate answered on your behalf, grouped by day, with each call and its reason

Decided for you

16 of 20

Every call Firstmate made on your behalf, grouped by day, with each call and its reason.

Where time went: each task’s time split into building, review, CI and waiting on you

Where time went

17 of 20

Spot the bottleneck: each task’s time split into building, review, CI and waiting on you.

Headroom: Claude allowance left this session and this week, and each task’s share of recent use

Headroom

18 of 20

Never run out of allowance: Claude headroom left this session and this week, and each task’s share of recent use.

Improvements: a harness review is due, proposals waiting for your call and the size of the harness

Improvements

19 of 20

With the improve plugin, your harness gets better, only with your approval: reviews due, proposals waiting for your call, and the size of the harness.

Wheelhouse in dark mode: the same home page on deep navy

Day or night

20 of 20

A calm logbook look in light, deep navy after dark.

How it works with Firstmate

Firstmate runs the crew: one Claude Code session that takes your requests and hands tasks to workers. Wheelhouse sits beside it as your window and your voice. Close Wheelhouse and the crew keeps working.

You

Chat, answer decisions, review previews and pull requests. From the browser, or from your phone over Discord.

Wheelhouse

A local web app and CLI. It starts Firstmate’s session, or finds the one already running, and shows the whole fleet.

wheelhouse open
http://127.0.0.1:4310

Firstmate

The supervisor session in tmux. Your messages arrive in its inbox like any other note; it decides, dispatches and reports back.

fm-inbox.sh note
fm-fleet-snapshot.sh

The crew

Workers in their own git worktrees build, check and open pull requests, with live previews of the running app.

worktrees, checks, PRs on GitHub

It reads, it never steers

Wheelhouse reads the fleet snapshot, the ledger, transcripts, reports, diffs and check logs. The one thing it writes is your message, through Firstmate’s own inbox. It never stops, reconfigures or bypasses Firstmate.

Yours, and only yours

  • Listens on 127.0.0.1 and refuses requests from anywhere else.
  • Secrets reach the crew by name with wh-vault; values stay in the macOS Keychain.
  • The Discord gateway only connects out and hears only the account you pair.

Plugins add, never control

Plugins fill fixed slots (tabs, cards, pages, a header pill) through a read-only context, with timeouts and error boundaries, so one failing plugin never takes a page down. How Wheelhouse reads Firstmate

Plugins

Install a plugin from its GitHub repository with one command, or with Install plugin under Settings → Plugins. Each one is off until you turn it on, for every project or only the ones you choose.

The walkthrough of a real pull request (chrisjowen/docket#48) in the PR review tab: the stages down the left, the reviewer’s summary in the middle and the review mate’s chat on the right7 screenshots

PR review

Install from GitHub

Review a pull request in stages: a walkthrough, a quality pass, the key changes stop by stop, then a skim pile. A chat sits beside the code at every stage.

A PR review tab on each project. Claude by default, or a local model through Ollama. Nothing is posted or sent until you click.

wheelhouse plugin install chrisjowen/pr-review-wheelhouse
A task’s Live preview tab in Wheelhouse showing a demo field-notes app. The worker reported http://localhost:5188/surveys; the frame loads it through the proxy, and Open in new tab opens http://5188.localhost:47933/surveys3 screenshots

Localhost proxy

Install from GitHub

Opens the crew’s localhost previews and links through Wheelhouse’s own port, so they work when Wheelhouse runs in Docker, a cloud workspace or on another computer.

A host route and an address rewrite: http://localhost:5173/app opens as http://5173.localhost:4310/app. Only Wheelhouse’s port needs forwarding.

wheelhouse plugin install chrisjowen/localhost-proxy-wheelhouse
docket open on the acme-platform example: the Browse graph with the Research Assistant agent selected, and its confidence, sources and three pieces of evidence in the Inspector

Docket

Install from GitHub

A project’s team-memory casebook inside Wheelhouse: Browse (graph, table, history), Ask, Adapters, the inspector, chat, quick search and sync.

A Docket tab, on for every project whose clone has .docket.yaml, plus docket’s MCP app in the chat. The screenshot is docket open’s own page; the tab draws the same UI.

wheelhouse plugin install chrisjowen/docket
Improvements: a harness review is due, proposals waiting for your call and the size of the harness6 screenshots

Improve

Install from GitHub

Governed, evidence-driven improvement of your Claude Code harness. Each suggestion arrives as a decision for you, like any other.

An Improvements page, a Harness tab on the home rail, a header pill when a review is due, and the proposal on each decision.

wheelhouse plugin install chrisjowen/improve
The Insights tab for a demo project: a summary sentence, a 7 / 30 / 90 days switch, figures for commits, pull requests, time to merge and issues, and the open pull requests with their review and checks state5 screenshots

Git insights

Install from GitHub

Who is working on a project, its latest commits, the files that change most, open pull requests and a few figures, from git and GitHub, read again every hour.

An Insights tab on each project, with a 7, 30 or 90 day view.

wheelhouse plugin install chrisjowen/git-insights-wheelhouse
Wheelhouse with the Ship’s weather drill-in open under the header pill reading “Squalls · 5”: a barometer and forecast, the reasons, what’s wrong with links to each task and pull request, and the ship’s log3 screenshots

Ship’s weather

Install from GitHub

The fleet’s health as weather, from Clear to Storm. Click it for a brass barometer, the forecast, why, what’s wrong and the ship’s log.

A pill in the header on every page.

wheelhouse plugin install chrisjowen/ship-weather-wheelhouse
Wheelhouse’s home page with the Log tab open on the rail: three lines saying what landed since the morning, what waits on you and what is under way4 screenshots

Captain’s log

Install from GitHub

A short digest in three plain lines: what landed since you were last here, what waits on you, and what is under way and next.

A Log tab on the home rail and a Captain’s log page with the last seven days.

wheelhouse plugin install chrisjowen/captains-log-wheelhouse
Firstmate’s chat in Wheelhouse: a message reporting a merged pull request ends with a “Nailed It” GIF from Giffy5 screenshots

Giffy

Install from GitHub

A pre-checked catalogue of 492 GIFs in 16 occasions. Firstmate puts one in good news like a merge or a release, and never in bad news.

A GIFs page in the menu and an MCP server for Firstmate. No API key, no live search.

wheelhouse plugin install chrisjowen/giffy-wheelhouse
No screenshot yet

Share previews

Being built

Share a live preview as a password-protected HTTPS link through your own k3s cluster.

Being built now. The repository holds only its README so far.

The Issues tab on the home page’s On deck rail: watched issues across projects, each with its title, project and either Hand to Firstmate or the task that already has it in hand2 screenshots

GitHub issues

Ships with WheelhouseOff until you turn it on

Lists each project’s open issues that match your watch rule, labelled ready-for-pr or assigned to you by default, and hands any of them to Firstmate.

An Issues tab on the home rail and on each project. Can ring the bell for new issues, or hand them over itself.

Nothing to install: turn it on in Settings → Plugins.

The Vault page: each secret by name with the projects that may use it, an Add a secret button, and the recent use of the vault by task, command and result2 screenshots

Vault

Ships with WheelhouseOn by default

What wh-vault holds, by name only: every secret, the projects it is granted to, when it was set and last used.

A Vault page to add, grant and revoke, a Secrets tab on projects and a Secrets used tab on tasks.

Nothing to install: it is on from the start.

Write your own

Plugins are panels and providers: a provider reads on the server through a read-only context, and its output fills one of eight fixed slots.

  • project.taba tab on each project
  • harbour.carda card on a project’s work
  • task.sectiona section on a task page
  • step.evidenceevidence under a passage step
  • bridge.carda card under a chat reply
  • home.carda tab on the home rail
  • header.indicatora pill in the header
  • nav.pagea page in the menu

Get started

Three commands from nothing to your first conversation with the crew.

  1. Clone Firstmate

    Wheelhouse is a window onto a Firstmate home, so you need one first.

    git clone https://github.com/kunchenguid/firstmate.git
  2. Install Wheelhouse

    From npm. Run the same command again to update.

    npm install -g @chrisjowen/wheelhouse
  3. Open it from your Firstmate folder

    Wheelhouse opens in your browser at the local address it prints.

    cd firstmate && wheelhouse open

You need

  • Node.js 22 or newer
  • A Firstmate home
  • tmux and Claude Code on your PATH

Options

wheelhouse open --help lists them, such as a different Firstmate home or port.

Learn more

Releases

Published to npm as @chrisjowen/wheelhouse. A clone shows an arrow in its header when GitHub has a newer version, and upgrades on a click.

0.2.1

  • Review on a pull request opens it in a plugin’s review tab
  • The built-in PR review gives way to the PR review plugin
Release notes

0.2.0

  • Live previews and decisions as cards in the chat
  • Harbour with a page per project
  • Discord gateway, the vault, plugins installed from GitHub, MCP apps
Release notes

0.1.1

  • A README led by getting started and a scannable feature list
Release notes

0.1.0

  • First release on npm: the Harbour, the Firstmate chat, task pages with live consoles and previews
  • Passages, Decided for you, Where time went and Headroom
Release notes