Saphan StudioDocs
Reference

Every command

The whole command surface: every noun, its subcommands, and where each one is documented.

Saphan Studio is driven by one command, saphan. Every command below is a noun: it names the thing you are acting on, and its subcommands name what you are doing to it. Ask any of them for --help to get the same text this page was built from.

This reference covers 61 commands, 104 subcommands and 487 command flags, plus the 10 global options listed at the bottom of this page.

Commands

CommandWhat it does
saphan actorSigning actors: the workspace key identity and the actor registry
saphan boardBoard exports over the persisted fleet record
saphan bridgeBridge generation: instantiate a project command deck
saphan build-orchestrateRun the project's platform builds sequentially with emulator lifecycle and own-PID kill discipline
saphan busFleet bus: reconcile channel artifacts into the session registry
saphan canonCarry the canon a seat must obey — signed, deterministic, no git
saphan captureSign and index one capture — the shared capture→sign→store→ACK primitive (STOP1_PLAN)
saphan ceremonyOwner team-birth: mint the ROOT (paper) and the intermediate (device-born) keys
saphan certifyCertify the current trunk tip at one immutable SHA
saphan channelInspect channel documents in the store
saphan checksThe track's deterministic-task catalog (build/test/lint/importcheck/plugin-compile) as proc-runs, never an LLM turn
saphan claimAtomically claim a stream for one actor
saphan configMint and inspect ~/.saphan/config, the canonical identity file (config-mint)
saphan confine-execApply this host's filesystem confinement and exec the command (far-side confinement)
saphan consoleThe owner's console surface: the master-admin credential behind /console
saphan costPer-stream cost rollup from the record — one run or a sum of continuations
saphan discoverDiscover a workspace and propose its configuration
saphan dispatchGenerate an executor-MD (five dispatch rules as refusing format invariants)
saphan docDocument contract validation (EXEC-STATUS-V1 and successors)
saphan dry-runRehearse a write verb through its OWN rehearsal path, under a prefix a permission class can allow independently of the verb itself
saphan egress-doorServe this run's SOCKS5 egress door on a unix socket and run the command under it (far-side egress)
saphan fleetFleet views over the session registry
saphan gateRecord a HUMAN gate decision for a stream (the only fleet_gate writer, §3.2)
saphan gatesRead the fleet_gate log with a per-row signature verdict (read-only, no database client)
saphan golden-deliveryCopy artifacts into the goldens repo per stream (refusing unmapped/ambiguous streams) + README scaffold
saphan grammarRead generated wire grammars carried by this binary
saphan hookInstall repository admission hooks
saphan identitySeed, edit and project the signed identity store (import | export | enroll | revoke)
saphan initGrant each backend's measured-minimum permissions at <workspace>/.claude/settings.json (interactive; law #35)
saphan knowledgeThe seat knowledge bundle carried inside this binary: what it holds, and whether it is intact
saphan lawsThe LAWS MANIFEST: ratified Class-L standing-law documents
saphan ledgerShow or export the cost ledger
saphan libLibrary utilities
saphan machineThe machine registry: admitted hosts, slots, and their executor identities
saphan mergeConflict-probe and land a gated stream in one serialized engine act
saphan orderOrder sidecars: sign a document under a delegate (or root) key
saphan owner-block-dischargeAn owner act that writes off R21's debt (and any open owner-block tile) on a stream with no live leg, with a recorded ground
saphan owner-block-settleLand a well-formed owner-block-v1 envelope into the record with no spawn, settling R21's debt
saphan pr-preflightRun PR pre-flight checks (branch, status, log, behind-base, submodule, build, scoped-test) and emit a STOP list
saphan refusal-classRatify a refusal class, and read every class's ratification state
saphan returnBring a stream's status, branch, and review artifacts home, with proof
saphan reviewGate a STOP-2 return structurally and parameterize the Review prompt
saphan routeAnswer the routing decision for a step; optionally request a model-capable client context
saphan runSpawn one mandated run through the engine's spawn door (runner-v1; operator verb)
saphan sayCompose a validated owner-block-v1 alert, open item, or explicit none
saphan seatA seat's own acts: what the record says about its credential, and the repair that follows
saphan serveServe the embedded web configurator
saphan serverServe the record's read-only projection: MCP (stdio + HTTP), static HTML, and the /console shell
saphan serverdRun the metering daemon: lifecycle skeleton + manual trigger (order serverd-w1 P2)
saphan showReturn a registered order's exact bytes from its recorded commit
saphan taskGenerate task specs from genre manifests
saphan teardownArchive a stream's channel files, then record the teardown gate accept (one verb, refusal-first)
saphan trustThe signed-instruction-provenance root: mint, delegate, and health-check
saphan verifyVerify a registered order reference or a signed instruction path
saphan verify-affectedAdvisory: run the suite for changed packages and their reverse dependencies
saphan verify-deployVerify a deploy: before-digest, build, digest-diff, rollout, live HTTP proof
saphan verify-streamDeterministic, zero-LLM verification of a stream's worktree (build/vet/test/gofmt)
saphan verify-unionAdvisory: run the suite on the branch merged onto current trunk in a detached worktree
saphan versionPrint build information
saphan waveWave views: branch / gate / merge state of the fleet's streams
saphan workspacePer-machine workspace registry (Phase-1): the workspaces this machine's daemon serves

Global options

These may be given to any command.

OptionTypeDefaultDescription
--colorstringautocolor output: auto|always|never
--jsonboolfalsemachine-readable output with stable field names
--merged-refstringunsetmerged-probe truth ref (default: each stream's base ref, local form — adr-0018)
--output-formatstringunsetoutput format: text|json (default: text; --json is a permanent alias for --output-format json)
--projectstringunsetproject within the workspace
--state-dirstringunsetengine state dir (default: <workspace>/.saphan/state)
--systemboolfalseresolve daemon paths for a system-wide install (FHS /etc,/run,/var); default is a per-user install (§B0.2 — explicit flag beats euid auto-detect)
--textboolfalseforce plain text output (no color), regardless of TTY detection
--verboseboolfalseverbose output, incl. config provenance
--workspacestringunsetworkspace root (default: walk up from CWD)

On this page