Recipes
Full agent examples you can read like real projects.
Recipes are not isolated snippets. Each recipe is an agent folder with identity, prompts, policy, routes, tools, and knowledge working together.
The same pattern appears in every production Axon route: gather the request, render the relevant prompts, call axon.stream() with task context and any narrowed policy. Routes prepare the task state — they don't implement the loop.
export default defineEventHandler(async event => {
const { repo, branch } = await readBody(event)
const prompt = await axon.prompt("repo-review", { repo, branch })
const { stream } = axon.stream({ prompt, policy: { network: { allow: ["api.github.com"] } } })
return sendStream(event, stream)
})
First recipe
Coding Partner is a small custom coding assistant. It shows the core production pattern:
src/boot.vuedefines identity and operating rules.src/prompts/*.vuedefine reusable task framing with props.server/api/chat.post.tshandles interactive TUI messages.server/api/repo-review.post.tsexposes a headless review endpoint.data/knowledge/repo-guidelines.mdgives the agent durable project rules.axon.config.tsand route policy keep the agent inside clear operating bounds.
Why recipes are folders
The folder is the abstraction. A useful agent is not one endpoint or one prompt. It is the shape of the whole project: behavior, context, policy, tools, ingress, and durable data.
Start with coding-partner/, then open each file in the sidebar.