Skip to content

Dashboard (local UI)

sailor ui runs a local web dashboard for your project — onboarding, wallet gas balances, mandate health, activity, and owner signing. It reads from the project’s .sail/ directory and talks to your RPC; there is no hosted backend and nothing is sent anywhere.

Terminal window
sailor ui start # start the dashboard (prints its URL)
sailor ui status # is it running, and where
sailor ui stop # stop it
  • Onboarding — a guided path for SMA deployment and first mandate, mirroring the CLI/skills flow.
  • Gas balances — the native-token (gas) balance and top-up status of the owner wallet and the agent wallet, so you can keep them funded to sign and submit. The dashboard does not display the SMA’s token holdings; a View portfolio link opens your SMA on DeBank to review what it holds, and a Manage SMA link opens it in the Safe app.
  • Mandate health — the permissions registered on the SMA and their configured bounds.
  • Activity — the append-only .sail/activity.jsonl feed (dispatches, denials, collections).
  • Owner signing — the browser signing server, where owner/permission-signer EIP-712 signatures happen in your wallet. Sailor never reads the owner key.

Each project gets a deterministic port in 3333–3999 derived from its path — read the URL sailor ui start prints, or .sail/runtime/ui.json; don’t assume 3333. The signing server runs alongside it.

By default the dashboard binds to localhost only. To reach it from another device on your own network, --expose tailscale serves it over HTTPS on your tailnet — it is never exposed publicly:

Terminal window
sailor ui start --expose tailscale