BAML
A domain-specific language for typed LLM functions
BAML is profiled here as a Prompt Management tool for engineering teams. Read about features, pricing, and how it compares to related options in the tools directory.
Description
BAML is an open-source language for building reliable LLM functions, created by the team at Boundary. Developers write a prompt as a typed function in a .baml file, and the toolchain generates client code that returns parsed, schema-conformant results in Python, TypeScript, and other languages. An error-tolerant parser coerces imperfect model output into the declared type, which raises reliability without forcing a specific provider. Because the prompt lives in a typed source file, changes get version-controlled and tested like any other code. The VS Code playground shows the rendered prompt and parsed result side by side, which shortens the edit-and-check loop.
Key Capabilities:
Typed LLM functions defined in a dedicated .baml schema language
Generated, type-safe clients for Python, TypeScript, Ruby, and Go
Error-tolerant parsing that recovers structure from malformed output
VS Code playground for testing prompts with live previews
Streaming of structured partial results
Model-agnostic across major providers under an Apache 2.0 license
Alternative tools
- Langtail
Collaborative prompt playground with testing and deployment
- Lunary
Open-source prompt management and observability for LLM apps
- W&B Weave
Trace, evaluate, and monitor LLM applications systematically
- Traceloop
OpenTelemetry-native tracing for LLM applications
- LangChain
The standard open-source framework for LLM applications
- Portkey
AI gateway with routing, guardrails, and prompt management
