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.
One task, one branch, one isolated berth.
On this page
The Fleet modelSet up a repoCreate a taskRead the boardWork with agentsReview the workDeliver the resultGuardrailsTroubleshootingIsolation is the starting point.
Two agents should never share a checkout. Fleet creates a durable Git boundary around every task before the agent starts.
A named stream of work
The task name becomes a fresh branch such as fleet/add-vat-validation, created from the base you choose.
An isolated worktree
The branch is checked out into <repo>.fleet/<task-slug>. Other tasks keep their own index and files.
Your command, launched there
Fleet runs Claude Code, Codex, or a custom command inside that berth and follows the process it launched.
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.
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.
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.
Name the outcome
Use a short result-oriented name. Fleet previews the branch before creating it.
Add task context
Write a clear goal and one checkable acceptance result per line.
Check advanced options
Change the base branch, agent preset, or command only when this task needs different defaults.
Create and start
Fleet creates the branch and berth, runs setup, then launches the agent inside it.
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.
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.
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 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.
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.
Pull request
Use remote checks, team review, and your repository's hosted merge policy.
- Push the task branch to origin.
- Select Create PR to open the GitHub compare page.
- Submit the pull request on GitHub.
- Register its URL in Fleet.
- After merge, confirm and retire the berth.
Land locally
Integrate directly into the current local base using the configured rebase or merge strategy.
- Stop the running agent.
- Read the commits and local base warning.
- Protect any untracked files.
- Enter the serialized landing queue.
- Resolve conflicts, then finish landing.
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.
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.
A practical operating rhythm
Keep tasks focused, write checks before launch, review completed work early, and prefer a PR when team review or remote CI matters.
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.
Every file is reviewed, acceptance criteria are checked, relevant tests ran, unexpected scope is resolved, and important untracked files are committed or moved.