Devtoolwatch BoardGet it every Monday

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.

Updated Nov 1, 2026. Review written Oct 22, 2026 from the project's own sources; usage data refreshed every Monday.

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.

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 baml

With the install script (macOS or Linux)

curl -fsSL https://pkg.boundaryml.com/install.sh | sh -s

Requirements

  • 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

  1. Run `baml init` to initialize a new BAML project.
  2. Run `baml agent install` to install agent guidance matched to your project's BAML version.
  3. Run `baml ide install --code` to set up editor support.
  4. 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.

New GitHub stars per week for BAML12 weeks from Aug 9, 2026: 171, 54, 38, 49, 39, 25, 143, 46, 25, 32, 15, 36 new stars, an average of 56 a week.Aug 9week of Oct 25
New GitHub stars per week for the last 12 weeks, from GitHub's stargazer history (today's stargazers by the week they starred).
Show the weekly numbers
New GitHub stars per week for BAML
Week ofNew stars
Aug 9, 2026171
Aug 16, 202654
Aug 23, 202638
Aug 30, 202649
Sep 6, 202639
Sep 13, 202625
Sep 20, 2026143
Sep 27, 202646
Oct 4, 202625
Oct 11, 202632
Oct 18, 202615
Oct 25, 202636

On Hacker News

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:

Model SDKs and gateways ranked by momentum, the week of Oct 25–31, 2026
RankToolStarsDownloads/wk
#1thinking-orbsthinking-orbs is a React library of dotted, animated thought-orb loading indicators for AI and agent user interfaces.3.9k1.4M
#2HeadroomHeadroom compresses tool outputs, logs, files, and RAG chunks locally before they reach the LLM, as a library, proxy, or MCP server.78.5k125.8k
#3LiteLLMLiteLLM is an open source AI gateway and Python SDK that calls 100+ LLM providers through one OpenAI-format interface.62.5k23.1M
#4Honcho Memory library for building stateful agents7.9k–
#5Anthropic SDKAnthropic SDK is the official Python library for calling the Claude API from Python applications.4k111M
#6Hugging Face HubHugging Face Hub is the official CLI and Python client for downloading, uploading and managing models, datasets and Spaces on the…4k68.3M

All LLM SDKs and gateways, ranked

Recent BAML releases

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

  1. BoundaryML/baml on GitHub
  2. BAML README
  3. @boundaryml/baml on npm
  4. baml-py on PyPI
  5. BAML website
  6. Release baml-language-0.22.3-nightly.20261020.a (Oct 21, 2026)
  7. Release baml-language-0.22.3-nightly.20261019.a (Oct 20, 2026)
  8. Release baml-language-0.22.3-nightly.20261018.a (Oct 19, 2026)
  9. Hacker News: Every Way to Get Structured Output from LLMs
  10. Hacker News: Structured outputs create false confidence
  11. Hacker News: Show HN: BAML - A new programming language to get structured data from LLMs
  12. Devtoolwatch Board, the week of Oct 25–31, 2026

BAML README badge

Maintainers can show the tool's weekly Board rank in their README:

Devtoolwatch badge for BAML

[![Devtoolwatch](https://index.devtoolwatch.com/badge/baml.svg)](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].