Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch
CLI

Commands

Every core Nodaro CLI command with its options, for projects, workflows and sharing, apps, nodes, models, pickers, executions, jobs, prompts 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
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 catalogThis page
pickersRead picker catalogs and fill pickers from a descriptionThis page
catalogMaintain a deployment's catalog packs, offlineThis page
executions, jobsInspect and cancel runsThis 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
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]

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]
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.

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 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 accepts any address. The person does not need an account yet.
  • 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>
  • 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.
  • --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]
  • --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.
  • --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.

Models

nodaro models list [--kind image|video|audio] [--mode <mode>] [--family <vendor>] [--featured] [--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, modes and credit tiers. It 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. Browse the same catalog in Models.

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.

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 get <id> [--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.

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>]
nodaro prompt analyze --node-type <type> [--prompt "..."] [--provider <name>] [--style <name>] [--aspect-ratio <ratio>] [--duration <seconds>] [--llm-model <id>] [--reasoning-effort <level>] [--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>] [--json]
nodaro prompt enhance --node-type <type> --prompt "..." [--provider <name>] [--style <name>] [--aspect-ratio <ratio>] [--duration <seconds>] [--llm-model <id>] [--reasoning-effort <level>] [--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. xhigh and max bill one tier up.
  • --advanced works with Gemini models only. It enables --temperature, --max-tokens and the full reasoning range, and bills one tier up.

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

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

Frequently asked questions

Last updated on

On this page