# BAML > Domain-specific language and toolchain for type-safe LLM functions, structured outputs, and multi-provider orchestration. BAML (by Boundary) is a domain-specific language and toolchain for building reliable, type-safe LLM workflows. You define functions, types, and clients in `.baml` files, then BAML generates language clients (e.g., Python/TypeScript) that call providers like OpenAI or Anthropic and return validated, structured results. The VS Code/Cursor extension includes an integrated playground with prompt preview and raw cURL visibility. BAML supports streaming typed outputs, multimodal inputs (PDFs, images, audio, video—depending on provider), checks/asserts for validation, dynamic types via a TypeBuilder, and a Collector for usage and raw response inspection. You can also expose functions as REST endpoints with an OpenAPI spec and generate clients for other languages. ## Features - Define LLM functions with typed inputs/outputs and generate language clients from `.baml` files. - VS Code/Cursor playground with prompt preview and raw cURL request view. - Provider-agnostic client config; switch providers/models at runtime. - Streaming structured outputs with type guarantees, including partial field updates. - Expose functions as REST endpoints and auto-generate OpenAPI client SDKs. - Dynamic types at runtime using TypeBuilder for classes/enums. - Checks and asserts to validate values and enforce constraints. - Collector API for token usage, timings, and raw LLM responses. - Multimodal inputs (PDF, image, audio, video) where supported by providers. - Concurrency, retries, error handling, and abort/timeout controls. ## Integrations OpenAI, Anthropic, Google Gemini / Vertex AI, AWS Bedrock, Azure OpenAI, OpenAPI Generator, Visual Studio Code, Cursor, JetBrains IDEs, Next.js, Vercel ## Platforms WEB, WINDOWS, MACOS, LINUX, API, VSC_EXTENSION, JETBRAINS_PLUGIN, DEVELOPER_SDK ## Pricing Open Source, Free tier available ## Version 0.205.0 ## Links - Website: https://www.boundaryml.com/ - Documentation: https://docs.boundaryml.com/home - Repository: https://github.com/BoundaryML/baml - EveryDev.ai: https://www.everydev.ai/tools/baml