CLI

slo [folder]            open the TUI
slo run                 run once with no UI, output JSON lines
slo visualize           watch a workflow's sub-agents
slo schedule            run prompts on a timer
slo plugin              install and manage plugins
slo update              update Slo

slo

Opens the TUI in the current folder, or the folder you give it.

slo
slo ~/code/payments
slo --resume refunds
FlagWhat it does
--resume <id or name>Pick up a saved session.
--workspace <file>Load instructions from every folder in a VS Code .code-workspace file. See Sessions & context.
--plugin <path>Load a plugin file. Repeat to load several, in order.
--versionPrint the version and exit.

slo run

Runs one task with no UI. Output is one JSON event per line on stdout. See Headless & server agent for the event format and patterns.

slo run -p "Summarise what changed on this branch"
FlagWhat it does
-p, --promptThe task. Required.
--model <name>Use this model for the run.
--reasoning <level>off, minimal, low, medium, high or xhigh.
--cwd <folder>Folder to work in. Defaults to the current one.
--enable-historySave the session so you can resume it. Off by default for slo run.
--resume <id or name>Continue a saved session. Turns history on.
--session-id <id>Choose the session id. Falls back to SLO_SESSION_ID, then a new id.
--orchestratorLet this run start sub-agents, for dynamic workflows.
--append-system-prompt-file <file>Add extra instructions to the system prompt.
--system-prompt-file <file>Replace the system prompt entirely.
--workspace <file>As for slo.
--plugin <path>As for slo.

--json is accepted but changes nothing. The output is always JSON lines.

Exit codes: 0 completed, 1 failed, 2 aborted (for example by SIGTERM or /workflows abort).

There's no timeout flag. Wrap the command in timeout, or see the timeout settings in Environment variables.

slo visualize

Opens a read-only view of a workflow's sub-agents. It never affects the workflow.

slo visualize --session refunds-review --follow
FlagDefaultWhat it does
-s, --sessionrequiredSession id or name of the orchestrator.
--follow / --no-followfollowKeep updating while the workflow runs.
--refresh-seconds1.0How often to update.
--detail-formattextualtextual, markdown or html.

The keyboard controls are listed in Supervise a dynamic workflow.

slo schedule

Saves a prompt with a trigger and lets your OS run it. See Schedulers for the full walkthrough.

CommandWhat it does
addCreate a schedule. Needs --name, --prompt and one trigger.
editChange a schedule.
listAll schedules, their triggers and last run.
show --name <name>One schedule in detail.
execute --name <name> (or run)Run it now. This is what the OS calls.
install / uninstall --name <name>Register it with launchd or cron, or remove it.
reports --name <name>Past runs.
show-report --name <name> --run-id <id>One past run.
cleanup --name <name> --keep <n>Delete old run records. Keeps 100 by default.

Triggers: --cron "0 18 * * *", --interval-seconds 300 or --run-at 2026-10-01T09:00:00+00:00. Other options: --tz, --cwd, --model, --session-mode fresh|continuous, --session-reference, --coalescing-mode none|latest_by_key, --coalescing-key.

slo plugin

CommandWhat it does
install <url> --yesInstall from https://github.com/owner/repo or https://gitlab.com/owner/repo, pinned to the current commit.
listInstalled plugins, with their pinned commit and source.
upgrade <id>Move a plugin to the latest commit. Restores the old version if anything fails.
uninstall <id>Remove it.

See Plugins.

slo update

slo update                  latest release
slo update --development    latest development build
slo update --ref v0.18.0    a specific tag, branch or commit

Your sessions, settings and skills under ~/.slo are left alone.