Review and land the agent's work
This page fetches the agent’s commits and uncommitted work from the sandbox into your local checkout, where you review them with your own tools and merge them or open a pull request.
Run these from your checkout of the repo, while the sandbox is running. Each one finds the sandbox for this checkout, preferring one on your current branch. If you have more than one, pass --id <id>.
-
See what changed.
Terminal window droneship diffIt opens in your pager: the sandbox’s commits since
origin/<branch>, plus its uncommitted and untracked files. After the patch you get a one-line summary:<id>: 2 commits ahead of origin/main · 1 uncommitteddroneship diff --statlists only the files.droneship diff > agent.patchwrites a patch thatgit applytakes. -
Fetch it into a local branch.
Terminal window droneship pullFetched <id> into branch droneship/feat-login (2 commits + 1 "uncommitted changes" commit).Your working tree was not touched.git log main..droneship/feat-login reviewgit merge --ff-only droneship/feat-login take itThe agent’s commits arrive as they are, and its uncommitted changes come as one extra commit. Your working tree and current branch stay as they were.
-
Review it and merge it.
Terminal window git log main..droneship/feat-logingit merge --ff-only droneship/feat-loginReview it as you would a teammate’s branch: in your editor, with your tests.
-
Or open a pull request instead.
Terminal window droneship prPushed feat-login from <id> (2 commits). Opening a PR:The push runs inside the sandbox. The pull request opens from your machine: with
ghif it’s signed in, otherwise on GitHub’s compare page in your browser. The title is the last commit’s subject, and the body lists the commits. Change them with--title,--bodyand--base.
If pr refuses
Section titled “If pr refuses”droneship pr needs committed work on a branch other than the default one. It tells you what’s missing:
<id> is on main, the default branch; a PR comes from another one. In the box: git switch -c <name>, then droneship pr.<id> has 1 uncommitted change, which a PR would leave out. Commit in the box first, or droneship pull.If you ask Claude to work on a branch and commit as it goes, pr has what it needs. To run the fix yourself, open a shell with droneship shell.
The push also needs a GitHub credential. A task always has one when GitHub is connected. A live sandbox has one only on a private repo, so on a public repo pr stops and says what to do instead:
<id> has no GitHub credential to push with: a live sandbox gets one only for a private repo. Run droneship pull, then push the branch yourself.If GitHub refuses the push, the Highflame Forge app is usually not installed on the repo:
GitHub refused the push from <id> (403): your GitHub connection cannot write to this repo. Install the Highflame Forge app on it at https://github.com/apps/highflame-forge/installations/new, check that you can push to the repo, then run droneship pr again.Options
Section titled “Options”| Flag | On | Does |
|---|---|---|
--base REF |
diff, pull |
Compare with REF instead of origin/<branch> |
--stat |
diff |
Only the files changed |
--dry-run |
pull, pr |
Show what would happen, fetch or push nothing |
--force |
pull |
Replace droneship/<branch> even if you’ve committed on it |
--title, --body, --base |
pr |
The pull request’s title, body and target branch |
A later pull updates droneship/<branch> in place. If you’ve committed on that branch yourself, pull refuses to replace it unless you pass --force.
More: droneship diff, droneship pull, droneship pr.
- Run several agents in parallel: more branches to land at once.
- Pick up where it left off: go back to the agent after review.
- Work on a private repo: connect GitHub once.