10 KiB
CLI Reference
Shortest Useful Command
narratio run 2026-04-04
This runs the canonical full pipeline for session 2026-04-04.
Command Overview
Top-level commands:
run <session_id>: run all or one contiguous range of the canonical stage order.regenerate-artifacts <session_id>: force-run extraction through analysis.run-stage <stage> <session_id>: run one stage.analyze <session_id>: force-run analyze.publish <session_id>: force-run publish.clean <session_id>orclean --all: remove local work/spool state.session <subcommand>: session helper commands.
Session subcommands:
session init <session_id>session plan <session_id>session validate <session_id>session status <session_id>session restore <session_id>session artifacts <session_id>session locks <session_id>session locks add <session_id> <source>session locks remove <session_id> <source>
Common Config Flags
Most session-aware commands accept:
--config <pipeline.yml>--campaign <id>--campaign-file <campaign.yml>--session <session.yml>--session-id <session_id>--previous-session-id <session_id>
Rules:
--campaignand--campaign-fileare mutually exclusive.--sessionis not used bysession init.- if both positional
<session_id>and--session-idare provided, values must match. --previous-session-idis a strict expectation: the selected session file must contain the sameprevious_session_id.clean --allcannot be combined with campaign/session selectors.- notification delivery is currently limited to the configured
noopmode; see the configuration reference.
Session ID Input Rules
Session-aware commands accept one of these forms:
- positional session ID:
... <session_id> - compatibility flag:
... --session-id <session_id>
When both are present, command parsing requires an exact match.
Commands with additional positionals keep their command-specific order:
run-stage <stage> <session_id>orrun-stage <stage> --session-id <session_id>session locks add <session_id> <source>orsession locks add --session-id <session_id> <source>session locks remove <session_id> <source>orsession locks remove --session-id <session_id> <source>
Command Reference
run
narratio run <session_id> [--from <stage>] [--through <stage>] [--force] [--artifacts <name[,name...]>] [...common config flags]
Behavior:
- evaluates one inclusive contiguous range of the canonical stage order;
- defaults an omitted
--fromtoprepareand an omitted--throughtonotify, so omitting both retains full-pipeline behavior; - rejects unknown endpoints and a
--fromendpoint after--through; - runs
renderbeforeextract; an omitted or disabled Notarius configuration records an explicitnotarius_disabledself-skip; - skips already-succeeded stages unless
--forceis set or a stage-specific resume check finds its durable result obsolete; - applies
--forceonly to stages in the selected range; - rejects repeated
--from,--through, or--forceoptions, including--name=valuespellings; - continues interrupted or partially completed sessions by running non-succeeded stages;
- writes session and run manifests.
When --artifacts is present, the selected range must contain analyze or
publish. Either consumer is sufficient, including a one-stage range.
regenerate-artifacts
narratio regenerate-artifacts <session_id> [--artifacts <name[,name...]>] [...common config flags]
Exactly equivalent to:
narratio run <session_id> --force --from extract --through analyze [caller options]
The command always reruns extraction. Analysis rebuilds the selected configured
artifacts and any prerequisites required by those targets; without
--artifacts, it uses the normal default analysis selection. Publish and notify
never run. Common session/configuration options and repeatable artifact values
pass through unchanged.
Because the expansion owns --force, --from, and --through, callers cannot
supply those options. The shared run parser reports them as duplicate
singleton flags. The alias has no private execution options or behavior, and
runtime diagnostics may identify the operation as run.
run-stage
narratio run-stage <stage> <session_id> [--force] [--artifacts <name[,name...]>] [...common config flags]
Valid stage names:
preparetranscribemergepolishnormalizetrimrenderextractanalyzepublishnotify
Rules:
--artifactsis accepted only foranalyzeandpublishstage targets.
analyze
narratio analyze <session_id> [--artifacts <name[,name...]>] [...common config flags]
Equivalent to:
narratio run-stage analyze <session_id> --force [...common config flags]
publish
narratio publish <session_id> [--artifacts <name[,name...]>] [...common config flags]
Equivalent to:
narratio run-stage publish <session_id> --force [...common config flags]
clean
narratio clean <session_id> [--dry-run] [--clear-cache] [...common config flags]
narratio clean --all [--dry-run] [--clear-cache] [--config <pipeline.yml>]
Behavior:
- session mode removes the selected session's local work and spool state;
--allremoves all local session work and spool state;- cache remains unless
--clear-cacheis provided.
See Operations: Cleanup for deletion scope and post-publish cleanup behavior.
session plan
narratio session plan <session_id> [--from <stage>] [--through <stage>] [--force] [--artifacts <name[,name...]>] [...common config flags]
Uses the same inclusive bounds, endpoint validation, force scope, and artifact
selection contract as run. It validates config, prepares local workdir layout,
and prints run/skip decisions for selected stages only.
session validate
narratio session validate <session_id> [...common config flags]
Read-only preflight checks for config validity, required inputs, audio mode, previous-session requirements, publish outputs, and effective locks.
session status
narratio session status <session_id> [...common config flags]
Prints local manifest state and, when storage is available, status for the pointer-selected remote commit and its declared published outputs.
session init
narratio session init <session_id> --output ./session.yml [options]
narratio session init <session_id> --remote [options]
Required target selection:
- exactly one of:
--output <path>--remote
Options:
--config <pipeline.yml>--campaign <id>or--campaign-file <campaign.yml>--previous-session-id <id>--date <YYYY-MM-DD>--title <text>--audio-dir <path>--audio-s3-prefix <prefix>--force
Rules:
--audio-dirand--audio-s3-prefixare mutually exclusive.- if campaign
session_template_fileis configured,session initrenders it. - generated session YAML must be concrete (no unresolved
{{ ... }}placeholders).
session restore
narratio session restore <session_id> [--dry-run] [--force] [--include-audio] [...common config flags]
Behavior:
- discovers committed remote current state;
- plans local restores;
- writes an execution report;
- blocks unresolved conflicts.
--forcepermits replacement only of eligible regular files.
See Operations: Restore Workflow for the default restore scope, report location, and conflict-handling workflow.
session artifacts
narratio session artifacts <session_id> [--remote] [...common config flags]
Lists effective built-in, configured Scriptorium, and configured extraction sources; reports planned, available, unavailable, and published state without reading payload bodies; and includes publish rules, lock state, and optional remote published-state availability.
session locks
narratio session locks <session_id> [...common config flags]
narratio session locks add <session_id> <source> [--reason <text>] [--force] [...common config flags]
narratio session locks remove <session_id> <source> [...common config flags]
Behavior:
- list mode reports the effective merge of static and remote locks;
- add/remove mutate only remote locks;
- static locks from pipeline config cannot be removed by CLI commands.
See Operations: Publish Locks for lock storage and precedence.
--artifacts Selection Rules
- accepted on
run,session plan,run-stage,analyze, andpublish; - names must exist in
pipeline.scriptorium.artifacts; - empty entries are invalid;
- repeated names are deduplicated.
Effects:
- selects explicit analyze targets; required configured prerequisites may be reused or rebuilt before them;
- filters publish rules that source
narratio.artifact.<name>; - does not filter built-in transcript/bounds or explicitly configured
narratio.extraction.<name>publish sources; and - does not select or filter Notarius lanes.
Common Workflows
Run full pipeline:
narratio run 2026-04-04
Dry-run restore plan:
narratio session restore 2026-04-04 --dry-run
Generate a concrete session file from template/default structure:
narratio session init 2026-04-04 --output ./session.yml --date 2026-04-04 --title "Session 12"
Force publish only:
narratio publish 2026-04-04
Output And Exit Behavior
- Successful commands write their result or summary to standard output and
exit with status
0. - Command failures and invalid invocations write an error to standard error and
exit with status
1. - An unknown top-level command also prints the top-level usage summary to standard error.
session restore --helpprints its command-specific usage and exits with status0.
Output is intended for operator inspection. Narratio does not currently offer a machine-readable CLI output mode; durable machine-readable state is recorded in manifests and reports described in Operations.