AHTML vs llms.txt
when each one wins
llms.txt tells an LLM what your site contains. AHTML tells an agent what your site can do.
AHTML compiles to llms.txt as a free byproduct. Installing AHTML gives you both — plus MCP, OpenAPI, and JSON-LD, all from one source of truth.
Feature-by-feature
The honest table.
| llms.txt | AHTML | |
|---|---|---|
| Format | Markdown | Compact text + JSON, plus emits llms.txt |
| Typed entities (price, SKU, availability) | — | ✓ |
| Typed actions (cost, reversible, side-effects) | — | ✓ |
| Confirmation contract | — | ✓ |
| Freshness / TTL / ETag | — | ✓ |
| Emits MCP | — | ✓ |
| Emits OpenAPI 3.1 | — | ✓ |
| Emits JSON-LD (schema.org) | — | ✓ |
| Emits llms.txt | ✓ (is the format) | ✓ (auto) |
| Token efficiency for fact-extraction | good | best (95–100% accuracy at fewer tokens — measured) |
| Cryptographic signing (v0.2) | — | ✓ |
| Site-wide policy block | partial | ✓ |
| Framework plugin (Next/Vite/SvelteKit) | — | ✓ |
| License | CC BY 4.0 | MIT (libraries) |
Pick llms.txt when
- You only need to expose a documentation index (links + descriptions).
- You don’t expose any actions, only read-only content.
- You can’t install a framework plugin (e.g. pure static HTML hosting).
Pick AHTML when
- Agents need to take actions on your site (add to cart, file a ticket, book a slot).
- You want typed entities (prices, SKUs, availability) without writing schema.org by hand.
- You want MCP and OpenAPI emitted automatically alongside llms.txt.
- You want signed, fresh snapshots so agents trust what they read.
What they have in common
- Both are open standards aimed at making the web legible to AI.
- Both can be served as a static endpoint with no auth.
- Both are additive — your existing HTML is untouched.
Three minutes to install. Decide for yourself.
AHTML is MIT-licensed and runs entirely inside your app. No SaaS, no per-request cost, no lock-in.