Skip to content
v0.2.51Open source, MIT. See what shipped

Runafleetofcodingagents. See every move.

Armada gives each ticket to one agent, puts a coordinator in charge of every project, and shows the whole fleet live, from the first question to the green merge.

GitHub

Node 22 or later. Workers run on Conductor Cloud or in Claude Code; the tracker is Linear, the code GitHub. Click the sky to launch a squadron.

One method
  1. Grill the decisions.

    Every open question is asked and answered before a line of code is written.

  2. Write the spec.

    The answers become one spec: the goal, the decisions, what stays out.

  3. Cut it into tickets.

    Linear holds them, each small enough for one agent, with what blocks what. Armada ranks the ready ones by what they unlock.

  4. Ship each one green.

    One worker claims each ticket, reports every phase and hands back its pull request only when every required check is green on its head.

  5. The coordinator merges.

    It checks the hand-back, the head and the checks, squash-merges pinned to that commit and moves the ticket to Done. Workers never merge.

grill · magic link sign-inlinear · WID-1 · speclinear · WID-1 · 4 ticketsgithub · pull #41coordinator · widgets
The fleet, live

Every agent, every phase, one screen.

Every session in flight on one board: a lane for the coordinator that runs it, a column for each step. The coordinators answer their workers and merge their pull requests; what only you can decide is marked To validate, and its lane comes first. Below, every session's day on one timeline.

  1. 01The coordinator answers a question; the worker is back at work
  2. 02A green pull request is handed back to the coordinator
  3. 03Its merge needs you: the session is To validate

The dashboard's own components, playing the demo world (bun run demo:seed) fifteen times faster.

Coordinators and workers

One coordinator per project. As many workers as you need.

The coordinator briefs and launches workers, carries your answers and merges. Each worker holds one ticket, reports every phase, asks when it is unsure and hands back a green pull request.

Coordinator
brief · watch · answer · merge
Worker
claim · report · ask · release
You
answer, approve, launch and ask to merge from the dashboard
  • brief, answer
  • question
  • green hand-back, merged
coordinator · widgets
❯ armada status
Widgets · WID-1 Widgets roadmap
Read 2026-10-01 13:42 UTC · Linear WID-1 · GitHub acme/widgets
 
In flight (5)
WID-18 ready-to-merge Claude Code · Worker B · reported 6 min ago
Add a dark theme to the settings page [Spec 1]
“Handed back: CI green on the final head”
PR #44 · CI success · mergeable
WID-14 shipping · ci Conductor · Worker C · reported 4 min ago
Show the invoice total on the order page [Spec 1]
“Fixing the rounding test that fails in CI”
PR #41 · CI failure · mergeable
! ci-failing
WID-12 implementing Claude Code · Worker D · reported 3 min ago
Let users export a report as CSV [Spec 1]
“Streaming rows instead of building the file in memory”
WID-17 implementing Codex · Worker E · reported 42 min ago
Retry failed webhook deliveries [Spec 1]
“Backoff schedule written, wiring the queue”
! silent
WID-15 blocked Conductor · Worker A · reported 12 min ago
Sign in with a magic link [Spec 1]
“Asked how long a sign-in link stays valid”
 
Ready to start (3)
WID-20 Let users change their email address (Spec 1)
WID-21 Rate-limit the public API (Spec 1)
WID-22 Fix: refunds round the total the wrong way (Spec 1)
 
Unblocked but not marked ready (1)
WID-23 Archive invoices older than a year
 
Pull requests waiting (2)
#41 WID-14 shipping · ci · CI failure · mergeable
Show the invoice total on the order page
! failing: Lint, typecheck and test, Build
#44 WID-18 ready-to-merge · CI success · mergeable
Add a dark theme to the settings page
❯ armada watch
Inbox of widgets (3), oldest first:
silent · WID-17 · from ws-90aa/ses-33 · 2026-10-01T13:00:00.000Z
no report for 42 min (phase implementing, Codex ws-90aa/ses-33); check it with the runtime guide's status section
#12 question · WID-15 · from Worker A · 2026-10-01T13:30:00.000Z
How long should a sign-in link stay valid?
Shorter is safer; longer survives a slow mail server.
 
Options:
1. 15 minutes (recommended)
2. 30 minutes
* #13 hand-back · WID-18 · from Worker B · 2026-10-01T13:36:00.000Z
PR #44 is ready: head a3f9c2e, CI green.
shipping path unreported
For herdr, armada answer delivers automatically. Deliver each other answer in the worker's session with the runtime guide, then record it: armada answer <id> "<answer>".
New items are marked *.
5 workers in flight (WID-15, WID-18, WID-14, WID-12, WID-17) — act on the items above, then keep watching: armada watch
The CLI

28 commands. Every agent speaks them.

Workers write to Linear only through Armada, so every claim, report and question lands in the same format. When a command cannot go on, it prints the reason and the next command to run.

Coordinator
  • ask-owner: Escalate a question to the owner, with its choices
  • done: Close a design ticket the owner approved
  • inbox: Questions, plans, requests, hand-backs, silent workers
  • watch: Wait in the background until something needs you
  • stop: Stop a local worker after its work is pushed
  • answer: Deliver local worker answers and record decisions
  • merge: Check a hand-back and squash-merge it, pinned to its SHA
  • launch: Launch a local worker or revoke an unclaimed launch
  • brief: A worker's launch prompt, with a one-time token
  • hook: Claude Code's Stop hook: keep watching while workers fly
Worker
  • attach: Attach screenshots and links for the owner to check
  • heartbeat: Keep a worker's session alive in the background
  • claim: Take a ticket: In Progress, phase planning
  • report: Report a phase; the same phase again is a heartbeat
  • release: Give the ticket back
  • ask: Ask the coordinator, then wait for the answer
  • run: Run a command with those secrets in its environment
Both
  • status: Tickets in flight, ready to start, pull requests waiting
  • validate: Show the owner a design or a change, then wait
  • secrets: The project's secrets for workers, never shown
  • login: Sign this terminal in to Armada
  • whoami: Who this terminal is signed in as
  • logout: Sign this terminal out
You, once
  • setup: Set up local harnesses, choose permissions and answer their first-run questions
  • doctor: What the repository lacks, with the fix for each
  • init: One pull request that sets the repository up
  • skills: Update the bundled skills on the current branch
  • auth: Keys on this machine, for an Armada without accounts

Your keys stay in Armada. Not on laptops, not in prompts.

Enter the Linear key once. Terminals sign in, workers get a one-time token, and Armada hands each command only the keys it needs.

1 hour

A launch token covers one ticket, works once and expires after an hour. Only the prompt handed to the worker carries it; everywhere else it shows masked.

1 ticket

A worker session acts on its own ticket only: claim, report, ask and release, with the keys they need. It ends on release, on merge, or when you revoke it.

AES-256-GCM

Each key is sealed with its own data key. No page or log ever shows it again, and every handout is in the audit list.

Launch your fleet.

Three commands set a repository up: init opens one pull request that adds what it lacks.

  1. 01
  2. 02
  3. 03