# Commands

> Every core Nodaro CLI command with its options, for projects, workflows and sharing, apps, nodes, models, pickers, executions, jobs, prompts and Recast.

Source: https://nodaro.ai/docs/developers/cli/commands

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](https://nodaro.ai/docs/developers/cli).

## Command groups

| Group | What it does | Where it is documented |
| --- | --- | --- |
| `auth` | Sign in, show and remove profiles | [CLI](https://nodaro.ai/docs/developers/cli#sign-in) |
| `projects` | Create, read, update and delete projects | This page |
| `workflows` | Manage, export, import, run and share workflows | This page |
| `apps` | Browse and run published apps | This page |
| `nodes` | List node types and run a single node | This page |
| `models` | Browse the model catalog | This page |
| `pickers` | Read picker catalogs and fill pickers from a description | This page |
| `catalog` | Maintain a deployment's catalog packs, offline | This page |
| `executions`, `jobs` | Inspect and cancel runs | This page |
| `video-pro` | Stop and continue Generate Video Pro runs | This page |
| `prompt` | Turn a rough idea into an optimized prompt | This page |
| `shots` | Create and read shot share records | This page |
| `recast` | Plan and render a Recast run, or import a script | This page |
| `characters`, `locations`, `objects` | Manage assets and generate their pictures and motion | [Asset commands](https://nodaro.ai/docs/developers/cli/asset-commands) |
| `voice`, `media`, `audio`, `edit` | Revoice, caption, compose and edit media | [Media and voice commands](https://nodaro.ai/docs/developers/cli/media-commands) |
| `org`, `workspace` | Organizations, invitations, workspaces and usage reports | [Workspaces and organizations](https://nodaro.ai/docs/developers/cli/workspaces) |

## 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](https://nodaro.ai/docs/developers/cli/output).
- `--workspace <id>` is a global option. It sets the workspace for this command only. See [Workspaces and organizations](https://nodaro.ai/docs/developers/cli/workspaces).
- `-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

```bash
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

```bash
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]
```

| Option | What it does |
| --- | --- |
| `create --file` | Creates the workflow from an exported workflow bundle. |
| `update --file` | Writes the nodes, edges and settings in a JSON file to the workflow. |
| `export --with-assets` | Adds the character, object and location data the workflow uses to the bundle. |
| `export --output` | Writes the bundle to a file instead of printing it. |
| `run --node` | Runs only the listed node ids, separated by spaces. |
| `run --watch` | Follows the execution until it finishes. |

The bundle format is the same one the editor exports. See [Import and export workflows](https://nodaro.ai/docs/guides/import-export).

### Share and move workflows

These commands work on instances with organizations and workspaces.

```bash
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](https://nodaro.ai/docs/concepts/apps).

```bash
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](https://nodaro.ai/docs/concepts/prompt-pre-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

```bash
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](https://nodaro.ai/docs/developers/cli/params).

## Models

```bash
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](https://nodaro.ai/docs/models).

## Pickers

Pickers are the Creative Controls nodes, such as Mood and Framing. These commands read their catalogs of valid values. See [Picker catalogs](https://nodaro.ai/docs/developers/picker-catalogs).

```bash
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 option | What it does |
| --- | --- |
| `pickers list` | Lists every picker node type, its number of options, and how many options have a picture. |
| `pickers get` | Returns one catalog. Each option carries `id`, `label`, `category`, `term`, `icon` and, when it has a picture, `imageUrl`. |
| `--full` | Adds each option's description and the prompt fragment it adds. |
| `--category` | Filters a single-dimension picker to one category. |
| `--field` | Returns one dimension of a multi-dimension picker, such as `shotSize` of Framing. |
| `pickers analyze` | AI Fill: chooses picker values from a free-text description. It is an LLM call, billed in credits. |
| `--target` | A 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.

```bash
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.

```bash
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](https://nodaro.ai/docs/nodes/video/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.

```bash
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`.

```bash
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]
```

| Command | What it does |
| --- | --- |
| `prompt wizard` | Asks guided questions in the terminal. Without `--node-type`, it first asks which node the prompt is for. It needs an interactive terminal. |
| `prompt analyze` | Returns the wizard's guided questions, for a script. |
| `prompt generate` | Builds the final prompt from your answers. Repeat `--selection category=value` once per answer. |
| `prompt enhance` | Rewrites 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.

```bash
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.

```bash
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]
```

| Command | What it does | Cost |
| --- | --- | --- |
| `recast skill` | Prints the authoring guide for writing a script, as Markdown. | Free |
| `recast validate` | Checks a script. It exits with code 1 while the script is invalid. | Free |
| `recast import` | Imports 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 estimate` | Quotes a run in credits. | Free |
| `recast create` | Buys the plan and returns the run id. Run `estimate` first. | Credits |
| `recast start` | Renders a planned run. Running it twice does no harm. | Covered by the plan |
| `recast status` | Shows the status and any interactive step that waits for you. | Free |

See [Recast](https://nodaro.ai/docs/mcp/recast) for how a recast works, and the [Recast API](https://nodaro.ai/docs/developers/api/recast) for the endpoints behind these commands.

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

### Which Nodaro CLI commands need Nodaro Cloud?

The recast commands run on Nodaro Cloud only. Generate Video Pro run control also works on a self-hosted install, through its connection to Nodaro Cloud.

### How do I export a workflow together with its characters?

Run nodaro workflows export with --with-assets and --output bundle.json. The bundle includes the character, object and location data the workflow uses. Import it with nodaro workflows import bundle.json --project followed by a project id.
