switchyard

for agents: this page is markdown at https://switch-yard.dev/docs/cli.md; every page is listed in llms.txt.

The yard CLI

Switchyard: many coding agents on one codebase, with tasks, plans, warnings and undo.

Install it with one line, then sign in: curl -fsSL https://app.switch-yard.dev/install.sh | sh and yard login https://app.switch-yard.dev --github. Every command takes --json for machine-readable output, and every failure prints a hint: line that says what to do next. This page is rendered from the CLI's own command definitions, so it says what the installed yard says.

Global flags

FlagMeaning
--jsonPrint machine-readable JSON
--color <WHEN>Colour output (NO_COLOR and non-terminals turn it off in auto)
--project <ID>Project id (default: SWITCHYARD_PROJECT or .git/yard.json)

Commands

CommandWhat it does
yard loginSave the coordinator URL and key in ~/.config/yard/config.json
yard whoamiWho the configured key belongs to: a signed-in person and their teams, or a project or task
yard logoutSign out: revoke a GitHub sign-in on the coordinator and forget the key
yard initConnect this repository to a project, creating it (optionally importing a repo)
yard branch newCreate a task and check it out
yard planWrite or update the task's plan ($EDITOR, --file or stdin JSON)
yard tagSet or remove a task's tags, or print them
yard assignAssign a task to a person, or clear its assignee with none
yard hotfixMerge a queued task as a hotfix, before the rest of the merge queue (project admins only)
yard pausePause merging on main, during an incident or a release window (project admins only)
yard resumeResume merging after yard pause (project admins only)
yard statusGraph of main, tasks, stacks and warnings, plus local changes with stable ids
yard warningsWhat overlaps with this task and what to do about it
yard syncRestack the task onto main; conflicts are recorded, never blocking
yard commitCommit chosen files or hunks by stable id (f3a9c, h52e1, ...)
yard absorbFold working-tree changes into the commits they belong to
yard splitSplit paths out of a change into a new change
yard squashSquash a change into the change below it, or into --into
yard moveStack the task onto another task or main, or move a change within the stack
yard uncommitTake a change (or some of its paths) out of the stack, keeping the edits locally
yard editAmend a change in the stack with working-tree changes and/or a new message
yard submitSubmit the task to the merge queue
yard resolveRun conflict resolution for the task's conflicts step by step, or send your own resolution
yard conflictsOpen conflicts in every task with the resolution steps tried, and the ones resolved recently
yard showA change's versions, the reason behind it and its diff, or what changed between two versions
yard whyTask, agent, plan and prompt behind a file or line
yard logThe task's changes, or the project's history with --ops
yard undoUndo an action (default: the latest one for this task)
yard fetchFetch main and its merge records into refs/remotes/switchyard/<branch>
yard verifyCheck the signed merge record of a merged commit: who approved it and which checks passed on it
yard reviewReview inbox: list, approve, request a fix or comment
yard agent setupWrite a Switchyard skill for coding agents and an MCP config entry
yard agent runStart a coding agent with this task's key in SWITCHYARD_TOKEN, read from .git/yard.json (yard agent run -- claude)
yard github connectPrint a one-time link that creates Switchyard's GitHub App on GitHub (needs the operator key)
yard github statusShow which GitHub App Switchyard uses (needs the operator key)
yard doctorCheck the URL, key, project, task remote and git
yard completionsPrint shell completions
yard review approveApprove the latest version of a change
yard review request-fix (also yard review fix)Send the change back to its agent with a fix request
yard review commentComment on a change

Examples from the help

yard login

Pass the key on stdin, which keeps it out of shell history and the process list:
  printf '%s\n' "$SWITCHYARD_TOKEN" | yard login https://switchyard.example.workers.dev
Without piped input, yard asks for the key without echoing it.
Or sign in as yourself with GitHub, approving a code in the browser:
  yard login https://switchyard.example.workers.dev --github

yard tag

Examples:
  yard tag phase=review            tag this checkout's task
  yard tag task-3 run=wrun_42 --remove agent
  yard tag                         print this task's tags

yard assign

Examples:
  yard assign ada                  assign this checkout's task to @ada
  yard assign --branch task-3 none   leave task 3 unassigned

yard hotfix

Examples:
  yard hotfix                      merge this checkout's task first
  yard hotfix --branch task-3 --off  put task 3 back in its turn
A hotfix applies to the head it was given: pushing to the task again drops it.

yard pause

Examples:
  yard pause --reason "incident 42: payments are failing"
  yard pause --reason "release window" --until 2h
  yard pause --reason "freeze" --until 2026-10-20T09:00:00Z
The merge queue keeps testing; nothing merges but an admin's hotfix until yard resume, or until --until.

Exit status

  0  success
  1  the command failed; the error's code says why, and --json prints it on stdout
  2  usage error: an unknown command, flag or argument