Skip to content

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.

Quickstart loop showing install shp, shape files, shp check, diagnostics, update model, and CI.

Use a pinned version in scripts and CI:

Terminal window
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/timbrinded/shapelang/releases/download/v0.4.0/install.sh | sh

On Windows:

Terminal window
irm https://github.com/timbrinded/shapelang/releases/download/v0.4.0/install.ps1 | iex

The 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:

Terminal window
export PATH="$HOME/.local/bin:$PATH"
Terminal window
shp check

With no file arguments, shp check scans:

shape/**/*.shape
Terminal window
shp fmt --check

Use shp fmt without --check to rewrite shape files with canonical formatting.

Terminal window
git diff --name-only origin/main...HEAD > changed.txt
shp coverage --changed-files changed.txt

If a governed source path changes without a Shape update or current attestation, the checker rejects the change.

steps:
- uses: actions/checkout@v4
- uses: timbrinded/shapelang@v0.4.0
- run: shp check

For contributor setup, see Local Development.