Terminal AI orchestration · · ·

Use fleet. Ship faster.

Pick a project, get a dashboard, delegate work to background agents — without leaving the terminal.

Single native binary. No runtime to install.

The idea:

Your project isn't one repo. It's a fleet of them.

Frontend, backend, a couple of microservices, and the infra-as-code repo everyone pretends doesn't exist. Fleet treats all of it as one project — because that's what it actually is.

One orchestrator

It holds the whole project in its head, so you don't have to hold five repos in yours.

Minimal instructions

Each repo's agent gets exactly the context it needs — not a novel, not your team's Slack history.

Worktrees, not chaos

Need two branches of the same repo running at once? Fleet spins up a worktree instead of making you pick.

How fleet ships
  1. 01 / 08

    A repository is a container.

    Self-contained: its own code, its own history, its own branches. Each one gets its own agent.

  2. 02 / 08

    A project is all of them, headed for production.

    Frontend, API, payments, infra: separate repositories, one product. A change usually touches several at once.

  3. 03 / 08

    A prompt hits the dock.

    , add Apple Pay to checkout. fleet's main orchestrator hands it out: web gets the Apple Pay button, api the new payment method, payments the merchant session, infra the merchant key.

  4. 04 / 08

    The changes ship together.

    Every repository the feature touched goes aboard one ship: the project, with its orchestrator as captain.

  5. 05 / 08

    With fleet, four at once.

    Other projects ship their features in the same crossing: offline mode for the mobile app, dark mode for the blog, CSV export for admin.

  6. 06 / 08

    In production.

    Four projects, every repository they touched, landed together.

  7. 07 / 08

    Microservices? Same story.

    , add OpenTelemetry tracing to every service. Each of the platform's twelve services gets its change from its own agent, and all twelve load onto one ship.

  8. 08 / 08

    Then four ships again.

    Three more projects join with their own prompts: on-call alerts for ops, a daily revenue report for data, two-factor login for accounts. The whole fleet lands in production.

    one repo at a time every repo, every project, at once

Why use terminal?

One window.
No wasted ram.
Instant startup.

No IDE overhead - Blazingly fast.

How it works

Four steps from terminal to merged branch.

New for some, recognizable for others - Keyboard first workflow.

01

Pick a project

Run fleet, pick a project.

02

Dashboard opens

Main-ochestrator to delegate and fleet dashboard for overview

03

Create agents or sub-orchestrators

create agents manually or use the main orchestrator

04

Review, merge, finish

Dots turn from working to done. Merge, push, clean up.

See it live

This is what it looks like.

Pick a project, get a dashboard, dispatch a sub-orchestrator — all in the terminal you already have open.

A real session: fleet and Claude Code in a terminal, working on a small demo project. Sped up while Claude works.

Built-in multiplexer

Its own multiplexer. Any terminal will do.

fleet ships fleetd, a built-in terminal multiplexer. Run fleet in any terminal (PowerShell, Windows Terminal, a Linux shell) and the project opens right there, with panes, tabs and splits.

A window, its projects

Each terminal window holds its own projects. From the Switch project picker, a lower-case letter brings a project into this window and an upper-case one opens it in a new window, in the same terminal profile and Claude account. Agents and other panes always stay in their own project's workspace, wherever you open them from.

Your shell

New panes open your default shell: Windows Terminal's default profile, else pwsh.

fleet doctor

Also checks the built-in multiplexer and shows each project's Claude profile.

attach.sh

Sessions that survive the terminal

Detach and the agents keep running. Reattach later, or from another machine; its window title and clipboard come back to you.

ctrl+s d detach
$ fleet attach picks a project
$ fleet attach --ssh devbox
restore.log

Restores after a restart or crash

Tabs, splits, floating panes and each pane's folder come back after a crash or restart. Claude sessions pick up where they were.

tabs, splits, floats restored
claude --continue
floats.txt

Floating panes

The fleet menu, the file navigator and fleet config open as floats over whatever you're in. A permission prompt floats over the agent that asked.

ctrl+s f new float
Approve this action? Allow / Deny
menu.txt

An instant fleet menu

It opens in tens of milliseconds, and every screen in it draws once, without flicker. On Linux, ctrl+enter needs a terminal with xterm's modifyOtherKeys (xterm, foot, Ghostty); ctrl+s space works everywhere.

ctrl+enter menu
ctrl+s space menu
embedded-keys.json

Keyboard-first, tmux-style. The mouse works too.

Prefix ctrl+s pops up the keys it takes. Click to focus, drag dividers and floats, scroll, click tabs.

% " split · c tab · z zoom
h j k l focus · [ copy mode
ctrl/alt+h j k l panes and nvim splits
profiles.txt

A Claude account per project

Pin a Claude account profile to a project, or let fleet pick one per folder. Work and personal accounts stay apart.

work-api work pinned
side-project personal from folder
Across machines

Projects from every machine, in one window.

Connect to fleet on another machine over ssh. Its projects show up in your switcher, and open in this window or a new one, while their panes keep running over there.

Just ssh

fleet starts ssh itself. The other machine needs fleet on its PATH, or FLEET_REMOTE_COMMAND naming it.

Always a way back

Switch project always opens this machine's switcher, wherever you are.

Keeps running

Disconnecting closes the view here. The panes keep running on the remote.

remotes.txt

Remote machines

Fleet menu › Remote machines. Connect to another machine; if ssh asks for a password or to trust a new host key, the question appears in a small dialog.

r remote machines
n user@homelab
d disconnect · enter answer or retry
switch.txt

Switch project across machines

With a machine connected, the switcher gets a tab per remote, named after its hostname. It lists every project saved there; opening one that isn't running starts it on that machine first.

All · this machine · homelab
h l switch tabs
enter this window · A-Z new window
remote-window.txt

Remote projects in your window

The remote fleet draws the project and yours shows it. Keys, mouse, splits, tabs, floats, copy mode and the fleet menu all act on the remote. One window at a time follows a given machine.

shop @homelab in the tab bar
ctrl+enter its menu, on the remote
sessions.txt

Sessions

Save a window's projects as a session, remote ones included. Opening it starts the projects, reconnects their machines and brings them back in one window.

w save window as session
$ fleet Projects · Sessions
d remove a session; projects stay

Everywhere you already work

Windows
Linux
macOS

Native binaries for Windows and Linux. Build from source on macOS.

Features

Built around running several agents at once.

dispatch.sh

Multi-agent dispatch

Fan work out across agents in hidden panes.

$ fleet dispatch "add pagination" --project api
notices.log

Knows when an agent needs you

A colored dot per agent shows what it's doing. When one asks a question, waits on a permission, is ready for review, fails, stalls, or its branch falls behind or conflicts, you get a desktop toast and a notice in the notification center. Alerts come from the projects in this window, remote ones included; the rest stay quiet in their own dashboard. Resolved and dismissed notices move to the center's History tab for a day.

? agent-1 asks a question
✓ agent-2 ready for review
shop ● 2 open notices in this window
finish.sh

Finish workflow

Merge, push, and clean up — from a menu.

> Finish agent-2
merge → push → cleanup
repos.toml

Repository management

Add, remove, and pull repos from the dashboard.

$ fleet repo add ~/code/api
keys.toml

Rebindable keys

Vim-style navigation, leader-chord prefix, fully rebindable.

j/k move · g/G top/bottom
<leader>f finish agent
update.log

Self-update

fleet update checks GitHub releases, swaps itself in place. fleet update <v> installs a specific one.

$ fleet update ✓ checksum verified — updated
Requirements

What you need before you install.

Terminal-native

No browser tab, no Electron shell. fleet brings its own panes, tabs and splits.

Single binary

NativeAOT-compiled C#/.NET. Nothing else to install.

Bring your agent

Claude Code today — the pane is yours to configure.

  • Git For repo management and the finish workflow. required
  • An AI harness Claude Code today. required
  • Nerd Font For the pill glyphs in the top bar and the dashboard's status glyphs. recommended
  • Neovim neo-tree + claudecode.nvim, for the editor flow. integration
  • yazi Folder picker when adding a repository. integration
PlatformDistribution
WindowsNative binary (x64), built-in multiplexer included
LinuxNative binary (x64), built-in multiplexer included
macOSBuild from source only — no published binary
Install

Get fleet running.

01One-liner install

irm https://raw.githubusercontent.com/Redmern/fleet-tui/main/scripts/get-fleet.ps1 | iex

Downloads the latest release binary and verifies its checksum.

02Install with dependencies

Add -WithDeps (Windows) or --with-deps (Linux) to also install fleet's dependencies through your platform's package manager.

irm https://raw.githubusercontent.com/Redmern/fleet-tui/main/scripts/get-fleet.ps1 | iex -WithDeps

03Build from source

Requires the .NET 10 SDK. Windows also needs Visual Studio Build Tools 2022 (Desktop development with C++); Linux needs clang and zlib1g-dev. Then run the local installer:

.\install.ps1

Also works on macOS via ./install.sh — no prebuilt macOS binary is published.

04Uninstall

.\install.ps1 -Uninstall

Windows: add -Purge to also delete %APPDATA%\fleet.

Full CLI reference & docs

Command list, keybind editor, MCP integration — all in the README.

Read the docs on GitHub