Help us improve
Share bugs, ideas, or general feedback.
From baml
Generates complete .baml files for type-safe LLM extraction, classification, RAG, and agent workflows from natural language requirements.
npx claudepluginhub agentic-insights/foundry --plugin bamlHow this skill is triggered — by the user, by Claude, or both
Slash command
/baml:baml-codegenThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate type-safe LLM extraction code. Use when creating structured outputs, classification, RAG, or agent workflows.
assets/agents/README.mdassets/classification/README.mdassets/classification/sentiment_classification.bamlassets/extraction/README.mdassets/extraction/invoice_extraction.bamlassets/integrations/README.mdassets/rag/README.mdreferences/BAML-REFERENCE-SOURCE.mdreferences/advanced-patterns.mdreferences/examples.mdreferences/frameworks-langgraph.mdreferences/languages-other.mdreferences/languages-python.mdreferences/languages-typescript.mdreferences/mcp-interface.mdreferences/patterns.mdreferences/philosophy.mdreferences/providers.mdreferences/types-and-schemas.mdreferences/usecase-image-forms.mdProvides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.
Share bugs, ideas, or general feedback.
Generate type-safe LLM extraction code. Use when creating structured outputs, classification, RAG, or agent workflows.
baml_client/ - 100% generated, overwritten on every baml-cli generate; check baml_src/generators.baml for output_type (python, typescript, ruby, go)baml_src/ - Source of truth for all BAML codebaml-cli generate after changes - Regenerates typed client code for target language.baml → generate native code (Python/TypeScript/Ruby/Go), no runtime dependencybaml-cli test to iterateAnalyze → Pattern Match (MCP) → Validate → Generate → Test → Deliver
↓ [IF ERRORS] Error Recovery (MCP) → Retry
| Element | Example |
|---|---|
| Class | class Invoice { total float @description("Amount") @assert(this > 0) @alias("amt") } |
| Enum | enum Category { Tech @alias("technology") @description("Tech sector"), Finance, Other } |
| Function | function Extract(text: string, img: image?) -> Invoice { client GPT5 prompt #"{{ text }} {{ img }} {{ ctx.output_format }}"# } |
| Client | client<llm> GPT5 { provider openai options { model gpt-5 } retry_policy Exponential } |
| Fallback | client<llm> Resilient { provider fallback options { strategy [FastModel, SlowModel] } } |
string, int, float, bool | Multimodal: image, audioType[] (array), Type? (optional), map<string, Type> (key-value)Type1 | Type2 (union), nested classes@description("..."), @assert(condition), @alias("json_name"), @check(name, condition)openai, anthropic, gemini, vertex, bedrock, ollama + any OpenAI-compatible via openai-generic
| Pattern | Use Case | Model | Framework Markers |
|---|---|---|---|
| Extraction | Unstructured → structured | GPT-5 | fastapi, next.js |
| Classification | Categorization | GPT-5-mini | any |
| RAG | Answers with citations | GPT-5 | langgraph |
| Agents | Multi-step reasoning | GPT-5 | langgraph |
| Vision | Image/audio data extraction | GPT-5-Vision | multimodal |
retry_policy Exp { max_retries 3 strategy { type exponential_backoff } }[FastCheap, SlowReliable] for cost/reliability tradeoff.baml files (types, functions, clients, retry_policy)