BAML icon

BAML

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.

No discussions yet

Be the first to start a discussion about BAML

Demo Video for BAML

Developer

Boundary builds BAML, an open-source language and toolchain for reliable, type-safe LLM applications and workflows.

Pricing and Plans

PlanPriceFeatures
FreeFree
  • CLI & editor extensions
  • Unlimited BAML schemas
  • TypeScript generation
  • Basic schema validation
  • Local development
  • Single developer
  • Open source
  • Community support
Team$25/monthly
  • Advanced type generation
  • Runtime validation
  • Unlimited schemas
  • Team collaboration
  • Private schemas
  • Custom transformations
  • Priority support
  • Annual billing available (save 20%)
EnterpriseContact us
  • On-premise deployment
  • SSO & SAML
  • Custom rate limits
  • Audit logs & compliance
  • 99.9% uptime SLA
  • Dedicated account manager
  • Custom training & onboarding
  • Contact sales

System Requirements

Operating System
Windows, macOS, Linux
Memory (RAM)
2 GB+
Processor
Any modern CPU
Disk Space
N/A (web)

AI Capabilities

Type-safe structured output generation
Provider/model abstraction and runtime routing
Streaming partial structured responses
Multimodal input handling (PDF/image/audio/video)
Prompt preview and cURL inspection
Runtime validation (checks/asserts)
Dynamic schema composition with TypeBuilder
OpenAPI generation and client SDKs
Usage/timing/response introspection via Collector