CLI Reference

Operate projects from the terminal

The CLI is the fastest way to initialize projects, render configs, send work, inspect runtime state, and control lifecycle transitions.

Global Runtime Root ​

Most commands read SUZUMIO_ROOT. You can also pass --root to commands that support it.

export SUZUMIO_ROOT=/data/suzumio-runtime
suzumio status
suzumio status --root /data/suzumio-runtime

Command Summary ​

CommandUse when
suzumio config render <file>You want to inspect the final resolved config before initialization.
suzumio init <file>You are creating a new project database and work directories.
suzumio serveYou need HTTP API, controller support routes, WebUI, and scheduler loop.
suzumio start <project>You want the scheduler to start eligible agents.
suzumio send <project> <recipient> <priority> <message...>You want to deliver user input to an agent.
suzumio status [project]You want project and agent status.
suzumio messages <project>You want recent project messages.
suzumio activations <project>You want runner outputs and failures.
suzumio events <project>You want the project event timeline.
suzumio tick [project]You want to run one scheduler pass manually.
suzumio stop <project>You want to stop scheduling.
suzumio approve <project>You want to mark a submitted result completed.

suzumio config render ​

suzumio config render examples/import-demo.yaml

Loads YAML, resolves whole-field imports, applies extends, applies defaults, validates the config, and prints the final YAML. This command supports reviews and debugging.

Common failures:

  • Missing name, task, or agents.
  • Import path not found.
  • Circular import.
  • Unsupported scheduler or backend kind.

suzumio init ​

suzumio init examples/demo.yaml
suzumio init examples/demo.yaml --root /tmp/suzumio-root

Creates a project under SUZUMIO_ROOT, writes source.yaml and resolved.yaml, creates suzumio.sqlite, expands counted agents, creates agent workspaces, and records project.initialized.

Initialization fails if a project with the same name already exists in the selected root.

suzumio serve ​

suzumio serve --host 0.0.0.0 --port 39400
suzumio serve --host 127.0.0.1 --port 39400 --no-scheduler
suzumio serve --host 127.0.0.1 --port 39400 --no-platforms

Starts the HTTP API, controller support routes, WebUI static assets, SSE endpoint, scheduler loop, and configured external platform bridges. Use --no-scheduler if you want to drive scheduling manually with suzumio tick. Use --no-platforms to skip Feishu or other external chat bridges while keeping local APIs available.

FlagDescription
--hostBind address. Use 0.0.0.0 when Docker containers must reach the host.
--portHTTP port. Must match project backend.controllerUrl.
--rootOverride SUZUMIO_ROOT.
--no-schedulerServe API without automatic scheduler ticks.
--no-platformsServe API without connecting configured external platform bridges.

suzumio start ​

suzumio start demo

Sets project status to running and immediately runs one scheduler pass. If agents already have pending signals, activations may start immediately.

suzumio send ​

suzumio send demo pm P1 "Start the project."
suzumio send demo worker-1 P3 "Review artifact art_..."

Creates a direct message from virtual sender user to the recipient, creates a pending message.created signal, and runs one scheduler pass. Priorities are P0, P1, P2, and P3: P0 interrupts and restarts a running target, P1 is delivered at the next tool boundary when possible, P2 waits for the next activation before routine backlog, and P3 is ordinary queued work.

Inspection Commands ​

suzumio status
suzumio status demo
suzumio messages demo --limit 20
suzumio activations demo --limit 10
suzumio events demo --limit 50

Inspection commands read directly from SQLite. They do not wake agents and do not mutate the project except for normal SQLite read access.

suzumio tick ​

suzumio tick
suzumio tick demo

Runs one scheduler pass across all projects or one project. This is useful when the HTTP server is running with --no-scheduler or during debugging.

Lifecycle Commands ​

suzumio stop demo
suzumio approve demo

stop changes project status to stopped. It does not currently remove existing Docker containers. approve changes project status to completed after a submitted report has been reviewed.

Exit Codes and Scripting ​

Commands exit non-zero on validation errors, missing projects, invalid priorities, or store failures. Use config render and status in scripts to check readiness before starting long runs.