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 loginlumeta 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 creditsOn 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 ./rendersEvery 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
| Option | What it does |
|---|---|
--prompt "..." | The prompt |
--input key=value | Any input; key:=<json> for numbers, true/false and lists |
--input-json '{...}' | Many inputs at once, or @file.json |
--file key=./photo.png | Uploads 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|audio | Instead of a model: your own default model for that kind |
--wait | Waits 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.aiScripts and CI
--jsonprints exactly one JSON document on stdout. Progress, hints and warnings always go to stderr, so stdout stays clean forjq.- Without
--json, stdout is still just the result: an id, links, or saved file paths, one per line. generateis safe to retry by itself: a dropped connection or a busy signal is retried without starting a second paid run.
| Exit code | Means |
|---|---|
0 | OK |
1 | Something went wrong |
2 | The command was written wrong |
3 | Sign-in, plan or permission |
4 | Not enough credits, or a limit was reached |
5 | The generation failed |
6 | --wait ran out of time while it is still running |
130 | Interrupted |
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
| Variable | Default |
|---|---|
LUMETA_API_KEY | None. 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_URL | https://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.