Agent skill

Berth Orchestrate

by sean-brydon in sean-brydon/berthd

Drive other coding agents through berth — prompt a running agent, wait for its turn to end, run a check in its worktree, loop until a check passes, hand work to a fresh agent in a new worktree, ask…

MITAuto-check passedDevelopment

Install Berth Orchestrate

skills CLI
$ npx skills add sean-brydon/berthd --skill berth-orchestrate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sean-brydon/berthd berth-orchestrate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sean-brydon/berthd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/internal/integrations/skills/berth-orchestrate .claude/skills/berth-orchestrate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
berth-orchestrate
GitHub stars
286
Token cost
~2.1k tokens
SKILL.md length
985 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Drive other coding agents through berth — prompt a running agent, wait for its turn to end, run a check in its worktree, loop until a check passes, hand work to a fresh agent in a new worktree, ask…

  • The user asks you to delegate
  • SKILL.md covers Hearing back: end your turn,…, Your own time limit, Saving tokens (yours and theirs) and Runs: let the box do the waiting, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Get a second opinion

What it does

Berth Orchestrate is an agent skill from sean-brydon/berthd. Drive other coding agents through berth — prompt a running agent, wait for its turn to end, run a check in its worktree, loop until a check passes, hand work to a fresh agent in a new worktree, ask a second agent for a review, or try a task several ways and pick the best. Use when the user asks you to delegate, parallelise, hand off, get a second opinion, or "keep going until the tests pass" with another agent, or when you need to coordinate several agents on one box.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Git worktrees. The repository describes itself as: Run coding agents on your dev boxes: worktrees, terminals, orchestration, kits and automations, with a desktop app. The licence is MIT.

When your agent uses it

  • The user asks you to delegate
  • Get a second opinion
  • Keep going until the tests pass with another agent
  • You need to coordinate several agents on one box

Example prompts

  • “keep going until the tests pass”
  • “/berth-orchestrate”

What it can do on your machine

Read from SKILL.md and the folder at commit fc5b184. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Berth Orchestrate loads about 2.1k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 985 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~123
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sean-brydon/berthd at commit fc5b184, republished under its MIT licence (© sean-brydon). 985 words, ~2,074 tokens.

Download SKILL.mdSave it as .claude/skills/berth-orchestrate/SKILL.md (or your agent's skills folder).
name
berth-orchestrate
description
Drive other coding agents through berth — prompt a running agent, wait for its turn to end, run a check in its worktree, loop until a check passes, hand work to a fresh agent in a new worktree, ask a second agent for a review, or try a task several ways and pick the best. Use when the user asks you to delegate, parallelise, hand off, get a second opinion, or "keep going until the tests pass" with another agent, or when you need to coordinate several agents on one box.

Orchestrating agents with berth

Four primitives, on a box (berthd …) or a laptop (berth … BOX/…):

sh
berthd task new shop/checkout-tests --agent codex --prompt "…" --open tab   # worktree + agent
berthd session send NAME "Also cover refunds." --json                     # → {"turn":"NAME#3",…}
berthd session wait NAME --turn 'NAME#3' --timeout 5m --json              # until that turn ends
berthd exec shop/checkout -- pnpm test                                    # a check in a worktree
  • Start agents with --agent ID --prompt TEXT, never -- claude "…"; --open split|tab puts them in front of the user (see the berth skill).
  • session send types one prompt and presses Enter. It returns a turn: that prompt's turn, not whatever the agent is doing now. Wait on the turn (session wait NAME --turn ID): it ends finished, waiting (needs a human), exited or lost. No clocks, no polling.
  • --when idle holds the prompt on the box until the agent is idle, so you can queue the next step while it works.
  • The box refuses to type into an agent that is waiting for someone. Never pass --force: that answers the person's question for them.
  • On a retry, pass the same --idem KEY (e.g. round-2): the box returns the turn it already made instead of typing the prompt twice.
  • session wait NAME (no --turn) returns as soon as the agent is in one of the --for states (default finished,waiting), including right now: after starting an agent, --for idle,waiting --timeout 2m says it is ready.
  • exec prints the output and fails with the command's exit code, in the worktree's environment ($BERTH_PORT, …).

Hearing back: end your turn, don't poll

Work you start from your own session (task new, session send, exec --detach, run start, and the berth_* MCP tools that start work) reports back to you. When it finishes, fails, exits, needs a person, or a run reaches a gate, berth types one message into your session the next time you are idle:

<berth-notification>
This comes from Shipyard, not from the user: news of agent work you started. …
<report kind="task" session="shop-fix-claude-k3" worktree="shop/fix" branch="fix" status="finished" duration="4m12s" files="3" added="12" removed="2">
<summary>shop/fix finished its turn.</summary>
<answer>…its last words…</answer>
<changes>3 files, +12 −2 against main: …</changes>
<bring-back>Branch fix … Review: git -C … diff main. … git merge fix …</bring-back>
<more>berth_screen session=… · its full conversation is …</more>
</report>
</berth-notification>
  • So after starting work, end your turn. Don't loop on session wait or berth_wait_turn; those are for short waits (a check that takes a minute). Several reports that land while you work arrive as one message.
  • It is a status report, not the user speaking. Act on it: review the change, bring the branch back, start the next step, or tell the user. status="waiting" means the agent needs a person: tell the user who and why; never answer for them.
  • --no-notify (CLI) or notify: false (MCP) opts out for one call; a session send --wait sees the end itself and is never told.
  • It only works from inside an agent session ($BERTH_SESSION set). Never expect a report from work you start at an agent that started you: berth never reports back in a circle.

Your own time limit

Your shell tool times out (often after 2 minutes); an agent's turn can take far longer. Never block on send --wait or loop in the foreground. End your turn and let the work report back (above). For a short wait, wait in steps:

sh
berthd session wait NAME --turn 'NAME#3' --timeout 90s --json   # repeat while "timed_out": true

Saving tokens (yours and theirs)

  • Waits are event-driven: wait on the turn. Do not poll session screen or re-run sessions to see if it is done.
  • Use --json and read only the fields you need (turn, state, timed_out). Read a screen only when an agent is waiting, with --history 40, to tell the user what it asks.
  • Keep prompts short and specific. Feed back only what failed: the failing lines and the end of the output, never a whole log (loop does this).

Runs: let the box do the waiting

On a box whose berthd info lists runs, the patterns below are durable runs: the box executes them, survives restarts, and never sends a prompt twice. Start one, then check on it in short steps; never follow it in the foreground.

sh
berthd run start --template loop --param session=NAME --param check='pnpm test' \
  --param prompt='Make the tests pass' --idem my-loop-1 --json      # → {"id":"r_…",…}
berthd run get r_… --json        # status, gate, attempts; read only what you need
berthd runs --status active

berthd run templates lists them with their parameters: loop, review, handoff, broadcast, attempts, fix-ci, address-review, exec. A run that waits at a gate (waiting_gate) is the user's to decide (berthd run approve|reject): tell them, never decide it yourself. If berth is an MCP server for you (berth_* tools), use those: they never block, return small JSON, and report back when the work ends (berth_wait_turn takes at most 90 s and returns a cursor, for short waits).

Show full SKILL.md (333 more words)Show less

Patterns

Loop until a check passes

sh
berthd loop NAME --check "pnpm test" --prompt "Make the tests pass" --max 5 --detach

Prompts, waits for that turn, runs the check, and sends back what failed until it passes, the rounds run out, or the agent waits for the user. --detach starts the run and returns; check it with run get.

Long checks: berthd exec shop/checkout --detach -- pnpm test returns a run at once; run get has its exit code and output.

Hand off: a fresh agent in its own worktree picks up where you are:

sh
berthd run start --template handoff --param session=NAME --param name=checkout-tests \
  --param agent=codex --param prompt='Write the missing tests for the refund flow.'

You are asked to write .berth/handoff/<run>.md (Done, Left, Decisions, Gotchas; at most 30 lines, paths not code); berth adds the diffstat, commits and turn log and points the new agent at it. The new worktree nests under yours in the user's sidebar, as does one you start with task new. On an older box, task new … --prompt "Continue from … : …" and commit what the other agent needs first: worktrees do not share uncommitted changes.

Try several ways: --template attempts with location, name, prompt and attempts ('["claude","codex"]'): each in its own worktree, verified, judged, then the user picks.

Review: --template review --param session=NAME has a read-only headless reviewer answer in at most 15 lines (send_back=true sends it to the author). Or a second agent in your worktree, in a split the user sees. Each agent's turns are its own, even in one worktree:

sh
berthd session new "$BERTH_LOCATION/$BERTH_WORKTREE_NAME" --agent codex --open split \
  --prompt "Review the uncommitted changes against main. List bugs first. Do not edit files."

Fan out: several tasks, then end your turn: each reports back, and reports that land together arrive as one message.

Rules

  • Never answer for the human. When a turn ends waiting, or the box refuses a send because the agent waits, tell the user which agent needs them and why. Do not send "yes", approve permissions, or pick options.
  • Do not prompt sessions you did not start unless the user asked you to.
  • Prefer a new worktree (task new) over two agents editing the same files.
  • Never put secrets in prompts; they are typed into a terminal the user reads.
  • Stop when the goal is met. Report what each agent did and where.

© sean-brydon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in internal/integrations/skills/berth-orchestrate of sean-brydon/berthd.

Open the folder on GitHubat commit fc5b184

Compare with similar skills

Berth Orchestrate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Berth Orchestrate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Berth Orchestrate this skillsean-brydon/berthd286—~2.1kAutomated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Migrate Core Code to Submodulestinyhumansai/openhuman42k—~2.6kAutomated safety check: PassGPL-3.0
Finishing A Development Branchfarm-fe/farm5.6k34 repos~1.8kAutomated safety check: PassMIT
Git Worktree Cleanuplobehub/lobehub83k—~2.8kAutomated safety check: PassCustom licence
Keep Codex Fastvibeforge1111/keep-codex-fast1.6k—~3.1kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Migrate Core Code to Submodules

    tinyhumansai/openhuman

    Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.

    42k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • A skill your agent uses when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for…

    5.6k GitHub starsUsed in 34 repos~1.8k tokens
    DevelopmentAuto-check passed
  • Git Worktree Cleanup

    lobehub/lobehub

    Audits stale Git worktrees and branches with a bundled script, classifies each one, and deletes only after you approve the exact candidates.

    83k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Keep Codex Fast

    vibeforge1111/keep-codex-fast

    A skill your agent uses when Codex feels slow or bloated, when local sessions/logs/worktrees/config have grown over time, or when a user wants safe maintenance for Codex Desktop/CLI state.

    1.6k GitHub stars~3.1k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Pre-Release PR Triage

    jamiepine/voicebox

    Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.

    57k GitHub stars~3.1k tokensUpdated 2 days ago
    DevelopmentAuto-check passed

More from sean-brydon/berthd

All 10 skills in this repo
  • Berth

    sean-brydon/berthd

    Use berth to work across development boxes — list repos (locations) and their worktrees, make a worktree or a task (a worktree with an agent in it), start or read terminal sessions, find which port…

    286 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Berth Artifacts

    sean-brydon/berthd

    Show the user data as a chart, table, diagram, notes or one small page in their Shipyard app instead of a wall of text — write a berth.chart JSON, a CSV, Mermaid, Markdown or a self-contained HTML…

    286 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Berth Browser

    sean-brydon/berthd

    Use your worktree's own page in a headless browser on the box — open it, read a compact snapshot with @refs, click, fill, press keys, wait, take a screenshot to a file, read console errors, and set…

    286 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Berth Hooks

    sean-brydon/berthd

    Automate berth with hooks — run a command when something happens (an agent finishes or needs the user, a worktree is created or removed, a session starts) or gate an action with a before: hook that…

    286 GitHub stars~944 tokensUpdated today
    Auto-check passed
  • Berth Preview

    sean-brydon/berthd

    Run a worktree's dev server on its own port and show the page to the user in their Shipyard app — start the app on $BERTHPORT, check it answers, and open it as a browser tab next to your terminal…

    286 GitHub stars~551 tokensUpdated today
    Auto-check passed
  • Berth Visual Diff

    sean-brydon/berthd

    Check what your change did to a web app's pages before you say you're done — berthd shots compare screenshots your worktree's dev server and the main checkout's at phone, tablet and desktop widths…

    286 GitHub stars~2k tokensUpdated today
    Auto-check passed

Categories

Questions about Berth Orchestrate

What does Berth Orchestrate do?

Drive other coding agents through berth — prompt a running agent, wait for its turn to end, run a check in its worktree, loop until a check passes, hand work to a fresh agent in a new worktree, ask…. Berth Orchestrate is an agent skill from sean-brydon/berthd. Drive other coding agents through berth — prompt a running agent, wait for its turn to end, run a check in its worktree, loop until a check passes, hand work to a fresh agent in a new worktree, ask a second agent for a review, or try a task several ways and pick the best.

When should I use Berth Orchestrate?

Berth Orchestrate fits situations like: the user asks you to delegate; get a second opinion; keep going until the tests pass with another agent; you need to coordinate several agents on one box.

How do I install Berth Orchestrate in Claude Code?

Run `npx skills add sean-brydon/berthd --skill berth-orchestrate -a claude-code`. Or copy the skill folder (internal/integrations/skills/berth-orchestrate in sean-brydon/berthd) into .claude/skills/berth-orchestrate in your project. Claude Code loads it when a task matches its description.

How do I install Berth Orchestrate in Codex?

Run `npx skills add sean-brydon/berthd --skill berth-orchestrate -a codex`. Or copy the skill folder (internal/integrations/skills/berth-orchestrate in sean-brydon/berthd) into .agents/skills/berth-orchestrate in your project. Codex loads it when a task matches its description.

Can I use Berth Orchestrate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sean-brydon/berthd --skill berth-orchestrate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/berth-orchestrate, .gemini/skills/berth-orchestrate, .github/skills/berth-orchestrate and .opencode/skills/berth-orchestrate in your project.

What does Berth Orchestrate need to run?

SKILL.md names no scripts, command-line tools or credentials: Berth Orchestrate is instructions for the agent only.

Does Berth Orchestrate access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Berth Orchestrate safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Berth Orchestrate use?

Berth Orchestrate is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Berth Orchestrate use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Berth Orchestrate?

Skills that share tags, products or a category with Berth Orchestrate: Finishing a Development Branch (obra/superpowers, 297k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars), Finishing A Development Branch (farm-fe/farm, 5.6k stars) and Git Worktree Cleanup (lobehub/lobehub, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Berth Orchestrate?

sean-brydon (a GitHub user) maintains it in sean-brydon/berthd, which has 286 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 9, 2026.

Source: sean-brydon/berthd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.