The language for building reliable, typed AI applications. Start quickly, learn systematically, or jump directly to reference material.
BAML is a language and toolchain for defining reliable, typed AI application interfaces.
Define functions, prompts, and data models in BAML, then generate the host-language client used by your application. The language keeps the model-facing contract explicit while the generated client provides a typed application boundary.
This documentation is organized around the language itself, practical workflows, generated standard-package references, and the CLI surface that ships with each toolchain release.
Open language
BAML source stays readable and portable. The language reference explains the syntax and semantics, while the generated package pages document the exact APIs exposed by a selected BAML release.
- Explicit contracts: Functions and types make the model boundary inspectable.
- Typed clients: Generated code carries those contracts into the host application.
- Release-specific reference: Package and CLI pages come from one selected compiled toolchain.
Start learning
Begin with Get started for the shortest path to a checked BAML function. Continue through the BAML book for a deliberate, chapter-by-chapter path through the language.
Reference
Use the language reference for concepts, syntax, types, and declarations. Browse standard packages for APIs generated from the exact selected BAML toolchain.
Language bridges
Understand how BAML values, errors, streaming, and generated names map into the host language used by your application in the language bridge overview.