mel --help or mel <group> --help at any time for the same reference in your terminal. Every command that creates a resource auto-generates a UUID if you don’t pass --id, and returns the created object as JSON.
Authentication
Teams
Projects
Canvases
Nodes
Node mutations write directly to the live canvas — changes sync to connected browser clients in real time.mel node create options:
mel node update takes the same options (all optional); geometry must be updated as a full set (--x --y --w --h together).
Edges
Edge type determines data flow — an
image edge passes the source node’s image output to the destination.
Runs
A run generates the output for a single node.
Auto-model resolution. When
--model/--variant are omitted, mel run start resolves the right model from platform defaults — including picking image-to-image when the node has an incoming image edge. --canvas-id is required so the CLI can verify the node and do edge-aware detection.
Bulk runs
Run an entire canvas in dependency order.
Downstream nodes wait for their inputs; if a node fails, its dependents are skipped while independent branches continue.
Presets
Presets are pre-built canvas templates (nodes, edges, and groups).Models
Audio & fonts
Comments
Presence
Show the agent’s live “working here” region on a canvas — visible in real time to everyone with the canvas open.Assets
Search your team’s Files library (past uploads and generations) and place existing assets onto a canvas by reference — no re-upload, no duplicate. Requires a Pro or Enterprise plan.mel asset search options:
mel asset search returns assetIds — feed them straight into mel asset place, then wire the resulting nodes into generations with mel edge create:
Uploads
Upload adds a new local file;mel asset search reuses one already in the team library.
Supported formats: PNG, JPEG, GIF, WebP, AVIF. Video must be generated on the canvas, not uploaded.
Configuration
Shell completion
Generated from the live command tree, so completions never drift. See Installation → Shell completion for one-line setup per shell.
Global flags
Available on every command:Exit codes and errors
mel uses deterministic exit codes so scripts and agents can branch on the result without parsing text:
Errors are structured JSON on stderr:
code, a human-readable message, and usually a suggestion with the exact command to fix it.
Rate limiting
The API is rate limited per plan. On a429, mel prints Rate limited — waiting Ns… to stderr, honors the Retry-After header (or backs off exponentially), and retries — so polling commands like mel run wait ride through a limit. stdout stays clean. After repeated 429s it gives up with a RATE_LIMITED error (exit 1).