eclipse-langium/langium-ai
Agent skills for building Langium 4.x languages and for using the Langium AI (lai) CLI to generate descriptors, system prompts, evals, and MCP servers for your DSL
CHANGELOG
v1.0.0 agent skills
Oct 30th, 2026
Rewrote the langium agent skill around building, fixing, and improving Langium 4.x languages, verified against Langium 4.4.0.
- Split the single 1,088 line
SKILL.mdinto a short hub with a task router and ten task-oriented references underskills/langium/references/ - Added recipes and pitfalls for grammars, project setup, scoping, validation, LSP features, code generation, testing, and multi-language projects, plus a troubleshooting guide
- Fixed several errors, including the
infixrule syntax and precedence order,DocumentBuilder.waitUntilandregisterBeforeDocumentsignatures, the list of default LSP providers, and the claims aboutslowvalidations - Packaged the skills as a versioned plugin for several agents:
- Claude Code:
.claude-plugin/plugin.jsonand.claude-plugin/marketplace.json - Codex and other Agent Plugins clients: root
plugin.jsonand.agents/plugins/marketplace.json - Gemini CLI:
gemini-extension.json - Pi:
pi.skillsin the rootpackage.json
- Claude Code:
v6.0.1 langium-ai-tools
Aug 14th, 2026
Tiny patch. Reduced tools package size a nice amount by removing *.map files that are just used for development.
v0.5.0 langium-ai
Aug 12th, 2026
Minor release to bump to latest v6.0.0 tools release.
The new api is incompatible in some subtle ways with the original one with regards to built-in evaluators, and chart exports. The former may necessitate minor adjustments to ensure evaluations build.
v6.0.0 langium-ai-tools
Aug 12th, 2026
Major release with some breaking changes regarding the chart functionality that was being exported, and evaluators.
Regarding the charts, they were always intended for the built-in examples, but were present in the barrel file for langium-ai-tools.
It's unlikely this was being used in practice, but if so it's been moved into the examples under ./packages/examples/example-dsl-evaluator/src/chart.ts.
Breaking Changes
- Removed the unneeded chart functionality from the main export, as it was only intended for the built-in examples
- Aligned all Evaluators to return
EvaluatorResult. Previously they were sometimes returningEvaluatorResultData. This was due to an inconsistency in the Evaluator return type, and has since been resolved. Evaluator:evaluatenow marks its second arg,expected_response, as optional, given this is only used in comparative checks
Bug Fixes
- Resolved an issue where the splitter was not loading documents via an appropriate registered language extension
- Correct malformed URI issue in splitter
- Updated invocation of
LangiumEvaluatorwith 3 args to align with other Evaluator types - Average helpers, such as
averageAcrossCasesandaverageAcrossRunnersfor evaluators, no longer mutate the input to compute their average results
General improvements
- Refreshed existing examples with ChromaDB setup included
v5.0.7 langium-ai-tools, v0.4.1 langium-ai
August 5th, 2026
Various small improvements and adjustments
- Removed most mentions of
--dirfrom the cli usage and skills, in preparation to drop it entirely - Correct some usage in docs/README files
- Removes unused
only_check_codeblocksfromEvalCaseand associated validity checks - also export
MappingRuleand `ProgramMapOptions for the program mapper, previously these were internal, but the types are expected to be externally referenceable - also export
SplitterOptionsfor the same reason above, was not available externally as expected
v0.4.0 langium-ai
July 29th, 2026
Big CLI update with breaking changes and an overall focus on improving stability across different project configurations, supporting automated use, and reducing the footprint size.
New Features
- Support for multi-language Langium projects, previously we only handled the singular case
- Added the
-yflag to most commands in lai to accept defaults, allowing automatic setup in CI environments and as part of scripted workflows - Detection of outdated descriptors: loading a descriptor generated by an older LAI version now warns and recommends regenerating with
lai gen descriptor - Detection of outdated
lai.config.jsoncfiles (also prompts to regen withlai init config) - Auto-summarization of validations over 1k lines in the default generated system prompt
- Per-language validator detection: multi-language projects that add one validator per language are now picked up, and the generated system prompt adds a
Validation Rulessection for each
Breaking changes
- Changed LAI config & descriptors formats (
lai.config.jsonc&yourdsl.descriptor.yml) to improve handling for:- multi-language projects
- multiple built-ins
- better langium config recognition
- per-language validators, now tracked as a
services.validatorslist (replaces the old singleservices.validatorfield, which has been removed) - consistent camelCase for all descriptor properties:
langium_configand everyservices.*key (e.g.scope_provider,code_action_provider) are now camelCase (langiumConfig,scopeProvider,codeActionProvider). Previously this was mixed
This requires regenerating existing configs. The CLI will prompt for this when an older version is detected, as noted above
The current recommendation is to cleanly regenerate these files with lai init
General Improvements
- Improved on naive handling for more than 1 Langium grammar file in a project, which overlooked the singular entry point from the language config
- Factored out unneeded deps or replaced with lighter-weight alternatives for numerous packages
- Better service detection logic, especially for finding the right module file, create*Services function, and language service set properties (which are all used in generating initial evals)
- Emit proper exit codes when the cli fails during init, gen, or on evals. Makes this properly usable in scripts or CI
- Cap example checking for descriptor at 100, in case we picked up a very large directory
- Add file extensions into the config, so we can more easily filter relevant language examples later
- Integration tests added in to improve turnaround time on direct testing with single & multi language Langium projects
- README refresh to update stale & outdated content
- SKILLS refresh to update stale & outdated content
v0.3.2 langium-ai, v5.0.6 langium-ai-tools
July 22nd, 2026
Some general patch work
- Bump dependencies
- Removes chalk in favor of native
styleTextinstead.
v5.0.5 langium-ai-tools
July 13th, 2026
Patch bump for trusted publishing with provenance
v0.3.1 langium-ai (2026-06-23)
June 23rd, 2026
Publishing changes + small improvements (add provenance)
- Publish through CI with provenance
- Automate publishing based on
lai-andtools-tags going forward - Add
lai eval --listas an option to list all evaluations without running them - Improve
lai evalto take variadic files & dirs without needing--dir(which is deprecated & will be phased out)
v0.3.0 langium-ai, v5.0.4 langium-ai-tools
June 16th, 2026
langium-ai (lai)
- Improved Langium service detection logic, to pick up services that were otherwise missed automatically.
In most cases the
laiskill resolved all of these - Bundle up the CLI properly
- Properly sync up CLI version with package.json version
- Add
lai init configandlai init evalssub-commands with documentation - Add
lai eval --dir PATHas a way to set custom evaluation directories - Embed templates within the bundle, rather than sourcing externally
- Remove various dependencies that were unneeded (or lead to bundling issues)
- Adds internal release scripts & tools to standardize things going forward
langium-ai-tools (lib)
- Similar removal of extra dependencies
v0.2.5 langium-ai
Dependency updates + update reported version in the CLI
v5.0.3 langium-ai-tools, v0.2.3 langium-ai
Dependency updates and lockfile maintenance.
Maintenance
- Bump
globto v13,commanderto v14,orato v9,chalkto v5.6,fs-extrato v11.3 - Update lockfile
v5.0.2 langium-ai-tools, v0.2.2 langium-ai
Lockfile bump.
v5.0.1 langium-ai-tools, v0.2.1 langium-ai
Pair of small patch releases to resolve some issues, primarily related to CLI and tools interop.
Fixes
- Fix an issue with eval suite collection where CLI could report 0 evals for files, despite cases being present
- Correct some wording with regards to 'test' vs. 'eval'
- Bump engines to node22
- Update docs to point to the new skills that were made, rather than the 2 we began with
- Chores for updating dependencies
v5.0.0 langium-ai-tools, v0.2.0 langium-ai
Breaking changes
- Langium is now a peer dependency —
langium-ai-toolsno longer pins a specific Langium version. Projects must provide their ownlangium(>=4.0.0 <5.0.0). This decoupleslangium-ai-toolsreleases from Langium releases. - Evaluations now return a 0–1 score instead of pass/fail
- Decoupled volatile interfaces/types from core package
New features
- CLI (
langium-ai) — new Commander.js CLI for bootstrapping AI-powered tooling in Langium projectslai init— interactive project setup with Langium detectionlai gen descriptor— generate language descriptors from project analysislai gen sysprompt— synthesize system prompts from descriptorslai validate— validate descriptor schema and file pathslai evaluate— run.eval.tsevaluation suites with verbose mode, custom sysprompts, and progress trackinglai history— view past evaluation runs with--onelinesupportlai show— inspect evaluation run resultslai compare— compare two evaluation runs side-by-sidelai stats— aggregate statistics across runs with tag filteringlai tag— tag evaluation runs for trackinglai export— export results as CSV or JSONlai clean— clean old evaluation runslai status— check project status
- Evaluation suite API — vitest-style testing API with
describe,evaluation,beforeAll,afterAll,beforeEach,afterEach,.skip(),.only(), andevaluation.each()for parametrized tests - LLM provider support — pluggable providers for descriptor and sysprompt generation (Claude, OpenAI, Ollama, Gemini, Codex)
- Agent skills — added skill documents for coding agents
- LAI CLI usage skill with workflow guidance
- Langium framework skill for deep project understanding
/lai-gen-language-skillfor constructing a skill for your DSL/lai-gen-descriptorfor generating & improving a language descriptor/lai-gen-syspromptfor generating & refining a system prompt for your language/lai-gen-evalsfor generating & updating the evaluation suite for your language (builds off of the base fromlai init)/lai-gen-mcpfor generating an mcp server for your language
- Automatic Langium project structure detection (grammar, services, validators, built-ins)
- Automatic Claude Code path detection during init
- Prompt to install
langium-ai-toolsduring init - Support for built-in files in descriptors and system prompts
- Descriptor and sysprompt versioning
General improvements
- Switched to Biome for formatting and oxlint for linting
- Added knip for unused code detection
- Modernized vitest configs; CLI uses forks pool
- CI workflow updated with lint and format checks, Node 24.x
- Comprehensive documentation for generated evaluation files
- Updated and improved READMEs across packages
- npm audit fixes and dependency bumps
v4.2.1
March 24th, 2026
General improvements
- Export document syntax analyzer from langium-ai-tools
v4.2.0
March 20th, 2026
General improvements
- Updated to track langium 4.2.x
- Fix outdated dependency in MCP package
v4.1.5
New features
- Introduced yaml -> evalcase decoder for loading evaluator cases in bulk
General improvements
- Updated tools readme with evaluation matrix details
- Added tests for evaluator + splitter
- Setup eslint and lint during CI
- Bump pinned node to v24 via nvmrc + direnv
- Move edit distance evaluator from core into examples
- Move levenshtein distance evaluator into examples
- Quiet down stderr reporting on lexer/parser errors
- Update usages without context & mark tags optional
- Update tsconfig + imports
- npm audit fixes
- Ignore local files
v4.1.4
December 17th, 2025
New features
- Use protobuf definition to generate language independent types (#9)
- Align langium and lai versions
v4.1.0
September 30th, 2025
New features
- Initial LAI MCP server implementation (#7)
- Collect rule call statistics (#8)
- Added tests for document syntax analyzer
- Allow setting includeImportedRules and includeHiddenRules
General improvements
- Move main to track latest langium, 4.1.X
- Bump packages
- Correct install ref on README
- Audit updates
- Added CI build
- Fixed extension usage in document uri
v0.0.2
May 13th, 2025
New features
- Add splitter example
- Update splitter with program map functionality
- Added copyrights
General improvements
- Update examples & exports
- README update
- Clean up other packages with small corrections
- Add launch config
v0.0.1
April 17th, 2025
New features
- Initial release of langium-ai and langium-ai-tools