superplane-cli

Use when working with the SuperPlane CLI to discover integrations, components, and triggers, build or troubleshoot 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", "canvas", "workflow", "CLI", "connect", "integration is required", "execution".

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "superplane-cli" with this command: npx skills add superplanehq/skills/superplanehq-skills-superplane-cli

SuperPlane CLI

Operate a SuperPlane instance through the superplane CLI.

Quick Reference

TaskCommand
Connect to orgsuperplane connect <URL> <TOKEN>
Who am Isuperplane whoami
Check versioning mode`superplane canvases get <canvas_name_or_id> -o json
Set active canvassuperplane canvases active [canvas-id]
List/switch contextssuperplane contexts
List canvasessuperplane canvases list
Create canvassuperplane canvases create <name> then mode-aware update (--draft when versioning is enabled)
Create canvas from YAMLsuperplane canvases create --file canvas.yaml then mode-aware update (--draft when versioning is enabled)
Export canvassuperplane canvases get <name>
Update canvas in versioning-disabled modesuperplane canvases update <name-or-id> --file canvas.yaml
Update draft in versioning-enabled modesuperplane canvases update <name-or-id> --draft --file canvas.yaml
Create change request (versioning enabled)superplane canvases change-requests create [name-or-id] [--version-id <id>] [--title <text>] [--description <text>]
List change requestssuperplane canvases change-requests list [name-or-id] [--status <filter>] [--mine] [--query <text>] [--limit <n>] [--before <rfc3339>]
Approve / unapprove change requestsuperplane canvases change-requests approve <change-request-id> [name-or-id] / superplane canvases change-requests unapprove <change-request-id> [name-or-id]
Publish change requestsuperplane canvases change-requests publish <change-request-id> [name-or-id]
Reject / reopen change requestsuperplane canvases change-requests reject <change-request-id> [name-or-id] / superplane canvases change-requests reopen <change-request-id> [name-or-id]
Resolve conflicted change requestsuperplane canvases change-requests resolve <change-request-id> [name-or-id] --file canvas.yaml [--auto-layout horizontal] [--auto-layout-scope <scope>] [--auto-layout-node <id>]
Auto layout full canvassuperplane canvases update <name-or-id> [--draft] --auto-layout horizontal
Auto layout connected subgraphsuperplane canvases update <name-or-id> [--draft] --auto-layout horizontal --auto-layout-scope connected-component --auto-layout-node <node-id>
Auto layout exact selected setsuperplane 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 providerssuperplane index integrations
Describe a providersuperplane index integrations --name github
List connected integrationssuperplane integrations list
Inspect connected integrationsuperplane integrations get <id>
List integration resourcessuperplane integrations list-resources --id <id> --type <type>
List componentssuperplane index components
Components from providersuperplane index components --from github
Describe a componentsuperplane index components --name semaphore.runWorkflow
List triggerssuperplane index triggers
Triggers from providersuperplane index triggers --from github
Describe a triggersuperplane index triggers --name github.onPush
List secretssuperplane secrets list
Create secretsuperplane secrets create --file secret.yaml
List eventssuperplane events list --canvas-id <id>
Trace event executionssuperplane events list-executions --canvas-id <id> --event-id <eid>
List node executionssuperplane executions list --canvas-id <id> --node-id <nid>
Cancel executionsuperplane executions cancel --canvas-id <id> --execution-id <eid>

Verify CLI Is Installed

Before any CLI operation, confirm the CLI is available:

superplane whoami

If this returns command not found, 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, component names, integration IDs, and config schemas that documentation cannot reliably substitute.

Core Workflow

1. Authenticate

Create a service account in the SuperPlane UI, then:

superplane connect https://superplane.example.com <API_TOKEN>
superplane whoami

1b. Detect Canvas Mode (Required Before Any Update/Change Request Action)

Always determine mode first, then choose update commands.

superplane canvases get <canvas_name_or_id> -o json | jq '.metadata.canvasVersioningEnabled'

Interpretation:

  • true: effective versioning enabled for this canvas. Use superplane canvases update --draft ..., then create/publish via superplane canvases change-requests ....
  • false: effective versioning disabled for this canvas. Use superplane canvases update ... (no --draft) and do not use canvases change-requests.

Behavior-based fallback:

  • --draft cannot be used when effective canvas versioning is disabled => versioning disabled.
  • effective canvas versioning is enabled for this canvas; use --draft => versioning enabled.
  • effective canvas versioning is disabled for this canvas when running canvases change-requests ... => change requests unavailable for this canvas.

Org override rule:

  • If organization versioning is enabled, all canvases are effectively versioned.
  • If organization versioning is disabled, each canvas can still enable/disable versioning independently.

1c. Change Request Lifecycle (Versioning Enabled)

When effective canvas versioning is enabled:

  1. Update the draft version (superplane canvases update --draft ...).
  2. Create a change request from that draft.
  3. Review and collect approvals.
  4. Publish the change request.

Status model:

  • STATUS_OPEN
  • STATUS_REJECTED
  • STATUS_PUBLISHED
  • Conflict is tracked separately via is_conflicted (there is no STATUS_CONFLICTED).

Action rules:

  • approve: only open + non-conflicted.
  • unapprove: only if the current user has an active approval on an open change request.
  • publish: only open + non-conflicted + all configured approver requirements actively approved.
  • reject: allowed for open change requests (including conflicted); invalidates active approvals.
  • reopen: only rejected; recomputes diff/conflicts and invalidates active approvals.
  • resolve: updates the change-request version with a resolved canvas payload.

Commands:

superplane canvases change-requests list [name-or-id] [--status <filter>] [--mine] [--query <text>] [--limit <n>] [--before <rfc3339>]
superplane canvases change-requests get <change-request-id> [name-or-id]
superplane canvases change-requests create [name-or-id] [--version-id <id>] [--title <text>] [--description <text>]
superplane canvases change-requests approve <change-request-id> [name-or-id]
superplane canvases change-requests unapprove <change-request-id> [name-or-id]
superplane canvases change-requests publish <change-request-id> [name-or-id]
superplane canvases change-requests reject <change-request-id> [name-or-id]
superplane canvases change-requests reopen <change-request-id> [name-or-id]
superplane canvases change-requests resolve <change-request-id> [name-or-id] --file <canvas.yaml> [--auto-layout horizontal] [--auto-layout-scope <scope>] [--auto-layout-node <id>]

Notes:

  • name-or-id is optional when an active canvas is set with superplane canvases active.
  • --status supports all, open, conflicted, rejected, published.

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 components            # all component types

Narrow to one provider:

superplane index triggers --from github
superplane index components --from github

Inspect required config fields and payload shapes:

superplane index triggers --name github.onPush
superplane index components --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

Create a blank canvas, then iterate:

superplane canvases create my-canvas
# versioning disabled:
superplane canvases update my-canvas
# versioning enabled:
superplane canvases update my-canvas --draft
superplane canvases change-requests create my-canvas --title "Initial publish"
# if required by approver rules:
superplane canvases change-requests approve <change-request-id> my-canvas
# publish once required approvals are active and the CR is non-conflicted:
superplane canvases change-requests publish <change-request-id> my-canvas
superplane canvases get my-canvas > canvas.yaml
# edit canvas.yaml
# versioning disabled:
superplane canvases update --file canvas.yaml
# versioning enabled:
superplane canvases update my-canvas --draft --file canvas.yaml
superplane canvases change-requests create my-canvas --title "Update canvas"
# if required by approver rules:
superplane canvases change-requests approve <change-request-id> my-canvas
superplane canvases change-requests publish <change-request-id> my-canvas

If you create a canvas from YAML, apply the same rule:

superplane canvases create --file canvas.yaml
# preferred immediately after create (does not require metadata.id in local YAML):
superplane canvases update <name-or-id> [--draft]
# use --file only when your local YAML includes metadata.id:
superplane canvases update --file canvas.yaml

Mode rules:

  • Versioning enabled: superplane canvases update ... must include --draft; then create a change request and publish it to apply live.
  • change-requests publish requires the change request to be open, non-conflicted, and fully approved by configured approver rules.
  • Versioning disabled: superplane canvases update ... updates live directly; canvases change-requests ... is unavailable.
  • Live updates without draft/version are blocked when versioning is enabled.

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 update when no auto-layout flags are provided.
  • Use --auto-layout flags when you need explicit scope/seed-node control.
  • In versioning mode, include --draft on update. Draft changes go live only after canvases change-requests create and canvases change-requests publish.
# 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-layout is required when using --auto-layout-scope or --auto-layout-node.
  • --draft is required when versioning is enabled.
  • 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.
  • Recommended policy for agents:
    • Prefer connected-component for existing/disconnected canvases.
    • Prefer exact-set when the user selected specific nodes.
    • Use full-canvas only when creating from scratch, when the graph is one connected component, or when the user explicitly asks for full-canvas layout.
  • 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.
  • 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 configuration fields are present
  • Edges use the correct output channels
  • No node errorMessage remains (especially "integration is required")
  • No warningMessage about 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.

  1. superplane integrations list — confirm the provider is connected
  2. superplane integrations get <id> — inspect the connection
  3. Add integration.id to the node in the canvas YAML
  4. superplane integrations list-resources --id <id> --type <type> — find valid resource values
  5. superplane canvases update <name-or-id> [--draft] --file canvas.yaml — apply the fix
  6. If --draft was used: superplane canvases change-requests create <name-or-id> --title "Fix integration binding"
  7. If needed: superplane canvases change-requests approve <change-request-id> <name-or-id>
  8. If --draft was used: superplane canvases change-requests publish <change-request-id> <name-or-id>
  9. superplane canvases get <name> — verify errors are cleared

When to Use Other Skills

NeedUse Skill
Design a canvas from requirementssuperplane-canvas-builder
Debug a failed executionsuperplane-monitor

Documentation

For agents that can fetch URLs, the full SuperPlane docs are available in LLM-friendly format:

References

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

superplane-canvas-builder

No summary provided by upstream source.

Repository SourceNeeds Review
General

superplane-monitor

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.

Repository SourceNeeds Review
94.2K159.9K
anthropics
superplane-cli | V50.AI