Skip to content
DocsCrew

Crew

Recruiting, naming, focusing, retiering, and dismissing the native agents a captain runs.

A crew is a native agent in its own Herdr pane, working one assignment on the same checkout as everyone else. Only the captain creates them.

Recruiting#

Ask the captain in plain language. When you state no preference it recruits without asking anything, using its own CLI, a pane picked from the tab layout, and the cheap model tier.

shell
captain crew --task "Review the current changes"
captain crew Gibbs --task "Review the current changes" --agent claude --model mid

Every choice you do state is used as given. The captain asks at most one question, and only when you hand a choice back to it (“ask me where to put it”) or name one too vaguely to map to a flag.

captain crew flags
FlagEffect
--task TEXTThe assignment. Required.
--owns PATHDeclares a path the crew owns. Repeatable. See ownership.
--allow ACTIONGrants an action beyond read and search. Repeatable.
--agentNative CLI. Defaults to the captain's own.
--modelTier, model ID, or alias. Defaults to cheap. See models.
--placement pane|tabOverrides the grid for one recruit. See placement.
--split-pane ID|autoThe pane to split, with --placement pane.
--direction vertical|horizontal|autoSplit direction. Forcing it drops the declared ratio.
--handoff IDCarries a finished assignment forward instead of starting fresh.

Names#

Every crew gets a one-word Pirates of the Caribbean name, assigned in a fixed order and skipping names already in use: Jack, Will, Elizabeth, Gibbs, Anamaria, Pintel, Ragetti, Cotton, Marty, Tia, Davy, Sao. Once every name is taken, numbering starts at Jack-1. Barbossa is reserved for the captain.

That one name is used everywhere: the crew ID, the pane and tab label, and the name in memory, wait, focus, model, and dismiss. All name arguments are case-insensitive and also accept a crew ID or Herdr agent name.

Startup#

New panes and tabs open in the same workspace and project without stealing focus, and the task is submitted once the native agent reports ready. A task that never starts, or an agent waiting for approval, preserves the pane for inspection rather than retrying blindly.

Delivery is durable before the pane is touched: the message is a file, and the pane nudge is only a doorbell. The startup launcher deletes itself before starting the native CLI and removes its own path from that process's environment.

What a crew may do#

  • Inspect project files and Git, and read repo state.
  • Add session memory.
  • Use ask, done, and check for its own assignment.
  • Read memory — forced to --scope repo.

A crew cannot inspect other session or project state, and cannot recruit, answer, reassign, or dismiss crew.

Checking status#

shell
captain status
captain status --all

status prints a plain-text table of this session's crew: name, provider, model, pane, live status, and the first line of the assigned task truncated to about 60 characters. Status is refreshed live from Herdr per crew, falling back to the last recorded value if Herdr cannot be reached. Dismissed crew appear only with --all; with no crew at all it prints No crew.

Focusing a pane#

shell
captain focus Jack

Or tell the captain “focus on Jack”. Focusing switches to the crew's tab first when it differs from the captain's, follows the registered agent if its pane has moved, and never sends input or interrupts work. focus has no flags. An unknown or ambiguous name reports the available choices.

Switching a running crew's model#

shell
captain model Jack strong
captain model Will cheap

This drives the CLI's own /model command through Herdr and verifies the result. Without the CLI's confirmation line naming that model, the command reports an error and records no switch. A confirmed switch keeps the pane, the conversation, and the assignment.

Codex keeps the reasoning level it already had. For Claude Code the switch stays inside the crew's session: naming the model inline would also save it as your default for new sessions, so the retier opens /model's picker instead and takes the key that switches this session alone. On success the command prints one line, <name> switched to <model>., and nothing about defaults.

The picker is driven on what the pane actually shows. Focus moves one keypress at a time, and the key is pressed only on a row shown as focused and labelled exactly the model asked for, version included: a request for Opus 5 never takes an Opus 5.5 row. Focus that stalls, or never reaches the row, refuses having selected nothing. A confirmation saying the model was saved as the default is refused too, since that step can persist it. A tier in Captain's catalogue does not guarantee the installed native picker offers it.

Interrupting a turn#

shell
captain interrupt Jack
captain interrupt Jack --reason "wrong file, reassigning"

interrupt stops a crew's current turn while keeping its pane, conversation, and assignment. It is the middle ground between a tell, which queues behind the turn already running, and a dismiss, which throws the pane away. --reason is recorded in session memory, so why a turn was cut short survives into the session's history.

Dismissing#

shell
captain dismiss Jack

dismiss has no flags. It closes the pane, retires the name for reuse, and records the dismissal in memory. A crew on the assignment protocol must first finish with a report and have every notification acknowledged; a refusal names whichever of those is actually holding it.