Skip to content

CLI reference

sailor is the operator command surface. Install it with the package and run via npx sailor <command>, or globally:

Terminal window
npm install -g @sail.money/sailor
sailor --help
sailor --version

Every command supports --help; most support --json for machine-readable output. The commands below are grouped by workflow and verified against the Sailor source.

  • --json — almost every command accepts --json for machine-readable output. Use it in scripts, CI, and when operating via a coding agent.
  • Read-only vs. gascapabilities, chains, doctor, status, scan, and mandate simulate spend no gas. Commands that change on-chain state route owner signatures through the browser signing server.
  • SAIL_PASSPHRASE — unlocks the encrypted manager key non-interactively (CI/headless). Read from .sail/.env.local or the environment; never commit it.
  • RPC resolution.sail/.env.local chain-specific var → generic RPC_URL → shell env. See Multi-chain operation.
CommandWhat it does
sailor init [dir]Scaffold a new agent project (--template <name>, --chain <id>, --rpc-url <url>, --force to re-init).
sailor updateRe-sync agent tooling files (skills, AGENTS.md, Dockerfile) from the latest template — your code and state are untouched.
CommandWhat it does
sailor keys generateGenerate + encrypt a key (--type agent-wallet or mandate-signer; --passphrase, else SAIL_PASSPHRASE, else prompt; --force).
sailor keys showAddresses of stored keys.
sailor keys export-ciExport key material for CI use.
sailor owner connectOpen the signing server, wait for your wallet, save it as owner (--timeout <seconds>).
sailor owner showShow the saved project owner.
CommandWhat it does
sailor account predictDeterministic SMA address before deploying (--owner, --salt, --chain).
sailor onboardSet up an SMA end to end (--new-sma to create, --sma <address> to reuse, --template <kindOrAddress> to register a permission, --skip-mandate, --salt <n>).
sailor account deploy-chainDeploy the same SMA address on an additional chain (same owner/manager/salt).
sailor account rotate-signerRotate the delegated agent wallet and re-approve mandates (--to, --generate, --skip-reattach, --reattach-only, --list).
sailor scanDiscover the owner’s SMAs, permissions, and local keys (--owner <address>).
sailor statusCurrent account, permission, and session status.
CommandWhat it does
sailor mandate templatesHow to author your own permission + any community-deployed addresses.
sailor mandate deployDeploy a Foundry-compiled permission via the signing UI (--contract <Name> or --artifact <path>, --args/--args-file, --build, --attach --sma <address>).
sailor mandate registerRegister already-deployed permission(s) on an SMA — a comma-separated list is one signature (--label). (sailor mandate attach is a deprecated alias.)
sailor mandate configureConfigure a shared template’s per-account bounds (--template <name> --args-file <path> or --params <hex>; --simulate-only for a gas-free preflight; --force).
sailor mandate simulateProbe a permission’s evaluate() off-chain — no gas, no signing (--target/--calldata/--value/--expect/--label, or --calls <file> for a batch).
sailor mandate signReview and confirm the permissions authorized for your SMA (--yes for CI).
sailor mandate preparePrepare a mandate draft for review/signing in the UI.
sailor mandate revokeRevoke permission(s) — owner-authorized (--address <permissionOrName> or --all).
sailor mandate listPermissions deployed from this project.
sailor mandate updateUpdate tracked-permission metadata (--name, --source-path, --artifact-path).
sailor mandate deploy-cloneDeploy + register a standalone clone permission — currently unavailable (no clone templates deployed); use mandate deploy.
CommandWhat it does
sailor signer startStart the persistent browser-signing daemon (blocks — run in the background).
sailor signer status / stopInspect / stop it. (sailor station … is a deprecated alias.)
CommandWhat it does
sailor runThe agent execution loop (--once for a single tick, --chain <id>).
sailor service installInstall the agent as an OS service that restarts on crash — launchd / systemd / Task Scheduler (--interval <s>, --project <path>, --chain <id>).
sailor service status / stop / uninstall / logsManage the installed service.
sailor trigger githubFire the scaffold’s GitHub Actions agent workflow on demand (--workflow, --ref, --reason, --repo).
sailor session pause / resumeInstantly revoke / restore the agent’s dispatch rights — Safe custody untouched.
CommandWhat it does
sailor ui startLocal dashboard (per-project port in 3333–3999; --expose tailscale serves it HTTPS on your tailnet — never public).
sailor ui stop / statusStop / inspect it. See Dashboard.

Local forks of the real chains, with fake money, on a second dashboard of their own. Requires Foundry (anvil). Full guide: Shipyard.

CommandWhat it does
sailor sandbox startStart the Shipyard dashboard on its own port, rooted at .shipyard/sandbox/ (bare sailor sandbox does the same).
sailor sandbox stopStop the dashboard and its forks, saving chain state so the next start resumes the same world (--keep-forks stops only the dashboard).
sailor sandbox statusShow whether the Shipyard dashboard is running.

sailor shipyard … is an alias of sandbox, so either spelling works.

CommandWhat it does
sailor doctorKernel health, dispatch model, RPC reachability, gas balances (--account <address>).
sailor capabilitiesWhat you can build on this chain — read-only, no gas.
sailor chainsSupported chains + kernel addresses (--verify checks each via eth_getCode).