Command reference
Every sat command, argument and option, generated from the CLI itself.
This page is generated from the command definitions in apps/cli/src, so it always matches the CLI in this release. Run sat <command> --help for the same information in your terminal.
Global options
These work with every command.
| Option | Description | Default |
|---|---|---|
-p, --profile <name> | profile to use (local, staging, prod, or your own) | |
-c, --company <ref> | company name, task prefix or id | |
--api-url <url> | override the profile’s API URL | |
--json | machine-readable output (the API’s JSON) | |
-q, --quiet | only print what was asked for | |
--no-color | disable colours (NO_COLOR is honoured too) |
sat login
Sign in and store a session for the current profile
sat login [options]| Option | Description | Default |
|---|---|---|
--email <email> | account email | |
--password-stdin | read the password from stdin | |
--api-key-stdin | store an API key (read from stdin) instead of signing in |
sat register
Create an account and sign in
sat register [options]| Option | Description | Default |
|---|---|---|
--email <email> | account email | |
--name <name> | your name | |
--password-stdin | read the password from stdin |
sat logout
End this profile’s session (--everywhere ends all of your sessions)
sat logout [options]| Option | Description | Default |
|---|---|---|
--everywhere | also sign out every browser and CLI profile | |
-y, --yes | skip the confirmation for --everywhere |
sat whoami
Show who you are signed in as
sat whoamisat apikey
Manage personal API keys (for runners and CI)
sat apikey create
Create an API key; it is shown once
sat apikey create <name> [options]| Option | Description | Default |
|---|---|---|
--expires-in-days <days> | expire the key after this many days | |
--store | also store it as this profile’s credential |
sat apikey list
List your active API keys
sat apikey listsat apikey revoke
Revoke an API key
sat apikey revoke <name-or-id> [options]| Option | Description | Default |
|---|---|---|
-y, --yes | skip confirmation |
sat profile
Switch between local, staging, prod or your own API
sat profile list
List profiles
sat profile listsat profile use
Make a profile the default
sat profile use <name>sat profile set
Add or change a profile
sat profile set <name> [options]| Option | Description | Default |
|---|---|---|
--api-url <url> | API base URL, e.g. http://localhost:8080 | |
--events-url <url> | origin for the live event stream, when the API URL buffers it |
sat company
Companies you belong to
sat company list
List your companies
sat company listsat company use
Set the default company for the current profile
sat company use <name-or-id>sat company show
Show the current company
sat company showsat company create
Create a company (you become its owner)
sat company create <name> [options]| Option | Description | Default |
|---|---|---|
--mission <text> | what the company is for (- reads stdin) | |
--prefix <PREFIX> | task key prefix, e.g. NF for NF-12 | SAT |
--budget <dollars> | monthly budget in dollars (0 = no limit) | |
--budget-cents <cents> | monthly budget in cents | |
--use | make it the default company for this profile |
sat company edit
Change the current company (owner/admin only)
sat company edit [options]| Option | Description | Default |
|---|---|---|
--name <name> | ||
--mission <text> | - reads stdin | |
--budget <dollars> | ||
--budget-cents <cents> |
sat company members
List the company’s members
sat company memberssat dashboard
What is happening, and does it need you (alias: status)
sat dashboardsat inbox
Everything waiting on you: approvals, blocked tasks, failed runs
sat inbox [options]| Option | Description | Default |
|---|---|---|
--since <hours> | failed runs from the last N hours | 24 |
sat costs
Spend by agent and project against budgets
sat costs [options]| Option | Description | Default |
|---|---|---|
--month <YYYY-MM> | month to report (default: this month) |
sat activity
The audit log: who changed what
sat activity [options]| Option | Description | Default |
|---|---|---|
--entity-type <type> | task | agent | run | goal | project | approval | routine | company | |
--entity-id <id> | ||
--before <iso> | older than this time (for paging) | |
--limit <n> | rows | 50 |
sat events
Stream live company events as JSON lines (pipe into jq)
sat events [options]| Option | Description | Default |
|---|---|---|
--types <list> | only these types, globs allowed: task.*,run.updated |
sat watch
A live dashboard that redraws as things change (Ctrl-C to quit)
sat watchsat agents
Hire, manage and wake agents (alias: agent)
sat agents list
List agents with status and spend
sat agents list [options]| Option | Description | Default |
|---|---|---|
-a, --all | include terminated agents | |
--status <status> | only agents with this status |
sat agents show
Show an agent, its open tasks and recent runs
sat agents show <agent>sat agents hire
Hire an agent
sat agents hire <name> [options]| Option | Description | Default |
|---|---|---|
--request-approval | route the hire through the approvals queue | |
--title <title> | job title, e.g. "Senior Engineer" | |
--role <role> | one of ceo, cto, cmo, cfo, engineer, designer, qa, devops, researcher, writer, support | |
--adapter <adapter> | one of claude_code, codex, cursor, gemini, opencode, http | |
--reports-to <agent> | manager (name or id; "none" for the top of the org) | |
--instructions <text> | standing instructions (- reads stdin, @file reads a file) | |
--capability <list> | capabilities, comma separated (repeatable) | |
--budget <dollars> | monthly budget in dollars (0 = no limit) | |
--budget-cents <cents> | monthly budget in cents | |
--heartbeat-cron <cron> | wake on this schedule, e.g. "*/30 * * * *" ("none" to clear) |
sat agents edit
Change an agent
sat agents edit <agent> [options]| Option | Description | Default |
|---|---|---|
--name <name> | rename | |
--title <title> | job title, e.g. "Senior Engineer" | |
--role <role> | one of ceo, cto, cmo, cfo, engineer, designer, qa, devops, researcher, writer, support | |
--adapter <adapter> | one of claude_code, codex, cursor, gemini, opencode, http | |
--reports-to <agent> | manager (name or id; "none" for the top of the org) | |
--instructions <text> | standing instructions (- reads stdin, @file reads a file) | |
--capability <list> | capabilities, comma separated (repeatable) | |
--budget <dollars> | monthly budget in dollars (0 = no limit) | |
--budget-cents <cents> | monthly budget in cents | |
--heartbeat-cron <cron> | wake on this schedule, e.g. "*/30 * * * *" ("none" to clear) |
sat agents pause
Pause an agent: it stops being woken
sat agents pause <agent>sat agents resume
Resume a paused agent
sat agents resume <agent>sat agents terminate
Terminate an agent; its reports move to its manager and its open runs are cancelled
sat agents terminate <agent> [options]| Option | Description | Default |
|---|---|---|
-y, --yes | skip confirmation |
sat agents wake
Queue a run for an agent now
sat agents wake <agent> [options]| Option | Description | Default |
|---|---|---|
--task <ref> | task to work on, e.g. NF-12 | |
--reason <text> | why it is being woken |
sat org
Show the org chart
sat orgsat tasks
Work items: list, create, move, assign, comment (alias: task)
sat tasks list
List tasks
sat tasks list [options]| Option | Description | Default |
|---|---|---|
--status <list> | filter by status (comma separated, repeatable) | |
--assignee <agent> | filter by assignee | |
--project <project> | filter by project | |
--goal <goal> | filter by goal | |
--parent <task> | subtasks of a task | |
-s, --search <text> | search titles and descriptions | |
--mine | only tasks you created | |
--open | hide done and cancelled tasks | |
--board | show as columns by status | |
--limit <n> | maximum rows | 200 |
sat tasks show
Show a task with its comments and runs
sat tasks show <task>sat tasks create
Create a task
sat tasks create <title> [options]| Option | Description | Default |
|---|---|---|
--description <text> | details (- reads stdin, @file reads a file) | |
--status <status> | backlog | todo | in_progress | in_review | blocked | done | cancelled | |
--priority <priority> | urgent | high | medium | low | none | |
--assignee <agent> | agent name or id ("none" to unassign) | |
--project <project> | project name or id ("none" to clear) | |
--goal <goal> | goal title or id ("none" to clear) | |
--parent <task> | parent task key or id ("none" to clear) | |
--due <date> | due date, e.g. 2026-11-01 ("none" to clear) |
sat tasks edit
Change a task
sat tasks edit <task> [options]| Option | Description | Default |
|---|---|---|
--title <title> | ||
--description <text> | details (- reads stdin, @file reads a file) | |
--status <status> | backlog | todo | in_progress | in_review | blocked | done | cancelled | |
--priority <priority> | urgent | high | medium | low | none | |
--assignee <agent> | agent name or id ("none" to unassign) | |
--project <project> | project name or id ("none" to clear) | |
--goal <goal> | goal title or id ("none" to clear) | |
--parent <task> | parent task key or id ("none" to clear) | |
--due <date> | due date, e.g. 2026-11-01 ("none" to clear) |
sat tasks move
Move a task to a status (backlog, todo, in_progress, in_review, blocked, done, cancelled)
sat tasks move <task> <status>sat tasks assign
Assign a task to an agent ("none" to unassign); assigning wakes the agent
sat tasks assign <task> <agent>sat tasks comment
Comment on a task (- reads the body from stdin)
sat tasks comment <task> <body> [options]| Option | Description | Default |
|---|---|---|
--kind <kind> | comment | question | plan | comment |
sat tasks delete
Delete a task (subtasks move up to its parent)
sat tasks delete <task> [options]| Option | Description | Default |
|---|---|---|
-y, --yes | skip confirmation |
sat goals
The goal tree (alias: goal)
sat goals list
Show goals as a tree with task progress
sat goals listsat goals create
Create a goal
sat goals create <title> [options]| Option | Description | Default |
|---|---|---|
--description <text> | - reads stdin | |
--parent <goal> | parent goal ("none" for a top-level goal) | |
--owner <agent> | owning agent ("none" to clear) | |
--status <status> | planned | active | achieved | abandoned | |
--target <date> | target date ("none" to clear) |
sat goals edit
Change a goal
sat goals edit <goal> [options]| Option | Description | Default |
|---|---|---|
--title <title> | ||
--description <text> | - reads stdin | |
--parent <goal> | parent goal ("none" for a top-level goal) | |
--owner <agent> | owning agent ("none" to clear) | |
--status <status> | planned | active | achieved | abandoned | |
--target <date> | target date ("none" to clear) |
sat goals delete
Delete a goal (child goals move up, tasks are unlinked)
sat goals delete <goal> [options]| Option | Description | Default |
|---|---|---|
-y, --yes | skip confirmation |
sat projects
Projects and their budgets (alias: project)
sat projects list
List projects
sat projects listsat projects show
Show a project and its open tasks
sat projects show <project>sat projects create
Create a project
sat projects create <name> [options]| Option | Description | Default |
|---|---|---|
--description <text> | - reads stdin | |
--repository <url> | git repository the runner clones | |
--budget <dollars> | ||
--budget-cents <cents> |
sat projects edit
Change a project
sat projects edit <project> [options]| Option | Description | Default |
|---|---|---|
--name <name> | ||
--status <status> | active | paused | completed | archived | |
--description <text> | - reads stdin | |
--repository <url> | git repository the runner clones | |
--budget <dollars> | ||
--budget-cents <cents> |
sat routines
Recurring work on a cron schedule (alias: routine)
sat routines list
List routines and when they next run
sat routines listsat routines create
Create a routine
sat routines create <title> [options]| Option | Description | Default |
|---|---|---|
--agent <agent> | agent that does the work | |
--cron <cron> | schedule, e.g. "0 9 * * 1" | |
--description <text> | what to do each time (- reads stdin) | |
--project <project> | ||
--disabled | create it switched off |
sat routines edit
Change a routine
sat routines edit <routine> [options]| Option | Description | Default |
|---|---|---|
--title <title> | ||
--agent <agent> | ||
--cron <cron> | ||
--description <text> | ||
--project <project> |
sat routines enable
Switch on a routine
sat routines enable <routine>sat routines disable
Switch off a routine
sat routines disable <routine>sat routines trigger
Run a routine now: creates its task and queues a run
sat routines trigger <routine>sat routines delete
Delete a routine
sat routines delete <routine> [options]| Option | Description | Default |
|---|---|---|
-y, --yes | skip confirmation |
sat runs
Agent executions and their transcripts (alias: run)
sat runs list
List recent runs
sat runs list [options]| Option | Description | Default |
|---|---|---|
--agent <agent> | ||
--task <task> | task key or id | |
--status <list> | queued, running, succeeded, failed, cancelled (comma separated) | |
--limit <n> | maximum rows | 25 |
sat runs show
Show a run (id or id prefix) and its transcript
sat runs show <run> [options]| Option | Description | Default |
|---|---|---|
--no-transcript | hide the transcript |
sat runs tail
Follow a run’s transcript until it finishes
sat runs tail <run> [options]| Option | Description | Default |
|---|---|---|
--interval <seconds> | poll interval when the live stream is unavailable | 5 |
sat runs cancel
Cancel a queued or running run (a runner executing it stops)
sat runs cancel <run>sat approvals
Decisions waiting for the board (alias: approval)
sat approvals list
List approvals (pending by default)
sat approvals list [options]| Option | Description | Default |
|---|---|---|
--status <status> | pending | approved | rejected | all | pending |
sat approvals approve
Approve (id or id prefix). For budget overrides, --budget sets the new monthly limit
sat approvals approve <approval> [options]| Option | Description | Default |
|---|---|---|
--note <text> | note for the record (- reads stdin) | |
--budget <dollars> | new monthly budget for a budget_override |
sat approvals reject
Reject (id or id prefix)
sat approvals reject <approval> [options]| Option | Description | Default |
|---|---|---|
--note <text> | note for the record (- reads stdin) |
sat runner
Execute queued agent runs on this machine
sat runner start
Claim and execute queued runs until stopped (Ctrl-C finishes cleanly)
sat runner start [options]| Option | Description | Default |
|---|---|---|
--agents <list> | only these agents (names or ids, comma separated) | |
--adapters <list> | only agents using these adapters (default: the ones installed here) | |
--concurrency <n> | runs at once | 2 |
--workdir <dir> | where repositories and scratch folders live (default: $SAT_WORKDIR or ~/.local/share/sat/workspaces) | |
--once | execute what is queued now, then exit | |
--runner-id <id> | identity for leases (default host:pid) | |
--poll <seconds> | safety-net poll interval | 30 |
--on-success <status> | move the task here when a run succeeds: in_review | done | none | in_review |
--simulate | use the built-in echo adapter for every agent (no model calls) | |
--echo-delay <ms> | simulated run length | 1500 |
--echo-fail-rate <0-1> | fraction of simulated runs that fail | 0 |
--claude-permission-mode <mode> | Claude Code permission mode: acceptEdits | bypassPermissions | plan | default | acceptEdits |
--claude-model <model> | model for Claude Code | |
--max-turns <n> | cap agent turns per run (Claude Code) | |
--claude-settings <file-or-json> | extra Claude Code settings for agents, e.g. to let their sandbox reach the SAT API | |
--codex-sandbox <mode> | Codex sandbox: read-only | workspace-write | danger-full-access | workspace-write |
--codex-model <model> | model for Codex | |
--with-scheduler | also run the cron scheduler in this process |
sat runner adapters
Which agent CLIs this machine can run
sat runner adapterssat runner status
Runs in flight and queued, by runner
sat runner statussat scheduler
Fire routines and agent heartbeats on their cron schedules
sat scheduler start
Run the scheduler until stopped (one per company)
sat scheduler start [options]| Option | Description | Default |
|---|---|---|
--timezone <tz> | IANA time zone for cron expressions (default: this machine’s) | |
--expire-interval <seconds> | how often to expire runs whose runner died | 60 |
sat doctor
Check the API, your sign-in, the live stream and agent CLIs
sat doctor [options]| Option | Description | Default |
|---|---|---|
--stream-timeout <seconds> | how long to wait for the live stream | 20 |
sat completion
Print a shell completion script (bash, zsh or fish)
sat completion <shell>