BoundaryML/baml
The programming language for agents
Build with Backblaze B2
SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.
Loading star history...
Where it stands
Rank, growth pace and release cadence relative to everything GStars tracks.
5 releases in the last 90 days, the latest today, with 109 contributors on GitHub.
Peaked at #32 in the weekly ranking the week of Sep 28, its best in the past year.
Use Cases & Benefits
- Defines a specialized programming language for creating reliable AI workflows and agents using structured prompt functions.
- Transforms prompt engineering into schema engineering, enabling type-safe, maintainable, and model-agnostic AI prompt development.
- Use for building type-safe, multi-model AI agents that integrate with any programming language via generated clients.
- Use for rapidly testing and iterating AI prompt designs directly in IDEs with built-in visualization and parallel testing tools.
- Use for implementing robust tool-calling workflows with any LLM, even those lacking native function-calling support.
Should you depend on it?
License terms, project hygiene and risks, from GitHub metadata and GStars' snapshots.
License
Apache 2.0
Permissive: commercial use, modification and redistribution are allowed with attribution; includes an explicit patent grant from contributors.
Community files
- README: present
- Contributing guide: present
Watch-outs
No watch-outs from GStars' checks.
General guidance from repository metadata, not legal advice. How we score
From the README
BAML is a simple prompting language for building reliable AI workflows and agents.
BAML makes prompt engineering easy by turning it into schema engineering -- where you mostly focus on the models of your prompt -- to get more reliable outputs. You don't need to write your whole app in BAML, only the prompts! You can wire-up your LLM Functions in any language of your choice! See our quickstarts for Python, TypeScript, Ruby and Go, and more.
BAML comes with all batteries included -- with full typesafety, streaming, retries, wide model support, even when they don't support native tool-calling APIs
The fundamental building block in BAML is a function. Every prompt is a function that takes in parameters and returns a type.
Every function additionally defines which models it uses and what its prompt is.
Below we call the ChatAgent function we defined in BAML through Python. BAML's Rust compiler generates a "baml_client" to access and call them.
You can write any kind of agent or workflow using chained BAML functions. An agent is a while loop that calls a Chat BAML Function with some state.
And if you need to stream, add a couple more lines:
And get fully type-safe outputs for each chunk in the stream.
Daily snapshots
Stars gained per day, and how forks and open issues moved, from GStars' daily snapshots
+557 stars over 86 days across 27 snapshot days; best day +53 on Aug 13.
Forks
512+39
Open issues
363+52
Compared with peers in LLM
Fastest-growing repositories GStars tracks in this cohort for the week of Nov 8, by 7-day star growth
| Repository | Stars | +7d | Health | Last release |
|---|---|---|---|---|
| NVIDIA/auto-ontology | 11.4K | +8.5K | 75 | — |
| thedotmack/claude-mem | 115.8K | +4.7K | 75 | today |
| DietrichGebert/ponytail | 188.4K | +4.4K | 75 | 12 days ago |
| affaan-m/ECC | 300.8K | +4.3K | 75 | 40 days ago |
| Graphify-Labs/graphify | 145.7K | +3.8K | 75 | today |
| BoundaryML/baml | 9.5K | — | 40 | today |
| Category median | 145.7K | +4.4K | 75 | — |
Discover Repositories
Search across tracked repositories by name or description