What is PageSkim?
PageSkim is an open-source format and toolchain that gives every HTML page a compact sibling file (page.llm.md) that LLMs and agents can read at 10–50x fewer tokens than the raw HTML — using only static files. No servers, no RAG pipelines, no vector databases.
Each sibling has three layers: a header (identity + a table of contents, a hundred-ish tokens), facts (the page's verifiable data, compactly encoded), and chunks (each section as plain prose with a stable anchor). Agents fetch the header first, decide what they need, then fetch only those chunks — the two-hop retrieval contract you can try in this playground without any API keys.
Trust is part of the format: sibling content must be derivable from the human-visible HTML, and pageskim validate flags cloaked or injected content, stale hashes, and broken anchors.
Why it works — the evidence
- Raw HTML carries ~67.6% token overhead versus its semantic content (arXiv 2606.19116); plain HTML→markdown conversion already yields 5–10x reductions (Cloudflare measured 16,180 → 3,150 tokens on a sample post).
- Removing irrelevant context improves accuracy, not just cost: LLMLingua and LongLLMLingua report up to 21.4% accuracy gains with ~4x fewer tokens. PageSkim's layered two-hop design is the zero-infrastructure static equivalent.
- Forcing prose into rigid formats measurably hurts LLM reasoning (arXiv 2408.02442) — so chunks stay plain prose, and only genuinely tabular data is tabular (TOON-style encoding, ~40% fewer tokens than JSON per toonformat.dev).
- Prompt format can swing accuracy by up to 40% on smaller models with no universal winner (arXiv 2411.10541) — hence the format is serialization-flexible:
.mdand.jsonare equivalent renderings.
Free API
This playground doubles as a free conversion API — POST /api/convert with {"html": "..."} or {"url": "https://..."}. Rate-limited, CORS-open, nothing stored. Details in the repository README.
Links
- Format spec v0.1
- GitHub — spec, CLI, SDK, benchmarks
npx pageskim generate your-site/to make your own site agent-readable
Deploy your own
▲ Deploy this playground to Vercel
The playground stores no user content. The aggregate token counter uses Vercel KV when available and an in-memory fallback otherwise. There are no analytics beyond that counter.