Skip to content

eclipse-langium/langium-ai

v1.0.0MIT

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.md into a short hub with a task router and ten task-oriented references under skills/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 infix rule syntax and precedence order, DocumentBuilder.waitUntil and registerBeforeDocument signatures, the list of default LSP providers, and the claims about slow validations
  • Packaged the skills as a versioned plugin for several agents:
    • Claude Code: .claude-plugin/plugin.json and .claude-plugin/marketplace.json
    • Codex and other Agent Plugins clients: root plugin.json and .agents/plugins/marketplace.json
    • Gemini CLI: gemini-extension.json
    • Pi: pi.skills in the root package.json

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 returning EvaluatorResultData. This was due to an inconsistency in the Evaluator return type, and has since been resolved.
  • Evaluator:evaluate now 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 LangiumEvaluator with 3 args to align with other Evaluator types
  • Average helpers, such as averageAcrossCases and averageAcrossRunners for 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 --dir from the cli usage and skills, in preparation to drop it entirely
  • Correct some usage in docs/README files
  • Removes unused only_check_codeblocks from EvalCase and associated validity checks
  • also export MappingRule and `ProgramMapOptions for the program mapper, previously these were internal, but the types are expected to be externally referenceable
  • also export SplitterOptions for 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 -y flag 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.jsonc files (also prompts to regen with lai 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 Rules section 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.validators list (replaces the old single services.validator field, which has been removed)
    • consistent camelCase for all descriptor properties: langium_config and every services.* 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 styleText instead.

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- and tools- tags going forward
  • Add lai eval --list as an option to list all evaluations without running them
  • Improve lai eval to 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 lai skill resolved all of these
  • Bundle up the CLI properly
  • Properly sync up CLI version with package.json version
  • Add lai init config and lai init evals sub-commands with documentation
  • Add lai eval --dir PATH as 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 glob to v13, commander to v14, ora to v9, chalk to v5.6, fs-extra to 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-tools no longer pins a specific Langium version. Projects must provide their own langium (>=4.0.0 <5.0.0). This decouples langium-ai-tools releases 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 projects
    • lai init — interactive project setup with Langium detection
    • lai gen descriptor — generate language descriptors from project analysis
    • lai gen sysprompt — synthesize system prompts from descriptors
    • lai validate — validate descriptor schema and file paths
    • lai evaluate — run .eval.ts evaluation suites with verbose mode, custom sysprompts, and progress tracking
    • lai history — view past evaluation runs with --oneline support
    • lai show — inspect evaluation run results
    • lai compare — compare two evaluation runs side-by-side
    • lai stats — aggregate statistics across runs with tag filtering
    • lai tag — tag evaluation runs for tracking
    • lai export — export results as CSV or JSON
    • lai clean — clean old evaluation runs
    • lai status — check project status
  • Evaluation suite API — vitest-style testing API with describe, evaluation, beforeAll, afterAll, beforeEach, afterEach, .skip(), .only(), and evaluation.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-skill for constructing a skill for your DSL
    • /lai-gen-descriptor for generating & improving a language descriptor
    • /lai-gen-sysprompt for generating & refining a system prompt for your language
    • /lai-gen-evals for generating & updating the evaluation suite for your language (builds off of the base from lai init)
    • /lai-gen-mcp for 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-tools during 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