saphan install
Sets up this machine for Saphan Studio by running every step a new workspace needs, in order, and reporting each as already done, done now, or not done with the reason.
Sets up this machine for Saphan Studio by running every step a new workspace needs, in order, and reporting each as already done, done now, or not done with the reason. It is safe to run again: completed steps are left alone. You must name the workspace with --workspace (or the workspace environment variable); it is never guessed. Two steps ask for consent before writing (a permission file, and seating the assistant you run this from as your coordinating seat in the signed machine registry); without --yes they are skipped and named.
⚠ Two further steps are the owner's own acts: admitting this machine to the signed machine registry, and signing the write-set when the root key is on this machine. Each asks for the one-time code at your terminal; --yes does not answer for them, and without a terminal they are refused. The console's setup page confirms them with your passkey instead.
| flag | type | default | what it does |
|---|---|---|---|
--actor | string | Who this installation belongs to; defaults to your Git user name, and the install refuses if Git does not know it either. Ignored when this machine already has an identity. | |
--defer-owner-acts | bool | false | Skips the steps that need the owner's confirmation and reports them as waiting for your passkey; used by the console's setup page, not needed in a terminal. |
--display-name | string | Your name as it should appear in Saphan Studio; used only together with --actor, and only when this machine has no identity yet. | |
--email | string | Your email address; used only together with --actor, and only when this machine has no identity yet. | |
--for-setup | bool | false | Prints this machine's steps in plain words, one line each, as the console's Welcome page shows them; add --verbose for the full report. |
--gateway-san | stringArray | An extra host name or address the gateway's certificate must include, for a machine reached at an address other than the console's; repeatable. | |
--kind | string | What the workspace is for (by default coding, devsecops, sandbox or other); passed on to saphan init, which prints the owner's command to record it. | |
--operator-user | string | With --service-user: the operator's login, for whom this install creates their own device key and second machine entry; defaults to the user who ran sudo. | |
--owner-acts | bool | false | Prints, as JSON, the steps this install would perform that need the owner's confirmation, then stops without writing or asking anything; used by the setup page. |
--passkey-begin | bool | false | Prints the passkey registration challenge for the setup page and stops; used by the setup page when the server is not running yet. |
--passkey-register | bool | false | Enrols the passkey the setup page registered, read from the pipe named by --presence-grant-fd and authorised by a one-time code; used by the setup page only. |
--presence-begin | bool | false | Prints the passkey challenge the setup page's consent screen needs, bound to this install's owner steps, and stops; used by the setup page only. |
--presence-grant-fd | int | 3 | The inherited pipe descriptor from which the owner's passkey confirmation is read, standing in for typed confirmation of the named owner steps only; used by the setup page. |
--service-user | string | For a machine-wide install: run every step that creates the store, secrets, keys, trust anchor, device key or seat as this system user, then check the file modes. Creating that user and setting ownership are printed for the owner to do, never run. | |
--start-at-login | bool | true | Registers Saphan Studio's services with the service supervisor once this machine is admitted — to start when you log in on a per-user installation, at boot on a machine-wide one; set --start-at-login=false to record that it should not, which later runs remember. |
--verbose | bool | false | With --for-setup, prints the full report of every step, including operator notes. |
--yes | bool | false | Gives consent to the two steps that ask: writing a permission file and seating this assistant as your coordinating seat. It is never assumed, and it does not answer the owner's terminal confirmation. |
Global options apply to every command — see Every command.
saphan init
Lays out a workspace and then, with your consent, writes its verification settings and the minimum permissions Claude Code needs there.
saphan knowledge
Inspects the agent knowledge bundle compiled into this saphan binary: the role cards, skills, slash commands, subagents and shared guard scripts that Saphan Studio delivers to each AI assistant accoun