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 suite provides standalone tools for CI/CD and automation.
allium-check: Validate specifications and apply automatic fixes.allium-format: Format Allium files according to standard style.allium-diagram: Generate D2 or Mermaid diagrams from specs.allium-trace: Check traceability between specs and tests.allium-drift: Detect coverage drift between specs and implementation.
Install the CLI tools globally:
npm install -g @allium/cliSee AGENTS.md for development rules and the Project Roadmap for build instructions and priorities.