Pre-release notice: This software is currently in a pre-release state. Treat it as unstable, expect breaking changes, and validate it carefully before production use.
Allium Tools is the multi-editor platform for the Allium specification language. It provides rich editor integration, a standalone Language Server (LSP), and a suite of CLI tools for validation, formatting, and analysis.
Allium is a domain-specific language for specifying system behavior, rules, and data models. It focuses on clarity, traceability, and automated validation.
- Blocks: Top-level declarations like
rule,entity,enum,config,given,surface, andactor. - Clauses: Express requirements and effects using
when:,requires:, andensures:. - Traceability: Built-in support for linking specifications to implementation and tests.
module ordering
enum OrderStatus {
pending | confirmed | dispatched
}
entity Order {
status: OrderStatus
total: Decimal
}
rule PlaceOrder {
when: OrderSubmitted(basket)
requires: basket.items.count > 0
ensures: Order.created(status: pending, total: basket.total)
}
rule DispatchOrder {
when: order: Order.status becomes confirmed
requires: order.total > 0
ensures: order.status = dispatched
}
| Feature | VS Code | Neovim | Emacs | CLI |
|---|---|---|---|---|
| Diagnostics (Linting) | ✅ | ✅ | ✅ | ✅ |
| Hover Documentation | ✅ | ✅ | ✅ | - |
| Go to Definition | ✅ | ✅ | ✅ | - |
| Find References | ✅ | ✅ | ✅ | ✅ |
| Rename Refactoring | ✅ | ✅ | ✅ | - |
| Safe Fixes (Autofix) | ✅ | ✅ | ✅ | ✅ |
| Formatting | ✅ | ✅ | ✅ | ✅ |
| Code Lens | ✅ | - | - | - |
| Document Links | ✅ | ✅ | ✅ | - |
| Semantic Highlighting | ✅ | ✅ | ✅ | - |
| Folding | ✅ | ✅ | ✅ | - |
| Completions | ✅ | ✅ | ✅ | - |
| Diagram Preview | ✅ | - | - | ✅ |
| Rule Simulation | ✅ | - | - | - |
| Test Scaffold | ✅ | - | - | - |
- Download the latest
allium-vscode-<version>.vsixfrom GitHub Releases. - Install via Command Palette:
Extensions: Install from VSIX.... - See the VS Code Setup Guide for details.
- Install
allium-lspvia your favorite plugin manager or from release artifacts. - Configure
nvim-lspconfigto point to theallium-lspbinary. - See the Neovim Setup Guide for details.
- Install
allium-modeand configure it to useallium-lspwitheglotorlsp-mode. - See the Emacs Setup Guide for details.
The allium CLI validates and parses Allium specification files.
allium check— validate specifications and report diagnostics.allium parse— parse a file and output the syntax tree.
Homebrew
brew tap juxt/allium && brew install alliumCargo
cargo install allium-cliFrom source
cargo build --release -p allium-cliPre-built binaries for Linux and macOS are available on the GitHub Releases page.
See AGENTS.md for development rules and the Project Roadmap for build instructions and priorities.
This repository uses pre-commit hooks for local quality gates.
Install hooks:
npm installRun the full test matrix locally:
npm run test:alltest:all runs fastest-to-slowest: test, test:nvim, test:emacs, test:nvim:integration, test:emacs:integration.
The pre-push hook runs npm run test:all before allowing a push.