BAML is a domain-specific language for building and orchestrating AI agents and pipelines. It focuses on type safety and predictable model behavior to reduce hard-to-find production errors.
Define AI pipelines in one place
BAML lets developers describe prompts, functions, and the connections between them declaratively. That single source of truth is then turned into a more robust pipeline that can run across different LLM providers and multiple programming languages.
- Declarative definitions for prompts, functions, and their relationships
- Works with any LLM provider
- Supports Python, TypeScript, Ruby, Go, and other languages
Type safety and quality control
BAML introduces strict types for model inputs and outputs, helping you catch mismatches earlier instead of debugging failures at runtime. This makes agent workflows and call chains easier to maintain over time.
- Strict input/output typing for model calls
- Earlier validation to reduce runtime surprises
Developer tooling
BAML includes tools designed for day-to-day development in code editors and CI.
- CLI
- Support via uv
- VS Code extension
- Recognized by tools like Cursor and Claude

