BAML review
BAML is an open-source, TypeScript-like programming language for agents, with runtime types, typed errors, and native LLM functions, tests, and evaluations.
TL;DR
BAML is a Turing-complete programming language designed for software written by agents and humans. It targets developers building agent and LLM code who want runtime types without `any` or unchecked casts. BAML can run standalone or be adopted incrementally through generated SDKs for Python and TypeScript.
- 9.5kGitHub stars
- +36new stars, week of Oct 25
- ~533.7kdownloads a week, +21% vs 4-week avg
- #10in Model SDKs and gateways this week
BAML at a glance
- Category
- Model SDKs and gateways
- Maintained by
- Boundary (organization, @BoundaryML on GitHub)
- License
- Apache 2.0
- Language
- Rust, TypeScript, BAML
- Repository
- github.com/BoundaryML/baml
- Website
- boundaryml.com/explore
- npm package
- @boundaryml/baml 0.226.2
- PyPI package
- baml-py 0.226.2
- Latest release
- baml-language-0.22.3-nightly.20261020.a on GitHub, Oct 21, 2026
- First published
- Oct 6, 2023
What BAML does
- BAML provides TypeScript-like syntax with unions, generics, and interfaces, plus a type system the README compares to Rust's.
- BAML keeps types at runtime, with no `any` and no unchecked casts.
- BAML has typed, statically analyzed errors and exhaustive pattern matching.
- BAML supports green threads with `spawn` and `await` for concurrency.
- BAML includes native LLM functions, tests, testsets, and evaluations.
- BAML offers `baml describe` for AST-aware code discovery and `baml run` for executing any function from the command line.
- BAML generates SDKs so Python and TypeScript projects can call BAML functions.
How it works
You install the BAML toolchain, initialize a project with `baml init`, and run functions with `baml run`. `baml agent install` installs agent guidance matched to the project's BAML version. For incremental adoption, BAML generates a baml_client that runs on the Node.js runtime (@boundaryml/baml) or Python runtime (baml-py). The README says BAML functions can also be called from Go, C#, and Java.
How to install and start using BAML
With Homebrew (macOS or Linux)
brew install bamlWith the install script (macOS or Linux)
curl -fsSL https://pkg.boundaryml.com/install.sh | sh -sRequirements
- The Homebrew and install-script options are documented for macOS or Linux.
- The Python runtime baml-py requires Python 3.10 or later.
- The Node.js runtime @boundaryml/baml requires Node.js 10 or later.
First steps
- Run `baml init` to initialize a new BAML project.
- Run `baml agent install` to install agent guidance matched to your project's BAML version.
- Run `baml ide install --code` to set up editor support.
- Run `baml run main` to execute the project's main function.
Who BAML is for
- Teams whose code is written or edited by AI coding agents.
- Developers building LLM functions who want built-in tests and evaluations.
- Python or TypeScript projects that want to adopt a typed agent language incrementally.
Limitations to know
- BAML is pre-1.0. Some APIs and tooling may continue to evolve.
- BAML is a new language, so teams must learn its syntax and toolchain, though it resembles TypeScript.
- Recent toolchain releases are nightly builds of the 0.22.3 line.
Is BAML growing? Usage data
In the week of Oct 25–31, 2026, BAML ranked #196 on the Devtoolwatch Board and #10 in Model SDKs and gateways, with a momentum score of 45 out of 100. Its main package had about 533.7k downloads that week, +21% against its own 4-week average.
Show the weekly numbers
| Week of | New stars |
|---|---|
| Aug 9, 2026 | 171 |
| Aug 16, 2026 | 54 |
| Aug 23, 2026 | 38 |
| Aug 30, 2026 | 49 |
| Sep 6, 2026 | 39 |
| Sep 13, 2026 | 25 |
| Sep 20, 2026 | 143 |
| Sep 27, 2026 | 46 |
| Oct 4, 2026 | 25 |
| Oct 11, 2026 | 32 |
| Oct 18, 2026 | 15 |
| Oct 25, 2026 | 36 |
On Hacker News
- Every Way to Get Structured Output from LLMs, 169 points and 83 comments (Jun 18, 2024)
- Structured outputs create false confidence, 155 points and 66 comments (Dec 21, 2025)
- Show HN: BAML - A new programming language to get structured data from LLMs, 18 points and 2 comments (Mar 26, 2024)
- 5 Years, 12 Pivots, 16 points and 5 comments (Dec 30, 2025)
- Baml: The Programming Language for Agents, 8 points and 5 comments (Jul 15, 2026)
The Board ranks tools by four signals each week: new stars, new stars for the repo's size, added downloads and download growth beyond the market. How the ranking works.
BAML alternatives
Other LLM SDKs and gateways on the Board in the week of Oct 25–31, 2026, by momentum:
| Rank | Tool | Stars | Downloads/wk |
|---|---|---|---|
| #1 | thinking-orbsthinking-orbs is a React library of dotted, animated thought-orb loading indicators for AI and agent user interfaces. | 3.9k | 1.4M |
| #2 | HeadroomHeadroom compresses tool outputs, logs, files, and RAG chunks locally before they reach the LLM, as a library, proxy, or MCP server. | 78.5k | 125.8k |
| #3 | LiteLLMLiteLLM is an open source AI gateway and Python SDK that calls 100+ LLM providers through one OpenAI-format interface. | 62.5k | 23.1M |
| #4 | Honcho Memory library for building stateful agents | 7.9k | – |
| #5 | Anthropic SDKAnthropic SDK is the official Python library for calling the Claude API from Python applications. | 4k | 111M |
| #6 | Hugging Face HubHugging Face Hub is the official CLI and Python client for downloading, uploading and managing models, datasets and Spaces on the… | 4k | 68.3M |
Recent BAML releases
- baml-language-0.22.3-nightly.20261020.a, Oct 21, 2026
- baml-language-0.22.3-nightly.20261019.a, Oct 20, 2026
- baml-language-0.22.3-nightly.20261018.a, Oct 19, 2026
- baml-language-0.22.3-nightly.20261016.a, Oct 17, 2026
- baml-language-0.22.3-nightly.20261014.a, Oct 15, 2026
BAML FAQ
Is BAML free and open source?
Yes. BAML's source code is on GitHub (BoundaryML/baml) under the Apache 2.0 license, so you can use it for free.
How do I install BAML?
Run brew install baml. It needs Node.js >= 10. The install section above has the other options from the project's README.
Is BAML still maintained?
Yes. The BoundaryML/baml repository was last updated on Oct 22, 2026, and the latest release, baml-language-0.22.3-nightly.20261020.a on GitHub, came out on Oct 21, 2026.
How popular is BAML?
BAML has 9.5k GitHub stars as of Nov 1, 2026. It gained 36 new stars in the week of Oct 25–31, 2026, against a 12-week average of 56 a week. Its main package had about 533.7k downloads that week, +21% against its own 4-week average. That made it #10 among LLM SDKs and gateways on the Devtoolwatch Board.
What are the best alternatives to BAML?
Other LLM SDKs and gateways on the Devtoolwatch Board in the week of Oct 25–31, 2026, by momentum: thinking-orbs (#1), Headroom (#2), LiteLLM (#3), Honcho (#4), Anthropic SDK (#5). The alternatives table above has their numbers.
What is BAML?
BAML is a Turing-complete programming language for software written by agents and humans. BAML looks like TypeScript, keeps types at runtime, uses typed errors, and includes native LLM functions, tests, and evaluations.
Can I use BAML from Python or TypeScript?
Yes. BAML generates SDKs for incremental adoption from Python and TypeScript. The README says you can call a BAML function from TS, Python, Go, C#, Java, and other languages.
How do coding agents work with BAML?
BAML provides baml agent install, which installs guidance matched to your project's BAML version. Agents can use that skill and baml describe for AST-aware code discovery when writing or editing .baml files.
Is BAML stable?
BAML is not yet at 1.0. The homepage says the language is usable today, but some APIs and tooling may continue to evolve.
Does BAML support concurrency?
Yes. BAML has green threads with spawn and await. The README describes this as colorless concurrency like Go.
Sources
- BoundaryML/baml on GitHub
- BAML README
- @boundaryml/baml on npm
- baml-py on PyPI
- BAML website
- Release baml-language-0.22.3-nightly.20261020.a (Oct 21, 2026)
- Release baml-language-0.22.3-nightly.20261019.a (Oct 20, 2026)
- Release baml-language-0.22.3-nightly.20261018.a (Oct 19, 2026)
- Hacker News: Every Way to Get Structured Output from LLMs
- Hacker News: Structured outputs create false confidence
- Hacker News: Show HN: BAML - A new programming language to get structured data from LLMs
- Devtoolwatch Board, the week of Oct 25–31, 2026
BAML README badge
Maintainers can show the tool's weekly Board rank in their README:
[](https://index.devtoolwatch.com/tools/baml/)How this page is made: Devtoolwatch writes each review from the project's README, releases, package metadata and website, with an AI model, then checks every claim against the source it cites and drops what the sources don't support. The numbers come from Devtoolwatch's daily GitHub snapshots, GitHub's stargazer history, and the npm and PyPI download APIs. Spotted an error? Email [email protected].