Lumeta from your terminal

Local files in, finished files out. The same account, models, credits, Shelf and projects you use on the web, and everything you make shows up in your Lumeta library with a small CLI tag. Needs Node.js 20 or newer and a Pro and Ultimate plan.

Almost here. The CLI is built and tested, and goes up on npm soon. This page shows how it works, so you are ready the day it lands. Until then, everything below is also possible with the API or from your AI assistant.

Install and sign in

npm install -g @lumeta/cli
lumeta login

lumeta login opens your browser. Press Allow and you're done: the CLI keeps itself signed in, and it shows up as "Lumeta CLI" under Account → Developer, where you can disconnect it any time.

For CI, servers and containers, make an API key on that same page and put it in the environment. A key in LUMETA_API_KEY always wins over a saved sign-in, so nothing reads a home folder in CI:

export LUMETA_API_KEY=lm_live_...
lumeta credits

On a machine with no browser, lumeta login --with-key saves a key instead (paste it at the prompt, or pipe it in).

Making things

lumeta models                                   # what you can run, with starting prices
lumeta models --task "animate a product photo"  # adds a recommendation
lumeta model nitron-turbo                       # one model's inputs, defaults and price
lumeta estimate nitron-turbo --prompt "slow dolly in" --file image=./shoe.png
lumeta generate nitron-turbo --prompt "slow dolly in" --file image=./shoe.png --wait --out ./renders

Every model names its inputs its own way (image, image_urls, input_image and so on), so look at lumeta model <slug> first. estimate is free and shows the exact price.

No model in mind? --kind image, --kind video or --kind audio runs the model your account opens with on the web for that kind:

lumeta generate --kind image --prompt "a red panda astronaut, studio light" --wait --out .

Generate options

OptionWhat it does
--prompt "..."The prompt
--input key=valueAny input; key:=<json> for numbers, true/false and lists
--input-json '{...}'Many inputs at once, or @file.json
--file key=./photo.pngUploads a local file into a media input
--shelf key="Blue Hat"Uses something on your Shelf, by the name you gave it
--kind image|video|audioInstead of a model: your own default model for that kind
--waitWaits and prints the result links
--out <folder or file>Downloads the results (waits too)
--max-credits <n>Refuses, spending nothing, if the run would cost more
--project <id>Files the run in a project (default: your current one)
--idempotency-key <key>Makes your own retries safe: the same key returns the first run

A media input also takes file_<id> (from lumeta upload), shelf_<id>, gen_<id>#<n> (output n of an earlier run, counting from 0), voice_<id> or an https:// link. Long videos keep running if you stop waiting: lumeta generations get gen_123 --wait picks them back up.

Your library

lumeta upload ./a.png ./b.mp4                 # prints file ids
lumeta shelf search "blue hat"                # things you named on your Shelf
lumeta shelf add gen_123#0 --name "Blue Hat spin"
lumeta generations list --origin cli
lumeta projects list
lumeta voices                                 # your own cloned voices
lumeta open gen_123                           # see it on lumeta.ai

Scripts and CI

  • --json prints exactly one JSON document on stdout. Progress, hints and warnings always go to stderr, so stdout stays clean for jq.
  • Without --json, stdout is still just the result: an id, links, or saved file paths, one per line.
  • generate is safe to retry by itself: a dropped connection or a busy signal is retried without starting a second paid run.
Exit codeMeans
0OK
1Something went wrong
2The command was written wrong
3Sign-in, plan or permission
4Not enough credits, or a limit was reached
5The generation failed
6--wait ran out of time while it is still running
130Interrupted

Agent skills

Skills teach Claude Code, Cursor and Codex to use the CLI well: they look up each model's inputs live, check the price, and save results by name. One command adds them:

npx skills add lumeta-ai/skills
  • lumeta-generate: make and edit images, video, speech, music and sound
  • lumeta-product-shots: one product photo in, a ready set out (cutout, studio, lifestyle, store squares, a short video)
  • lumeta-faceless-video: a narrated short from a topic or script, with voiceover, scenes, captions and music
  • lumeta-thumbnail: three YouTube thumbnail ideas with short, readable text
  • lumeta-voice: text to speech in 50+ languages, voice changing, and cloning a voice you have permission to use
  • lumeta-shelf-curator: keeps your Shelf named and tidy, so "animate my Blue Hat" just works

Working in a chat app instead of a terminal? The AI assistant connector needs no install at all.

Settings

VariableDefault
LUMETA_API_KEYNone. When set, it is used for every request.
LUMETA_CONFIG_DIR%APPDATA%\lumeta on Windows, $XDG_CONFIG_HOME/lumeta or ~/.config/lumeta elsewhere
LUMETA_API_URLhttps://api.lumeta.ai

The saved sign-in is credentials.json in that folder, readable only by you. lumeta logout deletes it and disconnects this computer. Help for any command: lumeta <command> --help.