Skip to main content
Run 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:
Every error carries a machine-readable 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 a 429, 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).
Last modified on July 9, 2026