No more prompt guessing games

Ever wondered what prompt actually gets sent to the model? In most frameworks, it's hidden behind layers of abstraction. BAML shows you everything.

The Prompt Preview tab shows the exact text going to the model. Full transparency—no hidden system prompts, no mystery.

main.baml
class Email {
  subject string
  body string
  priority "urgent" | "normal" | "low"
}

function DraftReply(original: Email, tone: "formal" | "casual") -> string {
  client "openai/gpt-4o-mini"
  prompt #"
    You received this email:
    Subject: {{ original.subject }}
    Body: {{ original.body }}
    Priority: {{ original.priority }}

    Write a {{ tone }} reply.
  "#
}
Click Run to see the rendered prompt