Skip to content

CLI

Terminal window
orcats [--backend <name>] [--no-typecheck] <flow.ts> [-- <task args>]
orcats run <loop>
orcats serve <loop>
orcats loops
orcats skills [--list] [--skill <name>|--all] [--agent <name>] [--global] [--yes]
orcats --version
CommandMeaning
<flow.ts>Import and run a self-executing flow script.
run <loop>Run one loop firing; target is a module path or registered loop name.
serve <loop>Host a loop trigger and spawn one child process per firing.
loopsDiscover loops from .orca/loops/ without firing them.
skillsDelegate bundled Agent Skills discovery and installation to npx skills.

orcats run and served child execution share the same firing contract: event decoding, defineLoop().run(event), sink emission, diagnostics, and stop-reason exit-code mapping. ORCA_LOOP_EVENT is the CLI/supervisor envelope for reproducing one firing; custom Source and Sink adapters should not read it directly.

OptionMeaning
--backend <name>Validates the backend tag and sets ORCA_BACKEND.
--no-typecheckSkips the tsc --noEmit preflight and sets ORCA_TYPECHECK_SKIPPED=1.
--version, -vPrints the embedded Orcats version.
--help, -hPrints usage.
-- <task args>Passes task input to flowArgs().

skills requires npx from Node.js/npm and runs outside flow typechecking, backend setup, and embedded runtime fallback. Without selection options, the delegated installer owns interactive selection and scope.

OptionMeaning
--listList skills from ASRagab/orca-ts without installing.
--skill <name>Select one bundled skill.
--allSelect all bundled skills; cannot be combined with --skill.
--agent <name>Select an agent recognized by the delegated installer.
--globalRequest user-level rather than project installation.
--yesSkip both npx acquisition and installer confirmation prompts.

See Agent Skills installation for direct npx skills equivalents and local-checkout installation.

orcats <flow.ts> and orcats run <loop> render concise progress on stderr from structured run-output events: preflight status, stage progress, loop cycle progress, artifacts, and the final outcome. Non-TTY and CI output is plain line-oriented text; TTY output may use color when NO_COLOR is not set.

Stdout is reserved for explicit flow output and loop sink payloads. A stdout() sink or console.log() in a flow should not be mixed with progress diagnostics.

Valid backend tags are claude, codex, opencode, and pi.

orcats run and orcats serve map each loop stop reason to a process exit code via exitCodeForStop(reason), exported from the loop surface. A build or runtime error that prevents the loop from running exits 70.

Stop reasonExit codeMeaning
converged0Termination condition met.
unfixable1The loop concluded the issue cannot be fixed.
stuck2No progress across cycles.
timeout3Wall-clock guard expired.
ceiling4Iteration ceiling reached without convergence.
budget-exhausted5Token budget guard exhausted.
cancelled6Cancelled via signal or cancel().
(build/runtime error)70The loop failed to run at all.