superplane-cli
SuperPlane CLI
Operate a SuperPlane instance through the superplane CLI.
Quick Reference
| Task | Command |
|---|---|
| Connect to org | superplane connect <URL> <TOKEN> |
| Who am I | superplane whoami |
| Set active canvas | superplane canvases active [canvas-id] |
| List/switch contexts | superplane contexts |
| List canvases | superplane canvases list |
| Generate starter YAML | superplane canvases init |
| Generate from template | superplane canvases init --template <name> |
| List canvas templates | superplane canvases init --list-templates |
| Create canvas | superplane canvases create <name> then superplane canvases update <name> --draft |
| Create canvas from YAML | superplane canvases create --file canvas.yaml |
| Export canvas | superplane canvases get <name> |
| Update canvas | superplane canvases update <name-or-id> --draft --file canvas.yaml |
| Auto layout full canvas | superplane canvases update <name-or-id> --draft --auto-layout horizontal |
| Auto layout connected subgraph | superplane canvases update <name-or-id> --draft --auto-layout horizontal --auto-layout-scope connected-component --auto-layout-node <node-id> |
| Auto layout exact selected set | superplane canvases update <name-or-id> --draft --auto-layout horizontal --auto-layout-scope exact-set --auto-layout-node <node-a> --auto-layout-node <node-b> |
| List available providers | superplane index integrations |
| Describe a provider | superplane index integrations --name github |
| List connected integrations | superplane integrations list |
| Inspect connected integration | superplane integrations get <id> |
| List integration resources | superplane integrations list-resources --id <id> --type <type> |
| List actions | superplane index actions |
| Actions from provider | superplane index actions --from github |
| Describe an action | superplane index actions --name semaphore.runWorkflow |
| List triggers | superplane index triggers |
| Triggers from provider | superplane index triggers --from github |
| Describe a trigger | superplane index triggers --name github.onPush |
| List secrets | superplane secrets list |
| Create secret | superplane secrets create --file secret.yaml |
| List events | superplane events list --canvas-id <id> |
| Trace event executions | superplane events list-executions --canvas-id <id> --event-id <eid> |
| List node executions | superplane executions list --canvas-id <id> --node-id <nid> |
| Cancel execution | superplane executions cancel --canvas-id <id> --execution-id <eid> |
Verify CLI Is Installed
Before any CLI operation, confirm the CLI binary is available without requiring network access:
command -v superplane
If this does not print a path, the CLI is not installed. Stop and tell the user:
The SuperPlane CLI is not installed. Install it from https://docs.superplane.com/installation/cli and then re-run this task.
Do not attempt to install the CLI on behalf of the user. Do not continue with doc-based guesswork — the CLI provides exact trigger names, action names, integration IDs, and config schemas that documentation cannot reliably substitute.
Only after confirming the binary exists should you verify the session:
superplane whoami
Interpret failures carefully:
command not foundfromwhoamistill means the CLI is missing.- Authentication, DNS, timeout, or connection errors mean the CLI exists but the current session cannot reach SuperPlane yet. In that case, tell the user the CLI is installed but the session/network/auth is not working, and ask them to connect or allow network access as needed.
Core Workflow
1. Authenticate
Create a service account in the SuperPlane UI, then:
superplane connect https://superplane.example.com <API_TOKEN>
superplane whoami
1b. Apply Canvas Changes as Drafts
Versioning is always on in this environment. Do not branch on a canvas mode flag; use the draft update path for every canvas edit.
superplane canvases update <name-or-id> --draft --file canvas.yaml
2. Discover What Exists
Run these first to understand what's available:
superplane index integrations # available providers
superplane integrations list # connected instances in this org
superplane index triggers # all trigger types
superplane index actions # all action types
Narrow to one provider:
superplane index triggers --from github
superplane index actions --from github
Inspect required config fields and payload shapes:
superplane index triggers --name github.onPush
superplane index actions --name semaphore.runWorkflow
List runtime options for integration-resource fields (e.g., repos, projects):
superplane integrations list-resources --id <integration-id> --type <type> --parameters key1=value1,key2=value2
Use superplane integrations list first to find valid integration IDs.
3. Build a Canvas Incrementally
Generate a starter YAML, then create and iterate:
superplane canvases init --output-file canvas.yaml
# or start from a template:
superplane canvases init --template health-check-monitor --output-file canvas.yaml
# edit canvas.yaml, then create:
superplane canvases create --file canvas.yaml
# or create a blank canvas and iterate:
superplane canvases create my-canvas
superplane canvases update my-canvas --draft
superplane canvases get my-canvas > canvas.yaml
# edit canvas.yaml
superplane canvases update my-canvas --draft --file canvas.yaml
If you create a canvas from YAML, create --file already sends the full canvas payload. Do not assume a second update is required just to apply the graph:
superplane canvases create --file canvas.yaml
Workflow rules:
superplane canvases create --file canvas.yamlaccepts the same resource-style Canvas YAML described in the spec (apiVersion,kind,metadata,spec).- Run a follow-up
superplane canvases update ...only when you are intentionally changing the canvas after create, for example to apply additional edits from a file that includesmetadata.id, or to run auto-layout with different flags than the defaults used on create. - In this environment, every
superplane canvases update ...command should include--draft.
See Canvas YAML Spec for the full format.
Auto Layout via CLI
Use canvases update with auto-layout flags:
Default agent behavior:
- Auto layout is applied by default on
superplane canvases updatewhen no auto-layout flags are provided. - Use
--auto-layoutflags when you need explicit scope/seed-node control. - Include
--drafton every update command in this environment.
# connected component around one seed node (recommended default for existing canvases)
superplane canvases update <name-or-id> --draft \
--auto-layout horizontal \
--auto-layout-scope connected-component \
--auto-layout-node <node-id>
# exact node set only (best when the user selected nodes)
superplane canvases update <name-or-id> --draft \
--auto-layout horizontal \
--auto-layout-scope exact-set \
--auto-layout-node <node-a> \
--auto-layout-node <node-b>
# full canvas (use sparingly; see policy below)
superplane canvases update <name-or-id> --draft --auto-layout horizontal
Rules and behavior:
--auto-layoutis required when using--auto-layout-scopeor--auto-layout-node.--draftis required on update commands in this environment.- Supported algorithm:
horizontal. - Supported scopes:
full-canvas,connected-component,exact-set. - Default scope behavior:
- If no seed nodes are provided: behaves like
full-canvas. - If seed nodes are provided and scope omitted: behaves like
connected-component.
- If no seed nodes are provided: behaves like
- Recommended policy for agents:
- Prefer
connected-componentfor existing/disconnected canvases. - Prefer
exact-setwhen the user selected specific nodes. - Use
full-canvasonly when creating from scratch, when the graph is one connected component, or when the user explicitly asks for full-canvas layout.
- Prefer
- Scope selection default:
- If a changed/selected node ID is known, use
connected-component+--auto-layout-node. - If a set of changed node IDs is known, use
exact-set+ repeated--auto-layout-node. - If no node IDs are available, use
full-canvas.
- If a changed/selected node ID is known, use
- Positioning is anchor-preserving: the laid-out region keeps its top-left anchor relative to current canvas coordinates to avoid large jumps.
4. Manage Secrets
superplane secrets create --file secret.yaml
superplane secrets list
superplane secrets update --file secret.yaml
superplane secrets delete <name_or_id>
5. Monitor Runs
superplane events list --canvas-id <id>
superplane events list-executions --canvas-id <id> --event-id <eid>
6. Troubleshooting Checklist
Run after every canvas update:
superplane canvases get <name>
Check:
- All required
configurationfields are present - Edges use the correct output channels
- No node
errorMessageremains (especially "integration is required") - No
warningMessageabout duplicate names - Expressions reference existing node names (case-sensitive)
Resolving "integration is required"
When a field type is integration-resource (like repository or project), the node needs a connected integration instance.
superplane integrations list— confirm the provider is connectedsuperplane integrations get <id>— inspect the connection- Add
integration.idto the node in the canvas YAML superplane integrations list-resources --id <id> --type <type>— find valid resource valuessuperplane canvases update <name-or-id> --draft --file canvas.yaml— apply the fixsuperplane canvases get <name>— verify errors are cleared
When to Use Other Skills
| Need | Use Skill |
|---|---|
| Design a canvas from requirements | superplane-canvas-builder |
| Debug a failed execution | superplane-monitor |
Documentation
For agents that can fetch URLs, the full SuperPlane docs are available in LLM-friendly format:
- Compact index: https://docs.superplane.com/llms.txt
- Full content: https://docs.superplane.com/llms-full.txt
References
- Canvas YAML Spec — Full YAML format with examples
More from superplanehq/skills
superplane-monitor
Monitor and debug SuperPlane workflow executions. Inspect runs, diagnose failures, and manage execution queues. Use when a workflow fails, an execution is stuck, or the user wants to check run status. Triggers on "debug", "failed", "failure", "execution", "output channel", "passed but failed", "run status", "stuck", "queue", "troubleshoot".
62superplane-canvas-builder
Design and build SuperPlane workflow canvases from requirements. Translates workflow descriptions into canvas YAML with triggers, actions, edges, and expressions. Use when the user wants to create a new workflow, build a canvas, design a pipeline, or wire up actions. Triggers on "build canvas", "create workflow", "design pipeline", "automate".
61superplane-troubleshoot
Diagnose and fix SuperPlane canvas and execution problems using decision-tree troubleshooting. Covers canvas won't activate, events not triggering executions, nodes stuck in pending, expression errors, merge deadlocks, and integration failures. Use when something isn't working, a workflow is broken, or the user says "it's not running", "stuck", "broken", "why didn't it trigger".
1superplane-integrations
Discover, connect, and configure SuperPlane integrations. Covers the full lifecycle from listing available providers to binding integration instances to canvas nodes and resolving integration-resource fields. Use when connecting a new integration, troubleshooting "integration is required" errors, listing resources for a connected integration, or selecting the right provider for a workflow.
1superplane-expressions
Write and debug SuperPlane expressions using the Expr language. Covers node references with $['Node Name'], root(), previous(), string interpolation inside {{ }}, type coercion, and operators. Use when building expressions in canvas node configuration, debugging "expression error" failures, referencing upstream payloads, or working with Expr syntax.
1