Scriptum is a purpose-built DSL and runtime for distributed, LLM-driven workloads. Branching, parallelism, streaming, iteration, ReAct loops, and human approval are all first-class keywords — and every script is type-checked before a single tool runs.
Stringly-typed configs. Errors surface at 3 AM in production.
Built around a purpose-built language, a compiler that catches real errors, and a runtime that treats crashes and human approval as ordinary execution states.
Author a .scriptum file. Top-to-bottom, indentation-structured. Every step starts with a verb. Inputs, outputs, and tool contracts declared up-front.
`scriptum compile` lexes, parses, loads tool manifests, type-checks field access, validates decide/check branches, and emits a deterministic YAML IR.
The same IR runs locally (native tools, filesystem state) or on Dodil Cloud (Ignite tools, S3 state). Steps stream results via `->>` and `pipe`; parallel lanes fan out through `together`.
Threads pause on errors, timeouts, or `ask` steps — no silent crashes. Inspect binding state, fix the failing step, and `scriptum thread resume` picks up exactly where it stopped.
Every sample below is real .scriptum from the dodil-scriptum examples/ directory. The last tab is what the compiler actually prints when your script has two typos.
Every Scriptum step is an Ignite function call. You start with a public registry of 23 pre-built tools — PDF extraction, semantic chunking, multimodal embeddings, PII redaction, small-LLM inference — and you can publish your own Python, Rust, Go, or Deno functions alongside them. Fan out with together, each, or pipe, and Ignite's executor pool scales the underlying concurrency for you — up to 1,000 in-flight invocations per function, warm-started in ~200ms.
Browse the Primitives tab to see every keyword with a live syntax snippet. Flip to Compile and toggle the typo to watch the compiler refuse to ship a broken script. Then hit Execute to watch a thread pause at a human-in-the-loop step and resume itself.
dodil-scriptum docs.