sailor is the operator command surface. Install it with the package and run via npx sailor <command>, or globally:
Terminal window
npminstall-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. gas — capabilities, 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.
Deterministic SMA address before deploying (--owner, --salt, --chain).
sailor onboard
Set 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-chain
Deploy the same SMA address on an additional chain (same owner/manager/salt).
sailor account rotate-signer
Rotate the delegated agent wallet and re-approve mandates (--to, --generate, --skip-reattach, --reattach-only, --list).
sailor scan
Discover the owner’s SMAs, permissions, and local keys (--owner <address>).
How to author your own permission + any community-deployed addresses.
sailor mandate deploy
Deploy a Foundry-compiled permission via the signing UI (--contract <Name> or --artifact <path>, --args/--args-file, --build, --attach --sma <address>).
sailor mandate register
Register already-deployed permission(s) on an SMA — a comma-separated list is one signature (--label). (sailor mandate attach is a deprecated alias.)
sailor mandate configure
Configure 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 simulate
Probe a permission’s evaluate() off-chain — no gas, no signing (--target/--calldata/--value/--expect/--label, or --calls <file> for a batch).
sailor mandate sign
Review and confirm the permissions authorized for your SMA (--yes for CI).
sailor mandate prepare
Prepare a mandate draft for review/signing in the UI.
sailor mandate revoke
Revoke permission(s) — owner-authorized (--address <permissionOrName> or --all).