NodaroAccount
Nodaro Docs
DocumentationNode ReferenceModelsTemplatesAI Agents (MCP)DevelopersSelf-hostingResearchCompare
CLI

Commands

Every core Nodaro CLI command with its options, for projects, workflows, apps, nodes, models, presets, palettes, jobs, gallery, webhooks, billing and Recast.

The core Nodaro CLI commands manage projects and workflows, run published apps and single nodes, and inspect executions and jobs. This page lists each of them with its options. Commands for assets, media and workspaces have pages of their own, listed in the first table.

Every example assumes you have installed the CLI and signed in.

Command groups

GroupWhat it doesWhere it is documented
authSign in, show and remove profilesCLI
projectsCreate, read, update and delete projectsThis page
sessionsGeneration sessions inside projectsThis page
workflowsManage, export, import, run and share workflowsThis page
appsBrowse and run published appsThis page
nodesList node types and run a single nodeThis page
modelsBrowse the model catalog and price identifiersThis page
billingPlans and prices, your subscription, your credit usage and historyThis page
pickersRead picker catalogs and fill pickers from a descriptionThis page
presetsYour node presets, favorites and folders, and the built-in catalogThis page
palettes, moodboardsYour color palettes and moodboards for Generate ImageThis page
catalogMaintain a deployment's catalog packs, offlineThis page
executions, jobsInspect, filter, rate and cancel runsThis page
galleryThe public gallery and your favoritesThis page
webhooksEndpoints Nodaro calls when a job endsThis page
video-proStop and continue Generate Video Pro runsThis page
promptTurn a rough idea into an optimized promptThis page
shotsCreate and read shot share recordsThis page
recastPlan and render a Recast run, or import a scriptThis page
trendsRun a ready-made Nodaro Motion recipe with your own picturesThis page
cast-swapFinish a Nodaro Motion Prism draft at Full QualityThis page
characters, locations, objectsManage assets and generate their pictures and motionAsset commands
voice, media, audio, editRevoice, caption, compose and edit mediaMedia and voice commands
org, workspaceOrganizations, invitations, workspaces and usage reportsWorkspaces and organizations

Options every command accepts

  • --profile <name> runs the command with a saved profile instead of the default one.
  • --json prints machine-readable output, on every command that reads data. See Output and exit codes.
  • --workspace <id> is a global option. It sets the workspace for this command only. See Workspaces and organizations.
  • -v or --version prints the CLI version.

In the synopses below, <value> is a value you supply, [...] is optional and a|b means one of the listed values.

Projects

nodaro projects list [--json]
nodaro projects get <id> [--json]
nodaro projects create --name <name> [--description <desc>] [--json]
nodaro projects update <id> [--name <name>] [--description <desc>] [--json]
nodaro projects delete <id> [--json]

Sessions

A generation session groups single generations inside a project. Its items are links to your jobs, not copies. See client.sessions.

nodaro sessions list [--project <id>] [--tool <tool>] [--archived] [--limit <n>] [--cursor <c>] [--json]
nodaro sessions get <id> [--json]
nodaro sessions items <id> [--limit <n>] [--cursor <c>] [--json]
nodaro sessions create --tool <tool> [--project <id>] [--title <title>] [--json]
nodaro sessions update <id> [--title <title> | --untitled] [--archive | --unarchive] [--cover <jobId> | --auto-cover] [--json]
nodaro sessions import <id> --jobs <id,id,...> [--json]
nodaro sessions remove <id> <jobId> [--json]
nodaro sessions delete <id> [--json]
  • import links jobs into the session. It is all or nothing: one job that is not yours fails the whole call.
  • remove removes the link only. The job stays, and so do other sessions that hold it.
  • delete deletes the session. Its jobs are kept.
  • update --cover picks one of the session's items to lead its previews. --auto-cover goes back to the newest items.

Workflows

nodaro workflows list --project <projectId> [--json]
nodaro workflows get <id> [--json]
nodaro workflows create --project <projectId> --name <name> [--file bundle.json] [--json]
nodaro workflows update <id> [--name <name>] [--file nodes-edges.json] [--json]
nodaro workflows delete <id> [--json]
nodaro workflows export <id> [--with-assets] [--output bundle.json]
nodaro workflows import <file> --project <projectId> [--json]
nodaro workflows run <id> [--watch] [--node n1 n2 ...] [--json]
nodaro workflows run <id> --continue-from <executionId> --from-failed [--node n1 n2 ...] [--idempotency-key <key>] [--watch]
nodaro workflows run <id> --continue-from <executionId> --node n1 n2 ... [--override n1.quality=final ...] [--watch]
nodaro workflows run <id> --next <json|file|-> [--idempotency-key <key>] [--watch]
nodaro workflows render-final <id> --from <executionId> [--render <nodeId>] [--estimate] [--watch] [--json]
OptionWhat it does
create --fileCreates the workflow from an exported workflow bundle.
update --fileWrites the nodes, edges and settings in a JSON file to the workflow.
export --with-assetsAdds the character, object and location data the workflow uses to the bundle.
export --outputWrites the bundle to a file instead of printing it.
run --nodeRuns only the listed node ids, separated by spaces.
run --watchFollows the execution until it finishes.
run --continue-from --from-failedContinues a failed run from where it stopped. Without --node, it considers the nodes the first run was started on, plus every node left failed. With --node, every node named counts: one that no run of the chain ever ran runs and is charged. A source, a trigger or a skipped node never runs. See Continue a failed run.
run --continue-from --nodeRuns only the named nodes, continuing a completed run. Every other node hands on that run's results.
run --overrideA per-node setting for this run only, written nodeId.field=value. Repeat it for more settings.
run --idempotency-keySent as the Idempotency-Key header (8 characters or more). The same key twice starts one run.
run --nextSends the next of a continuation_preview_pending answer exactly as given. A refused --from-failed prints the command that finishes the held run.
render-finalRenders a run that stopped at a Preview at Final, then runs every node after it, continuing that run. --render defaults to the workflow's only render. --estimate quotes the nodes and credits and runs nothing.

The bundle format is the same one the editor exports. See Import and export workflows.

Share and move workflows

These commands work on instances with organizations and workspaces.

nodaro workflows share <id> [--visibility workspace|private] [--json]
nodaro workflows move <id> --project <projectId> [--json]
nodaro workflows shared-with-me [--json]
nodaro workflows mcp-conversations [--month YYYY-MM] [--source claude,claude-code,chatgpt] [--json]
nodaro workflows collaborators list <id> [--json]
nodaro workflows collaborators add <id> (--user <userId> | --email <email>) --role viewer|editor [--json]
nodaro workflows collaborators update <id> <userId> --role viewer|editor [--json]
nodaro workflows collaborators remove <id> <userId> [--json]
  • share sets who in the workspace can see the workflow. The default visibility is workspace.
  • collaborators add --email matches the address of any Nodaro account, whatever its organization. An address with no account answers 404.
  • mcp-conversations lists your MCP conversations of one month, each a workflow an assistant built. The default month is the latest month that has any. --source keeps only some assistants. See MCP conversations become workflows.
  • move files the workflow in another project. A move to another workspace removes the workflow's collaborators, and the result names who lost access.

Apps

An app is a workflow wrapped in a curated form of inputs and outputs. See Apps.

nodaro apps list [--search <query>] [--limit <n>] [--cursor <token>] [--category <slug>]
nodaro apps get <slug>                                   # input schema and outputs
nodaro apps run <slug> --input prompt="..." [--watch]
nodaro apps run <slug> --params-file inputs.json [--watch]
nodaro apps run <slug> --input prompt="..." --override <nodeId>.<field>=<value>
nodaro apps runs <slug> [--limit <n>] [--cursor <token>] [--json]   # your past runs
nodaro apps run-get <slug> <runId>
nodaro apps run-retry <slug> <runId> [--dry-run] [--app-version <n>] [--watch] [--json]
  • apps list returns up to 50 apps per page. Pass the --cursor from one page to get the next.
  • apps get shows the app's input names. Use them as the keys of --input.
  • --input sets one app input. Repeat it for each input, or put all of them in a JSON file with --params-file.
  • apps run-retry retries a failed run from where it stopped. Only the steps it did not complete run, and only those are charged. Every step it completed hands on its result. It runs the version the run ran, with the inputs the run applied, and takes no inputs of its own. See Retry a failed run.
  • --dry-run lists the steps the Retry would run and what it would charge, and starts nothing.
  • --app-version is the app version you expect the Retry to run. The default is the app's latest. When the app changed since the run, the Retry is refused with app_run_version_changed. The CLI then prints both ways on: start over with nodaro apps run, or continue on the run's own version with --app-version <that version>. A run that was stopped rather than failing is started over.
  • --override sets a raw node field for this run only, as <nodeId>.<field>=<value>. It reaches fields the app does not expose, such as promptPrefix. See Prompt pre and post text.

An override can never change where an outbound node sends or fetches, such as a Webhook Output address. The run is refused with locked_field instead.

Nodes

nodaro nodes list [--category <category>] [--json]
nodaro nodes get <type>                                  # full input schema
nodaro nodes run <type> --param prompt="..." --param provider=flux [--watch]
nodaro nodes run <type> --params-file body.json [--watch] [--poll-interval 1000]
nodaro nodes run generate-image --param prompt="..." [--count 1-4] [--models <id,id,...>] [--watch]
  • --category is one of input, parameter, ai-image, ai-video, ai-audio, ai-text, processing, composition, output, control, entity, trigger or utility.
  • nodes get prints the input schema of one node type: the fields --param accepts.
  • nodes run posts to the node's own route, POST /v1/<type> for most node types. Some node types, such as llm-chat and the Suno nodes, have a route of their own, and the CLI uses it for you. A node type that cannot run on its own, such as modify-image or paint-mask, fails before the API is called, and the message names what to run instead. See Run nodes.
  • --watch polls the job until it finishes, when the response has a job id. --poll-interval sets the polling interval in milliseconds. The default is 2000.

The syntax of --param and --params-file is on Parameters and input files.

For example, Video Depth turns a clip into a depth video, near bright and far dark:

nodaro nodes run video-depth --param videoUrl=https://cdn.example.com/clip.mp4 --param colormap=turbo --watch

Several images in one call

On generate-image only, --count <n> makes 1 to 4 images, each its own job. --models a,b runs the same request on 2 to 4 image models instead of provider. With both, --count applies per model, up to 8 images. The batch is checked against your balance and charged as a whole or not at all.

nodaro nodes run generate-image --param prompt="a lighthouse at dusk" --count 4 --watch
nodaro nodes run generate-image --param prompt="a lighthouse at dusk" --models gpt-image-2,flux-2-max --count 2 --watch

The CLI prints every job id, grouped by model, and the batch id. --watch follows every job until each one settles. It exits with 0 when all completed, 2 when any failed or was cancelled, and 3 when the rest completed and some wait for review. --json --watch prints every final status. The flags win over count and models in --param or --params-file.

Models

nodaro models list [--kind image|video|audio] [--mode <mode>] [--family <vendor>] [--featured] [--json]
nodaro models cost <id…> [--json]
  • --mode filters by operation, such as t2i, i2v, t2v or tts.
  • --family filters by model maker, such as Google or Bytedance.
  • --featured shows featured models only.

The table shows each model's id, kind, family, maker, modes and credit tiers. The maker is the company that made the model, or - for a model that the instance offers under its own label. The table also marks featured models, and the model families for which Nodaro has sourced prompt guidance. --json returns the full capability sheets, credit pricing and prompt tips. It also returns each model's maker as { id, name }, absent on an own-label model, and the maker's logoUrl, which is null when the instance publishes no mark. Browse the same catalog in Models.

models cost prints what each identifier is charged, from POST /v1/credits/model-costs. An identifier is a model id, a credit id, or a metered LLM price key, <feature>:<model>[:direct | :effort-<level>]. A metered LLM call is charged for the tokens it uses, so its figure is an estimate and prints as ≈N. An identifier with no price prints - and the reason. See LLM calls.

Billing

These commands read plans and prices, your subscription, and your credit usage and history. Buying and changing a plan stay in the Nodaro app.

nodaro billing plans [--base-url <url>] [--json]
nodaro billing subscription [--json]
nodaro billing account [--json]
nodaro billing surface [--base-url <url>] [--json]
nodaro billing summary [--since <when>] [--until <when>] [--bucket day|week|month] [--json]
nodaro billing history [--kind <k>] [--model <id>] [--since <iso>] [--until <iso>] [--search <words>] [--limit <n>] [--cursor <c>] [--csv] [--json]
CommandWhat it shows
billing plansThe plans and credit packs on sale, with their prices. Nodaro Cloud only. No sign-in is needed.
billing subscriptionYour subscription, and the tier your account's entitlements follow. Nodaro Cloud only.
billing accountYour plan and balance, as the deployment's billing provider reports them, in its unit.
billing surfaceHow the deployment bills: whether it meters usage, and the unit costs are shown in. No sign-in is needed.
billing summaryYour credit usage over a period, the last 30 days by default: totals, by model, by category, over time, by session and by workflow. Nodaro Cloud only.
billing historyEvery movement of your balance, newest first, with the balance after each. --csv prints the whole filtered history as CSV. Nodaro Cloud only.

plans and surface send no credential. They ask the instance in --base-url, else the profile's instance, else https://app.nodaro.ai. plans and subscription answer 404 on a self-hosted instance, which has no billing. See client.billing for the fields, and Usage summary and Every movement of your balance for what summary and history read.

Pickers

Pickers are the Creative Controls nodes, such as Mood and Framing. These commands read their catalogs of valid values. See Picker catalogs.

nodaro pickers list [--json]
nodaro pickers get <nodeType> [--full] [--category <c>] [--field <f>] [--json]
nodaro pickers analyze "<text>" [--target <types>] [--instructions <text>] [--model <id>] [--effort <level>] [--json]
Command or optionWhat it does
pickers listLists every picker node type, its number of options, and how many options have a picture.
pickers getReturns one catalog. Each option carries id, label, category, term, icon and, when it has a picture, imageUrl.
--fullAdds each option's description and the prompt fragment it adds.
--categoryFilters a single-dimension picker to one category.
--fieldReturns one dimension of a multi-dimension picker, such as shotSize of Framing.
pickers analyzeAI Fill: chooses picker values from a free-text description. It is an LLM call, billed in credits.
--targetA comma-separated list of picker node types to fill. The default is every picker that can be analyzed.

term is the short professional phrase that Compact hint mode adds to a prompt. It is empty for a no-op option such as auto or none. Person and Styling also return sections: their topics, each with a round picture.

Presets

A preset is a node's saved settings. These commands manage your presets, your favorites and your folders, and read the built-in catalog. See Presets.

nodaro presets list [--node-type <type>] [--factory [--base-url <url>]] [--json]
nodaro presets create --node-type <type> --name <name> (--data <json> | --data-file <path|->) [--description <text>] [--group <id>] [--tag <t>]... [--preview-url <url>] [--json]
nodaro presets update <id> [--name <name>] [--description <text>] [--data <json> | --data-file <path|->] [--group <id> | --no-group] [--tag <t>]... [--preview-url <url> | --no-preview-url] [--expected-updated-at <iso>] [--json]
nodaro presets delete <id> [--expected-updated-at <iso>] [--json]
nodaro presets export [--node-type <type>] [--output <file>]
nodaro presets import <file|-> [--json]
nodaro presets favorites --node-type <type> [--json]
nodaro presets favorite <presetId> --node-type <type> [--json]
nodaro presets unfavorite <presetId> --node-type <type> [--json]
nodaro presets groups list [--node-type <type>] [--json]
nodaro presets groups create --node-type <type> --name <name> [--kind folder|section] [--sort-order <n>] [--json]
nodaro presets groups update <id> [--name <name>] [--sort-order <n>] [--json]
nodaro presets groups delete <id> [--json]
Command or optionWhat it does
list --factoryLists the built-in catalog for --node-type. No sign-in is needed. --base-url asks another instance. The photos column is how many reference photos a preset works from, and preview says whether it has an example picture.
listWithout --factory, lists your own presets. It needs a profile.
create --preview-urlAn image already stored on this platform: an upload or a finished result.
update --expected-updated-at, delete --expected-updated-atRefuse the change when the preset changed since that time.
exportWrites your presets as a JSON file that import accepts.
importReads that file, or a JSON list of presets, from a path or from standard input.
favorite, unfavoriteAdd or remove a favorite: a built-in id or one of your preset ids.
groupsLists, creates, renames and deletes your folders and sections. A bare groups lists them too. Deleting a folder moves its presets out of it.

Reordering is a drag in the editor. Scripts use the SDK's presets.reorder().

Palettes and moodboards

Save your own colors and style references, then use one on generate-image. A palette goes in direction.colorLook as palette:<id>, and a moodboard goes in direction.style as moodboard:<id>. See palettes and moodboards in the SDK reference.

nodaro palettes list [--limit <n>] [--cursor <c>] [--json]
nodaro palettes get <id> [--json]
nodaro palettes create --name <name> --colors <#hex,#hex,...> [--description <text>] [--json]
nodaro palettes update <id> [--name <name>] [--colors <#hex,...>] [--description <text> | --clear-description] [--json]
nodaro palettes delete <id> [--json]
nodaro moodboards list [--limit <n>] [--cursor <c>] [--json]
nodaro moodboards get <id> [--json]
nodaro moodboards create --name <name> --image <url[|caption]>... [--description <text>] [--json]
nodaro moodboards update <id> [--name <name>] [--description <text> | --clear-description] [--image <url[|caption]>...] [--json]
nodaro moodboards delete <id> [--json]
  • A palette has 2 to 12 colors.
  • A moodboard has 1 to 12 images. Repeat --image for each one, with an optional caption after |. On update, --image replaces all the images.
  • Deleting a moodboard leaves the linked images untouched.
nodaro palettes create --name Harbour --colors "#0F4C5C,#E3B23C,#F28C7A"
nodaro nodes run generate-image --param prompt="a lighthouse at dusk" --param 'direction={"colorLook":"palette:<paletteId>"}' --watch

Catalog packs

A deployment can curate the picker catalogs with vendored catalog packs. These commands maintain such packs. They work offline on files and need no sign-in.

nodaro catalog snapshot --in <file>
nodaro catalog diff-upstream --baseline <f> --upstream <f> --pack <f> [--write <f>]
nodaro catalog validate --pack <file> [--exempt es,fr,...]
  • snapshot prints a full-detail /v1/catalogs projection of a file, with its translation files, as JSON.
  • diff-upstream is a three-way merge. It carries upstream edits into the entries you left unchanged, with their strings in the 11 translated locales. It reports conflicts, where you and upstream both changed an entry, and keeps your version. It lists new upstream entries and upstream removals, and never adds anything by itself. It exits with code 2 when there are conflicts.
  • validate checks that a pack snapshot has translations in all 11 translated locales, or declares exemptions with --exempt. It exits with code 1 when a locale that is not exempt is missing a translation.

Executions and jobs

An execution is one run of a workflow or an app. A job is the work of one node, such as one image generation. nodaro nodes run returns a job.

nodaro executions get <id> [--watch] [--json]
nodaro executions cancel <id> [--mode cancelled|stopping]
nodaro jobs list [--status <s,s>] [--type <t,t>] [--origin <app>] [--source <s,s>] [--favorited | --no-favorited] [--rating good|bad|rated|unrated] [--limit <n>] [--cursor <c>] [--json]
nodaro jobs get <id> [--json]
nodaro jobs rate <id> good|bad|clear [--json]
nodaro jobs rename <id> <title> [--json]
nodaro jobs rename <id> --clear [--json]
nodaro jobs cancel <id> [--json]
  • executions get --watch polls until the execution is completed, failed or cancelled.
  • executions cancel --mode cancelled, the default, stops the run at once. --mode stopping lets the current level of nodes finish first.
  • jobs list lists your jobs, newest first. --status, --type and --source take a comma-separated list. --source mcp lists what your MCP clients, such as Claude or ChatGPT, made. --no-favorited keeps the jobs you did not favorite. Every filter combines with the others.
  • jobs rate sets your rating of one of your jobs. clear removes it.
  • jobs rename names one of your jobs, in one line of up to 120 characters. The name reads back as title. --clear removes it.
nodaro gallery browse [--type image|video|audio] [--user <id> | --favorites] [--limit <n>] [--cursor <c>] [--json]
nodaro gallery favorite <jobId> [--json]
nodaro gallery favorites [--json]
  • browse --user shows one person's work. Your own id includes your private items.
  • browse --favorites shows only your own items that you favorited.
  • favorite toggles: it favorites the job, or removes the favorite when the job already is one.
  • favorites prints your favorited job ids, newest first.

Webhooks

A webhook endpoint is an https address that Nodaro calls, with a signed POST, every time one of your jobs ends with job.completed or job.failed. See Webhooks for the events, the body and how to check the signature.

nodaro webhooks list [--json]
nodaro webhooks get <id> [--json]
nodaro webhooks create --url <https-url> [--events job.completed,job.failed] [--description <text>] [--json]
nodaro webhooks update <id> [--url <https-url>] [--events <list>] [--description <text> | --clear-description] [--enable | --disable] [--json]
nodaro webhooks delete <id> [--json]
nodaro webhooks rotate-secret <id> [--grace <seconds>] [--json]
nodaro webhooks deliveries <id> [--status pending|delivered|failed] [--limit <n>] [--cursor <c>] [--json]
nodaro webhooks test <id> [--wait] [--poll-interval <ms>] [--json]
CommandWhat it does
createRegisters an endpoint and prints its signing secret (whsec_…) once. Store it. With --json, the output is { data, secret }.
update --enableSwitches the endpoint on. It also clears an automatic switch-off, which happens after 50 deliveries in a row fail for good.
deleteDeletes the endpoint and its delivery log.
rotate-secretPrints a new secret once. The old secret keeps signing for --grace seconds. The default is one day, and 0 stops the old secret at once.
deliveriesLists the delivery log, newest first.
testSends a ping, tried once, even when the endpoint is switched off. --wait follows that delivery and shows how your server answered.

Generate Video Pro run control

Generate Video Pro makes a long video one segment at a time, so you can stop a run and continue it later. It runs on Nodaro Cloud; a self-hosted install runs it through its connection to Nodaro Cloud.

nodaro video-pro stop <jobId> [--json]
nodaro video-pro continue <jobId> [--from-segment N] [--watch] [--poll-interval <ms>] [--json]
  • stop ends the run gracefully. The completed segments are kept and delivered, and the rest of the reservation is refunded. The segment in progress is still billed.
  • continue starts a new job that regenerates from segment N. The default is the first segment that was not delivered. You pay only for the regenerated segments plus the flat Pro fee.

Prompt wizard

The prompt wizard turns a rough idea into an optimized prompt for a node type, such as generate-image.

nodaro prompt wizard [--node-type <type>] [--prompt "..."] [--provider <name>] [--style <name>] [--aspect-ratio <ratio>] [--duration <seconds>] [--llm-model <id>] [--reasoning-effort <level>] [--advanced] [--temperature <n>] [--max-tokens <n>]
nodaro prompt analyze --node-type <type> [--prompt "..."] [--provider <name>] [--style <name>] [--aspect-ratio <ratio>] [--duration <seconds>] [--llm-model <id>] [--reasoning-effort <level>] [--advanced] [--temperature <n>] [--max-tokens <n>] [--json]
nodaro prompt generate --node-type <type> --selection category=value [--selection ...] [--original-prompt "..."] [--provider <name>] [--style <name>] [--aspect-ratio <ratio>] [--duration <seconds>] [--llm-model <id>] [--reasoning-effort <level>] [--advanced] [--temperature <n>] [--max-tokens <n>] [--json]
nodaro prompt enhance --node-type <type> [--prompt "..."] [--provider <name>] [--style <name>] [--aspect-ratio <ratio>] [--duration <seconds>] [--llm-model <id>] [--reasoning-effort <level>] [--advanced] [--temperature <n>] [--max-tokens <n>] [--json]
CommandWhat it does
prompt wizardAsks guided questions in the terminal. Without --node-type, it first asks which node the prompt is for. It needs an interactive terminal.
prompt analyzeReturns the wizard's guided questions, for a script.
prompt generateBuilds the final prompt from your answers. Repeat --selection category=value once per answer.
prompt enhanceRewrites a prompt in one step, without questions.
  • --reasoning-effort is none, low, medium, high, xhigh or max. Support depends on the model; an unsupported or omitted value uses the model's default. The call is charged for the tokens it uses, at the model's rate, so a higher effort costs more only through the tokens it writes. On a Claude model, any effort runs on Anthropic's own API, at that lane's rate.
  • --advanced works with Gemini and Claude models. It runs the request on the model maker's own API. It enables --temperature, --max-tokens and the full reasoning range, and the call is charged at that lane's rate.

Shots

A shot is a saved builder state: picker selections, prompts, chosen models and asset references. Shots power share links and one-click remixing.

nodaro shots get <id> [--json]
nodaro shots create [--file shot.json] [--visibility private|public] [--json]
nodaro shots update <id> [--file fields.json] [--visibility private|public] [--json]
nodaro shots delete <id>

A new shot is private unless you set --visibility public. Anyone who holds the id of a public shot can read it.

Recast

Recast regenerates an analyzed video with your own cast. You can also import a script you wrote and render it as a recast. The recast commands work on Nodaro Cloud only.

nodaro recast skill
nodaro recast validate --file script.json [--json]
nodaro recast import --file script.json --rights-attested [--json]
nodaro recast estimate --analysis-job <id> [--fidelity faithful] [--resolution <r>] [--segment-sec <n>] [--json]
nodaro recast create --workflow <id> --analysis-job <id> [--rights-attested] [--fidelity faithful] [--resolution <r>] [--segment-sec <n>] [--json]
nodaro recast start <recastId> [--segment-sec <n>] [--json]
nodaro recast status <recastId> [--json]
CommandWhat it doesCost
recast skillPrints the authoring guide for writing a script, as Markdown.Free
recast validateChecks a script. It exits with code 1 while the script is invalid.Free
recast importImports a validated script as a completed analysis. --rights-attested states that the script is your own work. An authored recast renders Faithful, exactly as written.Free
recast estimateQuotes a run in credits.Free
recast createBuys the plan and returns the run id. Run estimate first.Credits
recast startRenders a planned run. Running it twice does no harm.Covered by the plan
recast statusShows the status and any interactive step that waits for you.Free

--segment-sec in CLI 1.24.0. The Recast routes take a pack name for the segment setting: scenes-max (the fewest seams), scenes (shorter parts) or max (the longest parts the model allows). CLI 1.24.0 sends --segment-sec as a number, so it cannot send a pack name, and a number such as 10 is refused with 400 validation_error. Leave the option out, and the server uses its default, scenes-max. To choose another pack, call the Recast API.

See Recast for how a recast works, and the Recast API for the endpoints behind these commands.

A trend is a ready-made Nodaro Motion recipe: a short clip with slots for the people, pets, products and place that you fill with your own pictures. The trend commands work on Nodaro Cloud only.

nodaro trends list [--search <text>] [--tag <tag>] [--favorites] [--locale <l>] [--limit <n>] [--cursor <c>] [--json]
nodaro trends get <slug> [--locale <l>] [--json]
nodaro trends estimate <slug> --slot <key>=<url>[,<url>] [--slot ...] [--choice <key>.<chip>=new|original] [--example <n>] [--details "…"] [--preview] [--resolution 480p|720p|1080p] [--draft] [--json]
nodaro trends run <slug> [the estimate options] [--session <id>] [--idempotency-key <key>] [--json]
nodaro trends runs [--trend <slug>] [--limit <n>] [--cursor <c>] [--json]
nodaro trends favorite <slug>
nodaro trends unfavorite <slug>
CommandWhat it doesCost
trends listLists the published trends. --limit runs from 1 to 60.Free
trends getShows a trend's slots (key, kind, required), examples, preview, engine and resolutions.Free
trends estimateQuotes a run: about how many credits it costs, and how many are held while it runs.Free
trends runStarts a run and prints the job id. Follow it with nodaro jobs get <id>. Run estimate first.Credits
trends runsLists your trend runs, newest first. The credits column is what each run was charged once settled, every step it ran included: its reference preparation, mask and video. It is empty until the run's own hold settles.Free
trends favorite, trends unfavoriteAdds a trend to your favorites, or removes it.Free
  • --slot repeats, one per slot, with 1 to 3 pictures each. Pictures are split where a new http or https URL starts, so a URL that holds commas stays whole. A slot key is 1 to 32 characters of a to z, 0 to 9 and _.
  • --choice keeps a trait of the clip (original) or makes it new from your pictures (new): a person's body, outfit or hair, a pet's body or coat, a product's shape or finish.
  • --resolution is one of the resolutions the trend offers, as trends get shows them. The default is the trend's first: 480p, or 720p on a Nodaro Motion Pulse trend.
  • A run is plain unless you pass --draft. --draft makes a 480p draft that Full Quality can finish at 1080p, on a Nodaro Motion Prism trend only. --no-draft is still accepted.
  • --session is accepted, but not applied yet: trend runs are not filed into sessions yet.

See the Trends API for the endpoints behind these commands.

Nodaro Motion Full Quality

A Nodaro Motion Prism draft can be finished at 1080p, as the same take, within 7 days after it completed. A draft is a Nodaro Motion or trend run made with draft: true, or with --draft on the trends commands. A plain run and every Nodaro Motion Pulse run have no Full Quality: run them again at 1080p instead. The commands keep the name cast-swap, and they work on Nodaro Cloud only.

nodaro cast-swap full-quality estimate <jobId> [--json]
nodaro cast-swap full-quality run <jobId> [--session <id>] [--json]
CommandWhat it doesCost
cast-swap full-quality estimateQuotes the Full Quality version: about how many credits it costs, each part of the quote by label, and until when the run can be finished. The 1080p render is 0 when an earlier try's render is reused.Free
cast-swap full-quality runStarts it and prints the new job id. Follow it with nodaro jobs get <id>. Run estimate first.Credits

There is one Full Quality per draft. When it already exists, run prints that job and charges nothing. full_quality_pending means an earlier try's 1080p render is being reviewed, or has not started yet. It is not final: run the command again later. See Full Quality.

Frequently asked questions

How do I list every node type the Nodaro CLI can run?

Run nodaro nodes list. Add --category ai-image, or another category, to filter the list, and run nodaro nodes get generate-image to see the full input schema of one node type.

How do I run only some nodes of a workflow from the CLI?

Add --node to nodaro workflows run, followed by the node ids separated by spaces. Only those nodes run.

How do I stop a running workflow from the terminal?

Run nodaro executions cancel with the execution id. The default mode, cancelled, stops the run at once. With --mode stopping, the current level of nodes finishes first.

How do I generate several images with one CLI command?

Run nodaro nodes run generate-image with --count (1 to 4 images) or --models with 2 to 4 image model ids. Add --watch to follow every job until each one settles.

Which Nodaro CLI commands need Nodaro Cloud?

The recast, trends and cast-swap commands run on Nodaro Cloud only. So do characters train, training and delete-lora, and billing plans, subscription, summary and history. Generate Video Pro run control also works on a self-hosted install, through its connection to Nodaro Cloud.

How do I get a call on my server when a job finishes?

Run nodaro webhooks create --url with your https address. The CLI prints the endpoint's signing secret once. Run nodaro webhooks test with the endpoint id and --wait to see how your server answered.

Last updated on

On this page