Quickstart
Shape ships a self-contained shp typechecker binary. You do not need Bun or Node to run it in a project that already has .shape files.

Install
Section titled “Install”Use a pinned version in scripts and CI:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/timbrinded/shapelang/releases/download/v0.4.0/install.sh | shOn Windows:
irm https://github.com/timbrinded/shapelang/releases/download/v0.4.0/install.ps1 | iexThe installer downloads the matching release archive, verifies its SHA-256 checksum, and installs shp plus its bundled Tree-sitter parser assets into ~/.local/bin. Replace v0.4.0 with the release tag you want to pin.
If your shell cannot find shp after installation, add the install directory to your PATH:
export PATH="$HOME/.local/bin:$PATH"Check a repo
Section titled “Check a repo”shp checkWith no file arguments, shp check scans:
shape/**/*.shapeFormat shape files
Section titled “Format shape files”shp fmt --checkUse shp fmt without --check to rewrite shape files with canonical formatting.
Check changed files
Section titled “Check changed files”git diff --name-only origin/main...HEAD > changed.txtshp coverage --changed-files changed.txtIf a governed source path changes without a Shape update or current attestation, the checker rejects the change.
GitHub Actions
Section titled “GitHub Actions”steps: - uses: actions/checkout@v4 - uses: timbrinded/shapelang@v0.4.0 - run: shp checkFor contributor setup, see Local Development.