Documentation

CLI Reference

The CLI operates on the same Spaces, Assets, Variants, Recipes, References, Lineage, Collections, Drafts, Bindings, canvas organization, and permissions as the web app. Use it for terminal automation and caller-local file upload or download.

Commands follow noun verb. Assets and Variants use compact references:

asset:name~prefix
asset:name~prefix@variant

Run makefx --help or makefx <noun> --help for the authoritative commands, flags, model choices, and output options.

Start

npm install -g makefx
makefx login
makefx spaces create "My Game" --init
makefx models list --available

Generate

Generate creates a new Asset:

makefx image generate "A painted market" \
  --name "Market" --type scene -o market.png

makefx video generate "A slow push through the market" \
  --name "Market Push" --type animation -o market.mp4

makefx audio music generate "Warm acoustic theme" \
  --model eleven-music --name "Theme" -o theme.mp3

Regenerate, Retry, and Activate

Regenerate a completed Variant when the result should be different:

makefx image regenerate <variant-ref> "Warmer light" --wait

The successful sibling becomes main by default. Pass --no-activate when the current selection should remain unchanged.

Retry only a failed Variant whose Recipe must stay unchanged:

makefx variants retry <variant-ref>
makefx variants show <variant-ref> --wait

Choose a completed result explicitly:

makefx variants activate <variant-ref>

See comparing and selecting Variants for the human decision behind these actions, and tracking the creative record for how Recipes, References, and Lineage fit together.

Files and organization

makefx assets upload hero.png --name "Hero" --type character
makefx assets download <variant-ref> -o hero.png
makefx collections add <collection-id> <asset-ref>

MCP cannot read caller-local paths, so upload and filesystem output belong in the CLI.

Plan a Draft chain

Drafts plan generation without running it. Create Drafts, then bind one output to another Draft's input:

makefx drafts create "Character" --media image \
  --generator image/pro \
  --recipe '{"operation":"generate","assetType":"character","prompt":"Paint the character"}' \
  --destination new_asset
makefx drafts create "Character Motion" --media video \
  --generator video/seedance-2-frame \
  --recipe '{"operation":"generate","assetType":"animation","prompt":"Animate the character walking into frame"}' \
  --destination new_asset

makefx bindings set <character-motion-draft-ref> start_frame_variant_ref \
  --source draft-output --ref <character-draft-ref>
makefx collections pin <review-collection-id> --x 240 --y 120
makefx spaces lens type

Reuse a completed Variant's Recipe and exact-Variant references:

makefx drafts create --from <variant-ref> --name "Next hero pass"

It creates a new Asset by default; --destination sibling targets the source.

Run an approved workflow

An agent can plan a speech Draft, bind its output into an alignment Draft, and bind the aligned result into a video Draft. It then requests one human checkpoint through MCP:

graph_run({
  space_id: "<space-id>",
  draft_refs: ["<speech-draft-ref>", "<alignment-draft-ref>", "<video-draft-ref>"],
  request_id: "dialogue-scene-07",
  include_upstream: true,
  require_approval: true
})

The canvas shows the pending graph-run summary. Approving it runs the exact request in dependency order; rejecting it starts no generation. The agent polls graph_run_status with the compact run reference after approval. Each completed Draft produces an ordinary Variant with its resolved References, Recipe, and Lineage receipt.

The equivalent CLI workflow is:

makefx drafts run <speech-draft-ref>
makefx graph run <alignment-draft-ref> <video-draft-ref> --upstream --wait
makefx graph status <graph-run-ref> --json

Permanent deletion

makefx variants delete <variant-ref> --yes
makefx assets delete <asset-ref> --yes
makefx spaces delete <space-id> --yes

There is no trash. Activate another Variant before deleting the current one; delete the Asset to remove its only Variant.

Automation

Prefer --json where help advertises it. Persist returned compact references, read accepted Variants until terminal, and do not repeat media creation merely because a local wait ended.