BAML TextMate grammar

July 13, 2026 ยท View on GitHub

The TextMate grammar for BAML (scopeName: source.baml), published as @boundaryml/baml-grammar.

This repository is a read-only mirror, generated from typescript2/pkg-grammar in the BAML monorepo. Do not edit it by hand; changes land here automatically when the grammar changes upstream. It is also the source GitHub Linguist vendors for .baml highlighting on github.com.

Install

npm install @boundaryml/baml-grammar

Shiki

The default export is a ready-to-use LanguageRegistration:

import { createHighlighter } from "shiki";
import baml from "@boundaryml/baml-grammar";

const highlighter = await createHighlighter({
  themes: ["github-dark"],
  langs: [baml],
});

highlighter.codeToHtml(code, { lang: "baml", theme: "github-dark" });

The grammar is self-contained (it embeds no other language scopes), so no additional grammars need to be loaded.

VS Code / vscode-textmate / Monaco (monaco-textmate)

Use the raw grammar JSON, plus the editor configuration (brackets, comments, auto-closing pairs):

import grammar from "@boundaryml/baml-grammar/baml.tmLanguage.json" with { type: "json" };
import languageConfiguration from "@boundaryml/baml-grammar/language-configuration.json" with { type: "json" };

If your bundler cannot handle JSON import attributes (Metro/React Native, some Vite configs), use the default export instead: it is the same grammar inlined in a plain JS module.

import grammar from "@boundaryml/baml-grammar";

Files

PathContents
dist/index.jsESM module, default-exports the grammar (Shiki LanguageRegistration)
grammars/baml.tmLanguage.jsonRaw TextMate grammar
grammars/baml.sublime-syntaxSublime Text syntax (also consumed by syntect/bat)
syntaxes/baml.xmlKDE KSyntaxHighlighting definition (Kate, Pandoc via skylighting)
samples/baml.sampleCanonical BAML sample used by grammar registries
language-configuration.jsonVS Code style language configuration

The paths above (and scopeName: source.baml) are frozen API: external registries fetch them by URL. Renames are breaking changes. SUPPORT.md tracks where the grammar has landed.

License

Apache-2.0


This repository is a read-only mirror, generated from typescript2/pkg-grammar in the BAML monorepo by its sync-grammar-mirror workflow. Do not edit files or open pull requests here โ€” changes land automatically when the grammar changes upstream. Report issues in BoundaryML/baml.