skills/superplane-cli/SKILL.md
Use when working with the SuperPlane CLI to discover integrations, actions, and triggers, build or troubleshoot apps and canvases, manage secrets, and monitor executions. Covers authentication, list/get commands, interpreting configuration schemas, wiring channels between nodes, resolving integration binding issues, and inspecting runs. Triggers on "superplane", "app", "canvas", "workflow", "CLI", "connect", "integration is required", "execution".
npx skillsauth add superplanehq/skills superplane-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Operate a SuperPlane instance through the superplane CLI.
| Task | Command |
| --- | --- |
| Connect to org | superplane connect <URL> <TOKEN> |
| Who am I | superplane whoami |
| Set active app | superplane apps active [app-id] |
| List/switch contexts | superplane contexts |
| List apps | superplane apps list |
| Generate starter YAML | superplane apps canvas init |
| Generate from template | superplane apps canvas init --template <name> |
| List canvas templates | superplane apps canvas init --list-templates |
| Create app | superplane apps create <name> then superplane apps canvas update <name> --draft |
| Create app from canvas YAML | superplane apps create --canvas-file canvas.yaml |
| Create app with layout flags | superplane apps create --canvas-file canvas.yaml --canvas-auto-layout horizontal |
| Export canvas | superplane apps canvas get <name> |
| Update canvas | superplane apps canvas update <name-or-id> --draft --file canvas.yaml |
| Auto layout full canvas | superplane apps canvas update <name-or-id> --draft --auto-layout horizontal |
| Auto layout connected subgraph | superplane apps canvas update <name-or-id> --draft --auto-layout horizontal --auto-layout-scope connected-component --auto-layout-node <node-id> |
| Export live console | superplane apps console get <name-or-id> -o yaml > console.yaml |
| Export draft console | superplane apps console get <name-or-id> --draft -o yaml > console.yaml |
| Update console from file | superplane apps console set <name-or-id> -f console.yaml |
| Update console draft only | superplane apps console set <name-or-id> -f console.yaml --draft |
| List app files | superplane apps files tree <name-or-id> |
| Show app file | superplane apps files show <path> <name-or-id> |
| List change requests | superplane apps change-requests list <name-or-id> |
| Create change request | superplane apps change-requests create <name-or-id> |
| 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 --app-id <id> |
| Trace event executions | superplane events list-executions --app-id <id> --event-id <eid> |
| List node executions | superplane executions list --app-id <id> --node-id <nid> |
| Cancel execution | superplane executions cancel --app-id <id> --execution-id <eid> |
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 found from whoami still means the CLI is missing.Create a service account in the SuperPlane UI, then:
superplane connect https://superplane.example.com <API_TOKEN>
superplane whoami
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 apps canvas update <name-or-id> --draft --file canvas.yaml
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.
Generate a starter YAML, then create and iterate:
superplane apps canvas init --output-file canvas.yaml
# or start from a template:
superplane apps canvas init --template health-check-monitor --output-file canvas.yaml
# edit canvas.yaml, then create:
superplane apps create --canvas-file canvas.yaml
# or create a blank canvas and iterate:
superplane apps create my-canvas
superplane apps canvas update my-canvas --draft
superplane apps canvas get my-canvas > canvas.yaml
# edit canvas.yaml
superplane apps canvas update my-canvas --draft --file canvas.yaml
If you create an app from canvas YAML, apps create --canvas-file already sends the full canvas payload. Do not assume a second update is required just to apply the graph:
superplane apps create --canvas-file canvas.yaml
Workflow rules:
superplane apps create --canvas-file canvas.yaml accepts the same resource-style Canvas YAML described in the spec (apiVersion, kind, metadata, spec).superplane apps create, canvas layout flags are prefixed with canvas-: --canvas-auto-layout, --canvas-auto-layout-scope, and repeated --canvas-auto-layout-node.superplane apps canvas update ... only when you are intentionally changing the canvas after create, for example to apply additional edits from a file that includes metadata.id, or to run auto-layout with different flags than the defaults used on create.superplane apps canvas update ... command should include --draft.See Canvas YAML Spec for the full format.
Use superplane apps console to read and replace the app console: panels plus grid layout.
Commands:
# With an explicit app name or id
superplane apps console get <name-or-id>
superplane apps console get <name-or-id> --draft
superplane apps console get <name-or-id> -o yaml > console.yaml
superplane apps console get <name-or-id> --draft -o yaml > console.yaml
superplane apps console set <name-or-id> -f console.yaml
superplane apps console set <name-or-id> --file console.yaml
superplane apps console set <name-or-id> console.yaml
superplane apps console set <name-or-id> -f - < console.yaml
# With the active app from `superplane apps active`
superplane apps console get
superplane apps console set -f console.yaml
superplane apps console set -f console.yaml --draft
Behavior:
get reads the live console by default.get --draft reads the current user's existing draft console. It does not create a draft.set always writes panels and layout to the current user's draft version.set, --draft keeps the operation explicitly draft-only; it does not change the target from live to draft.-o yaml when exporting a file intended for editing/import.See Console YAML Spec for the stable YAML envelope, layout fields, and where to find current widget details.
Use apps canvas update with auto-layout flags:
Default agent behavior:
superplane apps canvas update when no auto-layout flags are provided.--auto-layout flags when you need explicit scope/seed-node control.--draft on every update command in this environment.# connected component around one seed node (recommended default for existing canvases)
superplane apps canvas update <name-or-id> --draft \
--auto-layout horizontal \
--auto-layout-scope connected-component \
--auto-layout-node <node-id>
# full canvas (use sparingly; see policy below)
superplane apps canvas update <name-or-id> --draft --auto-layout horizontal
Rules and behavior:
--auto-layout is required when using --auto-layout-scope or --auto-layout-node.--draft is required on update commands in this environment.horizontal.full-canvas, connected-component.full-canvas.connected-component.connected-component for existing/disconnected canvases.full-canvas only when creating from scratch, when the graph is one connected component, or when the user explicitly asks for full-canvas layout.connected-component + --auto-layout-node.connected-component + repeated --auto-layout-node.full-canvas.superplane secrets create --file secret.yaml
superplane secrets list
superplane secrets update --file secret.yaml
superplane secrets delete <name_or_id>
superplane events list --app-id <id>
superplane events list-executions --app-id <id> --event-id <eid>
Run after every canvas update:
superplane apps canvas get <name>
Check:
configuration fields are presenterrorMessage remains (especially "integration is required")warningMessage about duplicate namesWhen 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 connectionintegration.id to the node in the canvas YAMLsuperplane integrations list-resources --id <id> --type <type> — find valid resource valuessuperplane apps canvas update <name-or-id> --draft --file canvas.yaml — apply the fixsuperplane apps canvas get <name> — verify errors are cleared| Need | Use Skill | | --- | --- | | Design a canvas from requirements | superplane-app-builder | | Debug a failed execution | superplane-monitor |
For agents that can fetch URLs, the full SuperPlane docs are available in LLM-friendly format:
development
Design and build SuperPlane workflow apps from requirements. Translates workflow descriptions into app canvas YAML with triggers, actions, edges, and expressions. Use when the user wants to create a new workflow app, build a canvas, design a pipeline, or wire up actions. Triggers on "build app", "build canvas", "create workflow", "design pipeline", "automate".
development
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".
development
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".
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.