Skip to main content

orca

Use when the user asks to run an Orca flow (e.g. "use orca to implement …"), or when delegating a well-defined implementation task to Orca's autonomous multi-agent flow — a headless plan-code-review CLI to hand a coding task to instead of implementing it yourself.

Source facts

Repository
VirtusLab/orca
Last source activity
September 24, 2026 at 09:12
Detected SKILL.md language
English
Stars
180
Forks
16

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
orca
description
Use when the user asks to run an Orca flow (e.g. "use orca to implement …"), or when delegating a well-defined implementation task to Orca's autonomous multi-agent flow — a headless plan-code-review CLI to hand a coding task to instead of implementing it yourself.
argument-hint
[prompt]
# Orca Orca (`orca` CLI) runs a scripted plan → code → review flow autonomously, using its own coding/review agents. Delegate to it instead of implementing the task yourself when that fits better. ## When to use - The user asks for it (`/orca`, "use an orca flow to …"). - The task is well-defined and self-contained, with clear acceptance criteria (a feature or bugfix) — suited to an autonomous plan → code → review flow. - NOT for exploratory/interactive work, or edits small enough to just make yourself. ## 1. Choose the flow and where the run goes Run `orca list --json` and `git status --porcelain`. If `orca` is not found, stop and point the user to https://github.com/VirtusLab/orca#getting-set-up. Skip a question only if the user named the flow, or said where the run goes, explicitly. Otherwise ask both in one AskUserQuestion call: **Flow** (header `Flow`). Put every flow in the question text, one per line as `name — description`, and say: pick one of the options, or type any other flow name under "Other". Options: `implement.sc` first, marked "(Recommended)", then up to 3 more, by `origin`: `project`, `global`, `built-in`. **Where the run goes** (header `Where`). On a clean tree, the options are: - New branch (Recommended) — no flag. - Current branch — the flow commits onto it: `--skip-branch`. - New worktree — a separate checkout under `.orca/worktrees/`, this one stays untouched: `--worktree`. With local (uncommitted or untracked) changes, list up to 10 changed files in the question text (then "+N more"), and offer: - New branch, keep local changes (Recommended) — for local files the flow should use, e.g. a spec: `--keep-changes`. - New branch, stash local changes — the run starts from the last commit: no flag. - Current branch, keep local changes: `--skip-branch`. - New worktree — local changes are NOT included, it starts from the last commit: `--worktree`. Without `--keep-changes` or `--skip-branch`, a headless run stashes local changes. With either, if the flow fails before its first commit, kept changes to tracked files are lost. If the user picks the worktree while there are local changes, ask with AskUserQuestion (header `Changes`): "Commit first" — so the worktree has them — or "Run without them". To commit: `git add -A && git commit -m "<short summary>"`. Don't pre-create a branch or worktree: the flow creates its own. ## 2. Get the prompt Prompt given with the invocation (may be empty): $ARGUMENTS If empty, write one from the task discussed in the conversation. If there is none, ask for it in plain text, phrased after the chosen flow's description (e.g. an issue reference, a PR or branch to review, or a description of the change). Orca's agents don't see this conversation: write the prompt so it stands on its own — goal, acceptance criteria, relevant files, and the path of any spec. ## 3. Run Capture the output in a temporary file, so the user can follow it (`tail -f`). Runs are long, so use two separate commands: 1. Create the file, and give the user its path before starting the run: ```bash mktemp -t orca-run.XXXXXX.log ``` 2. Start the run with Bash `run_in_background: true`, using the literal path from step 1 and the flags chosen above. The prompt goes on stdin, so quotes and `$` in it need no escaping: ```bash orca run <flow> <flags> > <path> 2>&1 <<'ORCA_PROMPT' <prompt> ORCA_PROMPT echo "orca exit code: $?" >> <path> ``` When it finishes, read the file's tail to check the result; repeat its path in your final report. Add these flags only if the user asks: - `--verbose` — print a stack trace if the flow aborts. - `--honor-pin` — run the flow's own pinned orca version instead of forcing this shell's. - `--branch <name>` — create the run's branch under this name. Refused with `--skip-branch`, and when the branch already exists. ## After it runs Exit codes: 0 success, 1 action failure, 2 usage error — `orca run` propagates the flow's own exit code. On success the flow has committed its work on a branch; report that branch (and any PR) to the user, and the worktree path for a `--worktree` run. The code flows end by opening a PR when the repository is on GitHub. A new-branch run then leaves you on the branch it started from — the work is on the feature branch behind the PR, not the one you are standing on. Whenever the output has an "Open review findings" block, show it to the user verbatim. Say the review left nothing open only when a code flow exited 0 without one: a failed run may have stopped before printing it. If a run is interrupted, re-run the same `orca run` command: flows are resumable and pick up from the last committed stage. A re-run stashes local changes, even with `--keep-changes`. `orca continue` (list sessions with `--list`, resume one by selector — an id from `--list`, session name, or branch, e.g. `orca continue <branch>`) reattaches to a recorded harness session, but requires a real terminal and errors without one — don't invoke it headlessly; tell the user to run it themselves instead.
View on GitHub