macOS desk · iPhone companion

A fleet of coding agents on your Mac. The helm in your pocket.

Armada runs Claude Code, Codex, OpenCode and plain shells side by side. When one needs a decision, it lands on your iPhone: allow the command, answer the question, review the diff.

Uses the agents you already have installed and logged in. No API keys, no new account.

shiploot wants to run a migration. Tap Allow once on the phone, or pick an option on the desk. The first answer wins. Interactive demo · sample data
9:41
Inbox 2 need you
Inbox2 Fleet Settings
CCClaude CodeFull phone control

Approvals, questions, live chat, and a diff review when it stops.

CXCodexFull phone control

Approvals, input requests, chat, model list and turn review.

OCOpenCodeStatus + terminal

Armada spots when it's waiting on you and pings the phone.

$_TerminalStatus + terminal

Dev servers, test runs, anything. Reach it from the Term tab.

The 60-second tour

Watch a fleet run while you're out.

Start four agents at the desk, walk away, and keep them moving from the phone.

0:00Launch the fleetThree projects, four agents, one window.
0:15Leave the deskA command needs approval. The phone buzzes.
0:30Answer from the lock screenAllow it. The terminal on the Mac moves on.
0:45Review the diffRead the change, comment on a hunk, accept.
On the Mac

Every terminal you have open, in one calm window.

Armada launches the tools from your own login shell, so your installs, logins and configs work as they already do. Sessions keep running when you switch projects or update the app.

Sessions that outlive the app

A background core owns every terminal. Quit, update or relaunch Armada and your agents are still mid-task when it comes back.

Find anything, fast

Jump between sessions and projects from the keyboard.

⌘K⌘N⌘1–9⌘,

Fleet view

Every agent across every project, sorted by what needs you: Needs you, Working, Ready for review, Idle.

A worktree per terminal

Start a new agent on its own git worktree so two of them never trip over the same files.

Your config stays yours

Armada hooks into Claude Code through its own settings file. Your global setup is never touched.

Review when they stop

When a turn ends, Armada collects the diff, new files included, and opens a review card on the desk and the phone.

Themes · 12 built in

Make the desk yours. Then let it snow.

Pick a theme in Settings and the whole window follows, from the project rail to every terminal. Flip on snow and flakes drift down over your sessions while the agents work.

Click any theme, or flip snow on. Live demo
ArmadaSettings · Appearance

Appearance

Theme
Effects

Eight of the twelve. Tap one to preview it above; the other four are waiting in Settings.

Snow, on a few favorites

One switch in Settings. Here it is falling on Frost, Deep Space and Midnight.

Frostsnow on
Deep Spacesnow on
Midnightsnow on
Armada for iPhone

Step away from the desk. The fleet keeps moving.

A native SwiftUI app with an Inbox of decisions, the whole fleet at a glance, full chat and a real terminal for every session. Now in TestFlight.

Sunday, November 8
9:41
Armadanow

shiploot · Claude Code
Wants to run npm run migrate

DenyAllow once
Fleet4 agents

1 needs you · 2 working · 1 ready

Answer from the lock screenActionable alerts and a Live Activity for the whole fleet. Alert text is encrypted until it reaches your phone.
9:41
Fleet
4 agents across 3 projects
shiplootClaude Code · npm run migrate
Needs you
armadaCodex · relay backoff
4m
herobookClaude Code · cover export
Review
renderOpenCode
Idle
shiplootTerminal · npm run dev
Idle
InboxFleetSettings
The whole fleet at a glanceSwipe to interrupt an agent. Tap + to start a new one on its own worktree.
9:41
armada · Codexauto
ChatTerm
make the relay reconnect back off after a 1006
Read relay.cjs, relay.test.cjs
Edited electron/relay.cjs (+24 −3)
Added exponential backoff with jitter, capped at 30 s, and reset it once a frame gets through. Running the relay tests now.
Ran npm test -- relay · 14 passed
Message · / commands · @ files↑
Chat or a real terminalFollow any session as a conversation, or flip to Term with a key bar for Esc, Tab and arrows.
9:41
Review herobook
3 files · +41 −2
src/export/cover.tsL12–18
const size = opts.size
- const dpi = 150
+ const dpi = opts.print ? 300 : 150
+ const bleed = opts.print ? 3 : 0
return render(size, {
+ dpi, bleed,
test/cover.test.tsnew
+ it('adds 3mm bleed for print', …
CommentAccept
Review the diff before you're backRead every change when a turn finishes. Comment on a hunk and the agent picks it up.
How it connects

Your machine does the work. The phone just holds the helm.

Agents never leave your machine. The phone talks to it directly on your network, and through an encrypted relay when you're away.

Pair in ten seconds

Scan the code in Settings → iPhone, then confirm on the Mac. Each pairing code works once and expires in two minutes.

First answer wins

Answer on the phone or at the keyboard. Whichever comes first resolves the prompt and closes it everywhere else.

The relay can't read it

Away from home, every frame is sealed with a key that only your Mac and phone share. The relay just passes it along.

Revoke any time

Every paired phone is listed in Settings. Remove one and its access ends immediately.

Where the fleet lives

Your Mac, a Mac mini on the shelf, or a VPS you own.

Your MacDefault

Run it where you already code. The phone reaches it on your Wi-Fi at home and through the relay when you're out.

A Mac miniAlways on

Leave the fleet on a machine that never sleeps. Close the laptop, get on a plane, and the agents keep going.

Your own VPSSelf-hosted

Run it on a server you control. Your code stays on your box, and the phone pairs with it by QR code like any other machine.

Questions

Before you install.

Do I need API keys or a new account?

No. Armada starts the Claude Code, Codex and OpenCode installs you already have, with the logins and subscriptions you already use.

Does my code go to a server?

Not ours. Agents run on a machine you own: your Mac, a Mac mini or your own VPS. The phone connects to it directly, and when you're away the relay only forwards encrypted frames it can't open.

What happens if I answer on both?

The first answer wins. Answer at the keyboard and the card on your phone closes by itself.

Does it change my Claude Code settings?

No. Terminals that Armada starts get their own settings file for the hooks. Your own config is left alone.

What if I close the app or update it?

Your sessions keep running. A background process owns the terminals, so the app can quit and come back without interrupting an agent.

Can I run it on a Mac mini or a VPS?

Yes. Put Armada on any always-on machine you own and pair your phone with it the same way. Close your laptop and the fleet keeps working.

Which agents get full phone control?

Claude Code and Codex: approvals, questions, chat and diff review. OpenCode and plain terminals get status and the Term view.

Armada for macOS and iPhone

Put the fleet to work.

Start your agents at the desk and keep them moving from wherever you are.