CLI
The shipplane-lite binary acts as both server and client. Once the server is running, you can control workflows from the terminal—useful for quick commands, scripts, and AI agents.
The CLI uses the same HTTP API as the UI and does not access the database directly.
Commands
Running shipplane-lite without a subcommand is equivalent to shipplane-lite serve.
<workflow> is normally the workflow id from your config file, not its database row ID. If no workflow ID matches and the argument contains only digits, the CLI treats it as a row ID.
Running a workflow
Logs stream as tasks produce them, prefixed with the task ID, and a progress line at the bottom tracks how many tasks are done:
The command exits when the run reaches a final status. Its exit code reflects the outcome, so a command such as shipplane-lite run deploy-api && ./notify.sh only sends the notification after a successful run.
Press Ctrl-C once to cancel the run: the CLI sends a cancel request, keeps following until the run settles, then exits 130. Press it twice to detach immediately.
Read and follow logs
Task logs are stored in the run snapshot, so logs works during a run and after it finishes:
With -f, the command prints stored logs, follows new output until completion, and exits with the run's outcome. You can therefore start a run in one process and wait for it in another:
The runner keeps only the most recent logs.maxEntriesPerTask entries per task (default 100), discarding older ones as the run progresses. A long-running task's early output is gone by the time the run finishes, so a logs transcript is not a complete record. Raise the cap in the workflow definition's config.logs.maxEntriesPerTask if you need more history.
Discovering task types
Workflow definitions refer to task types and their parameters. registry reports the types registered on the running server, including custom task types from your config:
Use registry --json to print the raw API response for generators, scripts, or agents.
Server address
The CLI resolves the server address in this order:
If your config uses port 3300, shipplane-lite ls connects to that port without an additional flag. Use --url to connect to a different server for one command:
Because http.addr is a bind address, 0.0.0.0 and :: are rewritten to 127.0.0.1 when building the request URL.
Exit codes
Use from scripts and agents
Output adapts to its destination. In a terminal, the CLI displays color and a live progress line. When piped, it omits color, escape codes, and redrawn frames so programs can process the output:
Errors are written to stderr; task logs are written to stdout.
Editing workflows
The CLI does not provide create or edit commands. Define workflows in your config file and seed them when serve starts, or edit them in the UI.
Restart the server after changing a workflow in your config. You can automate restarts with a file watcher: