Skip to content

Script Front-Matter

Standalone .shape scripts can embed TOML frontmatter between --- delimiters.

#!/usr/bin/env shape
---
name = "quick-check"
version = "0.1.0"
[modules]
paths = ["./lib"]
[dependencies]
utils = { path = "../utils" }
[[extensions]]
name = "python"
path = "./extensions/libshape_ext_python.so"
autoload = true
---
print("ready")
  • top-level metadata (name, description, version, author, tags)
  • [modules]
  • [dependencies]
  • [dev-dependencies]
  • [[extensions]]

Frontmatter cannot define project-level sections such as:

  • [project]
  • [build]
  • [plugins] — legacy name; use [[extensions]] instead

Use shape.toml for project configuration.

Standalone scripts use a per-script lockfile:

  • demo.shape -> demo.lock
  • If a project shape.toml is discovered, frontmatter is rejected.
  • For standalone scripts, extension loading precedence is:
    1. CLI (--plugin, --plugin-dir)
    2. script frontmatter [[extensions]]