Developer platform

HollowScript

Status: Live

A statically typed, capability-safe scripting language for Hollow automation, already running in production inside Cascade.

HollowScript is a general-purpose language built so an unattended script can never reach further than it is explicitly allowed to: no ambient I/O of any kind, not even printing or the clock, unless a file declares it up front.

A short HollowScript program that sorts tasks by hours, above the terminal output of hollowscript run, printing three lines.

Language

Statically typed, deliberately boring

HollowScript is statically typed with no any escape hatch, uses records and free functions instead of classes, makes every value immutable, and replaces null with a checked optional type, all in service of catching a mistake before an unattended automation fails at 3am.

  • No any: hallucinated field or method names are caught, not run
  • All values immutable; variable rebinds a name, never edits one
  • No null: absence is declared in the type and must be checked
HollowScriptThe language
  • Statically typed, no any
  • Records, not classes
  • Immutable values
  • No null, explicit Result

Security

No ambient authority, anywhere

Every capability a script can touch, even printing, the clock, or random numbers, is declared in a uses header and marked effect at the call site. The interpreter has no primitive that reaches outside the sandbox: safety is a language-level guarantee that holds with or without a container around it.

  • A file declares every capability it may touch, up front
  • Printing, the clock, and random numbers are capabilities too, not ambient
  • Parsing never throws: malformed input returns diagnostics, not a crash
CapabilitiesCapability-based
  • A uses header declares access
  • Every effect is marked
  • Even print and clock are capabilities
  • Parser never throws

Ship it

Built for release, running in production today

HollowScript already runs in production as a Cascade step type, embedding Hollow Expression Language (HEL) as its filter grammar. It runs on the native Rust runtime, which is in preparation for its first public preview, with signed standalone downloads and source planned after the release gates are complete. The current CLI supports run, check, format, build and the language server; it does not include an interactive REPL.

  • CLI commands: run, check, format, build, and language server
  • The native runtime runs inside Cascade’s code steps today
  • The native Rust runtime is being prepared for a signed public preview release
ShipGetting it
  • CLI: run, check, format, build
  • Signed standalone binaries in preparation
  • Native runtime pre-release
  • Current integration runs in Cascade

What’s inside

A language built not to go wrong unattended

  • 01

    Statically typed core

    No any, immutable values, no null, explicit Result returns instead of exceptions.

  • 02

    Capability-based security

    A uses header declares every effect; nothing reaches outside the sandbox by default.

  • 03

    HEL, embedded

    Hollow Expression Language, a small boolean filter language, is built into HollowScript’s own grammar.

  • 04

    Never-throwing parser

    Malformed input always returns diagnostics with source spans, never a raw crash.

  • 05

    CLI and binaries

    The native CLI supports run, check, format, build and the language server; the signed preview release is still being prepared.

  • 06

    Live in Cascade

    Runs inside Cascade’s code steps today, with a real syntax-highlighted editor.

A language built not to go wrong unattended

The native HollowScript runtime is in pre-release preparation. Follow hollowscript.org for the specification, documentation and first release.