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 or post-processes 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.
mel run tool post-processes a node’s finished asset and creates a new active version on the same node. The currently supported tool is remove-background for image nodes and file nodes that contain images. It costs 12 credits.
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 layouts (nodes, edges, and groups) expanded onto the canvas so you can see and edit every node.Templates
Templates are opaque, reusable canvas workflows. Applying one drops a single collapsed box onto the canvas that exposes only its public input/output ports — the internal workflow stays private.mel template apply options:
portId from mel template list and is one of:
- Text —
{ "kind": "text", "portId": "<id>", "text": "…" } - Library asset —
{ "kind": "asset", "portId": "<id>", "assetId": "<id>", "mediaType": "image|video|audio|pdf" }— an asset already in your library (find one withmel asset search) - Media URL —
{ "kind": "assetUrl", "portId": "<id>", "url": "https://…", "mediaType": "image|video|audio|pdf" }— Melius fetches the URL and stores it as an asset, so you can use an image or video already hosted elsewhere without uploading it first
Beta — media-URL (
assetUrl) inputs are rolling out gradually. Reach
out to support if you’d like access.mel bulk-run start <canvasId> --node-ids <groupId> --wait:
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:
--folder-id or --tags — omit it to bring in a whole folder or every tagged asset. The response is { query, total, results }; page through total with --limit and --offset.
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
There is no monthly request quota on any plan, but a burst of requests can still be rate limited. 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).