CLI and Language Server for the Caffeine DSL — generates reliability SLOs from service expectation definitions.
brew tap brickell-research/caffeine
brew install caffeine_langDownload pre-built binaries for Linux (x64/ARM64), macOS (x64/ARM64), and Windows (x64) from Releases.
caffeine compile <measurements_dir> <expectations_dir> [output_path]
caffeine format <path> [--check]
caffeine types [--quiet] # Show type system referencemake build # Build all packages
make test # Run tests (Erlang target)
make test-js # Run tests (JavaScript target)
make test-e2e # Run LSP end-to-end tests
make ci # lint + build + testmake dev-link # Switch to local ../caffeine_lang
make dev-link CAFFEINE_LANG_PATH=../../caffeine_lang # Custom path
make dev-unlink # Restore Hex dependencyAfter publishing a new caffeine_lang to Hex, bump the version everywhere
it appears (package.json, both gleam.tomls) yourself, then:
make release # refreshes manifest checksums, commits, tags vX.Y.Z
git push --follow-tags # triggers the Release workflowmake release reads the new version from caffeine_cli/gleam.toml, runs
gleam deps update caffeine_lang in both packages so the outer_checksum
in each manifest.toml matches what's on Hex, and prints the diff for you
to confirm before committing.