Astrolabe

Astrolabe/Docs/Fleet

Run in parallel. Review with intent.

Fleet gives each coding task its own branch, worktree, and agent command. You see what is running, what needs you, and what is ready to deliver without reconstructing state from terminal tabs.

Works with Claude Code, Codex, and custom agent commands

One task, one branch, one isolated berth.

On this pageThe Fleet modelSet up a repoCreate a taskRead the boardWork with agentsReview the workDeliver the resultGuardrailsTroubleshooting
The Fleet model

Isolation is the starting point.

Two agents should never share a checkout. Fleet creates a durable Git boundary around every task before the agent starts.

01 · Branch

A named stream of work

The task name becomes a fresh branch such as fleet/add-vat-validation, created from the base you choose.

02 · Berth

An isolated worktree

The branch is checked out into <repo>.fleet/<task-slug>. Other tasks keep their own index and files.

03 · Agent

Your command, launched there

Fleet runs Claude Code, Codex, or a custom command inside that berth and follows the process it launched.

Fleet is orchestration, not chat

The durable result is the branch and its Git diff. Fleet hosts the agent terminal, tracks the worktree, and guides review and delivery. It does not replace your agent with a separate conversation UI.

Repository setup

Prepare every berth the same way.

Open Settings > Fleet in the repository. These defaults remove repetitive setup without hiding what will run.

Default agent

Choose Claude Code, Codex, or a custom launch command. You can override it on an individual task.

Files to copy

Add local files a fresh worktree needs, such as .env or .env.local. Copy only the secrets the task needs.

Bootstrap command

Run a repeatable setup step such as pnpm install after worktree creation and before agent launch.

Ports

Set a base and offset when several berths need predictable development server ports.

Landing strategy

Choose rebase or merge for local landing. Pull request delivery still follows your repository's hosted merge policy.

Terminal mode

Use an embedded terminal inside Astrolabe or open the berth in your configured external terminal.

$ git --version
$ your-agent-command

Fleet requires system Git 2.40 or newer. Your agent CLI must already be installed, authenticated, and able to start in a normal terminal.

Create a task

Name the outcome. Make success checkable.

A useful task brief gives the agent direction and gives you a review checklist later. Fleet keeps both beside the final diff.

Step 01

Name the outcome

Use a short result-oriented name. Fleet previews the branch before creating it.

Step 02

Add task context

Write a clear goal and one checkable acceptance result per line.

Step 03

Check advanced options

Change the base branch, agent preset, or command only when this task needs different defaults.

Step 04

Create and start

Fleet creates the branch and berth, runs setup, then launches the agent inside it.

Fleet board

See what needs you without opening every terminal.

A card shows task intent, branch, agent, elapsed time, diff size, and status. Its primary action changes to the next useful step.

Preparing

Fleet is creating the worktree or running berth setup.

Running

The agent command is active. Open or hide the terminal as needed.

Needs input

The agent needs a decision or more information before it can continue.

Failed

Setup or launch did not complete. Read the error, fix the cause, and retry.

Blocked by conflict

A local landing has conflicts that need the resolver.

External process untracked

The worktree was adopted, but Fleet did not launch its current process.

Changes requested

Review found work that needs another agent pass.

Ready for review

The command stopped and changed files are available to inspect.

Awaiting PR merge

A pull request is registered and waiting for merge confirmation.

Completed

The task was delivered, its berth retired, and a receipt recorded.

Running work

Keep the terminal available, not in the way.

Open a task terminal when the agent needs attention. Hide an embedded terminal to return to the board without ending the command.

Respond

When a task needs input, answer the smallest question that unblocks it. If scope changes, update the task intent so review still matches the work.

End agent

Stop the tracked command while keeping the branch, files, and berth intact. Ending the agent does not discard its work.

Retry start

After fixing a setup or launch error, retry from the same task. The existing berth remains available for inspection.

Adopt existing work

Select an unmanaged Git worktree, name the task, add intent, choose the base, and configure the command. Fleet will not guess which external process is running.

One tracked agent per berth

Fleet prevents a second tracked agent from launching into the same worktree. Two processes editing one index would defeat the isolation the berth exists to provide.

Review gate

Review the work, not a remembered conversation.

Fleet compares the task branch with its base and keeps the original goal and checks beside the diff. Every changed file must be explicitly reviewed.

Read every file

Check behavior, tests, generated files, and any change that falls outside the task intent.

Mark reviewed deliberately

Use Mark reviewed only when the current file is acceptable. You can toggle the mark off when you want another look.

Recheck changed files

If the agent updates a file after review, read the refreshed diff and review that file again.

Unlock delivery

Create PR, Register PR, and Land locally stay unavailable until every changed file is reviewed and the task is ready.

Delivery

Choose the path that matches the risk.

Fleet supports hosted pull request review and direct local integration. Both begin after the same file-by-file review gate.

Team delivery

Pull request

Use remote checks, team review, and your repository's hosted merge policy.

  1. Push the task branch to origin.
  2. Select Create PR to open the GitHub compare page.
  3. Submit the pull request on GitHub.
  4. Register its URL in Fleet.
  5. After merge, confirm and retire the berth.
Local delivery

Land locally

Integrate directly into the current local base using the configured rebase or merge strategy.

  1. Stop the running agent.
  2. Read the commits and local base warning.
  3. Protect any untracked files.
  4. Enter the serialized landing queue.
  5. Resolve conflicts, then finish landing.
Local landing uses your local base

If the local base is behind its remote, Fleet says so before landing. The confirmation also lists untracked berth files that will be deleted and cannot be restored by Undo.

Create PR opens a prepared GitHub comparison. Astrolabe does not silently submit a pull request or push the branch for you. After a squash or rebase merge, Git ancestry may not prove integration, so retirement requires your explicit confirmation.

Built-in control

Fast work still gets a human gate.

Fleet makes parallel work easier to start, but it does not remove the moments where a person should inspect scope and consequence.

  • One task, one berth. Parallel agents do not share a working directory or Git index.
  • Git is the source of truth. Fleet follows real worktrees and branches, not only saved task metadata.
  • Review is explicit. Every changed file must be marked reviewed before delivery.
  • Local landing is serialized. Only one task moves the base branch at a time.
  • Untracked files get a direct warning. Fleet names work that will not survive berth removal.
  • Remote delivery stays visible. You submit the PR on GitHub and retire only after merge confirmation.
  • Credentials stay in existing tools. Fleet relies on system Git and the agent CLI you already authenticated.
Troubleshooting

Follow the boundary that failed.

Agent, setup, review, and landing errors each leave the branch and berth available until you decide what to do.

The agent command fails immediately

Run the exact command in a normal terminal. Confirm the executable is on PATH, authentication is valid, and it starts from the repository. Then check the task's selected agent.

Berth setup fails

Check copied file paths and the bootstrap command in Settings > Fleet. The command should be safe to run in a fresh worktree and should not depend on the original checkout.

An adopted agent is shown as untracked

This is expected. Astrolabe does not infer process ownership. Stop the external process and launch the configured command through Fleet when tracked lifecycle controls matter.

A reviewed task asks for review again

The branch changed after the earlier review. Reopen the affected file, inspect the new diff, and mark it reviewed again.

Local landing is blocked

Confirm the agent has stopped. Then read the landing warning for an out-of-date local base, untracked files, or conflicts. Resolve that condition before retrying.

A merged PR cannot be verified

Squash and rebase merges change commit ancestry. Compare the merged PR and task changes on GitHub, then confirm retirement only when the intended work is present.

A merged task cannot be retired

Check the berth for modified or untracked files. Git refuses to remove a worktree when that could discard work. Commit or move anything you need, then try again.

Before you retire a task

Every file is reviewed, acceptance criteria are checked, relevant tests ran, unexpected scope is resolved, and important untracked files are committed or moved.