Skip to Content
We are live but in Staging 🎉
CLI GuideScript, Draft, and Version Commands

Script, Draft, and Version Commands

Last validated: 2026-05-14

This page explains command usage, arguments, and practical use cases for authoring and release lifecycle operations.

1) Script Commands

script create <name>

Use case:

  • Create script metadata before draft authoring.

Flags:

  • --description: human-readable summary.
  • --tags: comma-separated tags.

Example:

dodil scriptum script create invoice-parser \ --description "Parse invoices into structured JSON" \ --tags "invoice,etl,finance"

script get <name>

Use case:

  • Inspect active/latest version and draft status.

Example:

dodil scriptum script get invoice-parser -o yaml

script list

Use case:

  • Browse scripts and filter by tags.

Flags:

  • --tags: filter by comma-separated tags.
  • --page-size: max number of results.

Example:

dodil scriptum script list --tags "finance,etl" --page-size 50

script delete <name>

Use case:

  • Remove obsolete script and all versions.

Example:

dodil scriptum script delete old-parser

2) Draft Commands

draft save <name> --file <path>

Use case:

  • Save .scriptum or .yaml draft content.

Arguments and flags:

  • <name>: target script.
  • -f, --file (required): draft file path.

Behavior:

  • .scriptum file is sent as dsl_content.
  • Other extensions are sent as yaml_content.

Example:

dodil scriptum draft save invoice-parser --file ./invoice_parser.scriptum

draft compile <name>

Use cases:

  • Validate draft syntax/semantics.
  • Inspect AST or IR for debugging.

Flags:

  • --show-ast: print raw AST JSON and exit.
  • --show-ir: print compiled IR YAML and exit.

Examples:

dodil scriptum draft compile invoice-parser dodil scriptum draft compile invoice-parser --show-ir

draft test <name>

Use case:

  • Execute current draft without publishing.

Flags:

  • --input: inline JSON or @file path.
  • --env: load environment variables.

Examples:

dodil scriptum draft test invoice-parser --input @./input.json --env dodil scriptum draft test invoice-parser --input '{"invoice_id":"INV-42"}'

draft publish <name>

Use case:

  • Promote compiled draft to a new immutable version.

Example:

dodil scriptum draft publish invoice-parser

draft validate <file.scriptum> [files...]

Use case:

  • Local validation without server round-trip.

Flag:

  • --json: JSON output from local validator.

Example:

dodil scriptum draft validate ./invoice_parser.scriptum --json

draft fmt <file.scriptum> [files...]

Use case:

  • Local formatting via validator binary.

Example:

dodil scriptum draft fmt ./invoice_parser.scriptum

3) Version Commands

version list <name>

Use case:

  • Inspect all published and superseded versions.

Example:

dodil scriptum version list invoice-parser

version get <name> <version>

Use case:

  • Read metadata for one immutable version.

Example:

dodil scriptum version get invoice-parser 3 -o json

version rollback <name> [--to N]

Use case:

  • Restore a previously stable version.

Flag:

  • --to: target version (0 means previous active).

Examples:

dodil scriptum version rollback invoice-parser --to 2 dodil scriptum version rollback invoice-parser --to 0

4) Authoring Patterns

Fast inner loop

dodil scriptum draft save invoice-parser -f ./invoice_parser.scriptum dodil scriptum draft compile invoice-parser dodil scriptum draft test invoice-parser --input @./sample.json --env

Promote after passing tests

dodil scriptum draft publish invoice-parser dodil scriptum version list invoice-parser

5) Practical Caveats

  • draft validate and draft fmt depend on local scriptum-validate binary.
  • script list and version listings may show limited pagination progression in current backend.
  • No dedicated CLI command exists for API GetScriptCode; use gRPC/HTTP workaround commands from the gaps guide.