Air 0.47.0 makes Jinja templates as effortless as static files: drop a templates/ directory into your project and app.jinja is ready to use. This release also ships AGENTS.md, a complete guide that teaches AI coding assistants how to build Air apps from scratch. Upgrade with:
uv add --upgrade airWhat's new
Zero-config Jinja templates. app.jinja is now always available on every air.Air() instance, no setup required. Drop a templates/ directory into your project and start rendering. The same pattern as static files: put files where Air expects them, and the wiring happens automatically.
import air
app = air.Air()
@app.page
def index(request: air.Request):
return app.jinja(request, "home.html", title="Home")AGENTS.md for AI coding tools. A comprehensive build guide lives in the repo root and is served from the docs site at docs.airwebframework.org/AGENTS.md. AI assistants that read it can scaffold a complete Air app: routes, Jinja templates, static files, forms, HTMX, SSE, and Railway deployment. The guide was tested end-to-end by an AI building its first Air app, and four gaps it found were fixed immediately.
Railway deployment in the AI guide. The AGENTS.md build instructions cover the full path from blank project to production on Railway: a railway.json, a hypercorn dependency, and four CLI commands.
What's better
Static files cookbook rewritten. The cookbook recipe now shows the actual zero-config workflow instead of a manual app.mount() call that hasn't been needed since 0.46.0.
Docs build works with griffe v2. Bumped mkdocstrings-python to 2.0.3, which depends on griffelib directly instead of the removed griffe meta-package. The docs build had been broken by the griffe 2.0 package split but hadn't been deployed since October 2025.
Contributors
@audreyfeldroy (Audrey M. Roy Greenfeld) and @pydanny (Daniel Roy Greenfeld) designed and built this release: zero-config Jinja template detection, the AGENTS.md build guide, the mockup-to-template workflow, Railway deployment instructions, and the docs build fix.