Every agent, one deck.

Flight Deck app icon Flight Deck.app

Flight Deck is a Mac-native terminal for orchestrating lots of agents.
Run a fleet across every project you're building. See at a glance
what's running, and what's blocked.

Apple silicon · macOS 14 Sonoma or later · Works with Claude Code, Codex, Grok, Gemini and OpenCode

Interactive demo

Open a project and start a session.

What you get

Built for the whole fleet

Flight Deck keeps track of every agent you run: which ones need you, what each one is working on, and where it stopped.

  1. Plan with a fleet

    Introducing Flight Control

    Flight Control is where new work starts. Describe what you want in a sentence. It asks a few questions, then agents from several model families write the plan and check each other's work. When you approve it, the plan becomes tasks in your project, ready for agents to pick up.

    Get a plan that several model families have checked before any code is written. Annotate it as it changes, and steer from your phone.

  2. Every agent, one window

    Claude Code, Codex, Grok, Gemini and OpenCode side by side in real terminals, sorted by project in one sidebar.

  3. Know who needs you

    See at a glance which agents are working, which are idle and which are waiting on you, even inside collapsed projects.

  4. The fleet in your pocket

    Read and answer your agents from your iPhone: questions, permission prompts, menus and sign-ins. Step away without leaving them stuck.

  5. Agents that talk to each other

    Agents pass work and questions to each other directly, and any agent can drive the fleet with the flightdeck command. You still approve messages between tabs with different permissions.

  6. Sessions that outlive the app

    Quit or crash the app and your agents keep working. Idle ones sleep to save battery, and interrupted work picks back up.

  7. Run it on another machine

    Send builds and tests to another Mac or Linux box with run --on. Your uncommitted work goes along, and the changes come back as a diff.

  8. Cloud machines on demand

    Get a machine in your own AWS or GCP account only when a run needs one. You see its cost on every command, and it is destroyed when its budget or time runs out.

  9. Accounts, pools and usage

    Pool several logins per agent so you stay under your limits. New tabs use a login with room left, and meters show when each limit resets.

  10. Swarms on the task list

    Send each task to the model that suits it, using rules in plain English. A swarm works through the list, and you can pause it from your phone.

  11. Search every conversation

    ⌘K finds any conversation from any of the five agents, live or old, and opens it in a tab.

  12. One code index for every agent

    Every agent on your Mac looks code up in one shared index instead of reading whole files, so answers arrive in fewer tokens and fewer turns. New worktrees are searchable at once.

Plan with a fleet

  • Better plans before any code

    One model's plan has one model's blind spots. Agents from up to five model families revise your plan in rounds, and a second family checks the first. Edit and annotate it as it changes, see what each agent is doing, and know when the plan has stopped changing. Steer it from your phone.

  • Agents build what you meant

    A wrong turn caught in the plan costs minutes. Caught in the code, it costs days. You see what changed in each round, approve the plan when it is right, and agents build from exactly that.

Every agent, one window

  • All your projects in one sidebar

    No more hunting through terminal windows. Sessions sit under their project, and you add a project by dropping its folder on the sidebar.

  • Use the agent that suits the job

    Open Claude Code, Codex, Grok, Gemini or OpenCode in any tab. Each one gets the same live status and transcript search, and you pick its model per project.

  • Your agents work exactly as usual

    Each session is a real terminal, drawn by the Ghostty engine, so colours, scrollback and keystrokes all behave as they do in any other terminal.

  • Set up each project once

    Choose each agent's flags and model once, then override them for the projects that need something different. Flags the app doesn't know are kept as you wrote them.

  • Keep your hands on the keyboard

    ⌘N opens a session, ⌘⇧[ and ⌘⇧] move through every session, ⌘W closes one and ⌘⇧T brings it back. ⌃⌘← and ⌃⌘→ go back and forward through the tabs you've visited. ⌘⇧/ lists them all.

  • Arrange it your way

    Put sessions and projects in the order you want, and collapse the ones you're not watching.

Know who needs you

  • Live agent states

    See at a glance which agents are working, waiting on you, running a background command or idle. Each state has its own glyph and colour, and VoiceOver reads it out.

  • See where the work is happening

    When a session starts subagents, their count shows next to it, and the tooltip names the one that is waiting on you.

  • Never miss a finished task

    A session that finishes while you're in another tab keeps an unread mark until you open it, even after a relaunch.

  • Blocked agents stay visible

    A collapsed project still shows its most urgent state, so you see an agent waiting on you even when its group is closed.

  • Alerts only when you're needed

    You get a notification when an agent starts waiting on you or a plan is ready for review, and only while you're in another app.

  • Tabs you can tell apart

    Each session's name follows what its agent is working on. Rename it yourself and the agent uses the new name.

The fleet in your pocket

  • Check on your agents from anywhere

    The iPhone app shows every project and session on your Mac, and you can read each conversation. Pair it over your local network with a QR code. Rename, mark read or close sessions from either device.

  • Unblock agents from your phone

    When an agent asks a question or needs permission, it shows up on your phone. Answer there and the agent continues. A half-written reply survives a crash.

  • Nothing waits for you to get back to your desk

    Subagent questions, numbered menus and sign-in prompts reach the phone too, so you can answer all of them away from your Mac.

Agents that talk to each other

  • Agents that hand off work

    Agents can ask each other questions, pass work along, and hear when another one goes idle, so you don't copy text between tabs. Each message shows its sender, and permission prompts still come to you.

  • Script your whole fleet

    From any shell, the flightdeck command lists sessions, sends one a prompt, waits for the answer, or runs a command on another machine. Agents can use it to run other agents.

Sessions that outlive the app

  • Pick up where you left off

    After a relaunch, every session comes back attached to its own conversation, in the same project and position.

  • Quitting doesn't stop your agents

    Each agent runs in its own background process, so it keeps working if you quit Flight Deck or it crashes. Reopen the app and the terminal is still there.

  • Save battery with a big fleet

    Sessions that sit idle are paused until you select them, then wake where they stopped. Set the idle time in Settings, or turn sleep off.

  • Interrupted work gets finished

    Sessions that were in the middle of a task when the app quit are told to continue. You can turn this off per session.

  • Ride out API outages

    When a turn fails on a temporary API error, Flight Deck can keep retrying, so an agent isn't stalled for hours. The row shows the attempt number and your phone shows a countdown. It is off by default.

  • No crossed conversations

    If two tabs point at the same conversation, both show a warning so you can close one.

Run it on another machine

  • Use your other machines

    Pair a second Mac with a short code, or a Linux machine with one pasted command, over your local network or Tailscale.

  • Keep your Mac free

    Send builds and tests elsewhere with flightdeck run --on <host>. Your uncommitted work goes with it, the output streams back, and diff and apply bring the changes home. Agents can send UI tests and heavy builds there by themselves.

Cloud machines on demand

  • Big machines, no surprise bills

    Get a machine in your own AWS or GCP account only when a run needs one. Every command shows its cost, each session has a budget, and the machine is destroyed when it reaches its time, idle or budget limit, or fails to start.

Accounts, pools and usage

  • Stay under your rate limits

    Add several logins per agent and group them into pools. Each new tab uses a login that still has room, and /switch-account moves a running conversation to another one. Choose the account per agent, project or folder.

  • See limits before you hit them

    Meters show each account's usage against its limits, counting every tab and planning run that uses it.

Swarms on the task list

  • The right model for every task

    Write rules in plain English, like “use Codex for hard algorithms”. Flight Control ranks models on a cited benchmark index and sends each task to the one that suits it.

  • Work through the task list unattended

    A swarm runs agents on a project's released tasks, moves an agent to a fresh account when one runs low, and pauses or resumes from your phone.

Search every conversation

  • Find that conversation again

    ⌘K searches session names and every transcript, across all five agents, and shows the matching words. Jump to a live session, or reopen an old conversation in a new tab.

One code index for every agent

  • Answers instead of file dumps

    Agents ask for a definition, a caller list or a call tree and get signatures back, not whole files.

  • Every worktree, no setup

    A new worktree is searchable at once. Worktrees share results for the files they have in common.

  • Always up to date

    After an agent edits a file, its next query sees the edit. Zero stale answers over 86,400 edits made by 24 processes at once.

  • Works everywhere you run an agent

    Claude Code, Codex and OpenCode use it over MCP, and any shell can run flightdeck index. The app does not need to be open.


Under the hood

Built for the Mac

A native Mac app

Swift, AppKit and SwiftUI on Metal. It uses the standard sidebar materials, menus, keyboard conventions and VoiceOver.

Ghostty inside

Flight Deck embeds Ghostty's engine and surface, with its renderer, input encoding and escape handling, pinned to a tested release.

Your data stays local

Sessions are stored in a plain JSON file in Application Support, and preferences in the standard defaults domain. Flight Deck stores nothing about your fleet outside your own machines.

All hands on deck

Every coding agent you use, in one window

Apple silicon macOS 14+ 100% free