Install
openclaw skills install @venki0552/pageskimMake a website readable by LLMs and agents at 10-50x fewer tokens by generating PageSkim .llm.md sibling files for its pages. Use when the user asks to "make my site agent-readable", "add llm.md / llms.txt-style files / PageSkim to my site", "reduce token costs for agents or AI crawlers reading my site", or "optimize my site for AI agents". Detects the site generator (plain HTML, Astro, Next.js, Hugo, Jekyll), runs pageskim generate over the build output, wires a build step plus CI validation, and emits the site index.
openclaw skills install @venki0552/pageskimGoal: every published page.html gets a sibling page.llm.md (plus optional
.llm.json and split files), a /.well-known/pageskim.json site index, and
the build/CI wiring so siblings never go stale. Agents then read pages at
10–50x fewer tokens via the sibling files instead of raw HTML.
Everything runs through npx pageskim (published on npm) — no permanent
dependency is added unless the user wants the build-step wiring.
Check, in order:
| Signal | Generator | Build output | Build command |
|---|---|---|---|
astro.config.* | Astro | dist/ | npx astro build |
next.config.* | Next.js | out/ (needs output: "export") — see note | npx next build |
hugo.toml / config.toml with baseURL | Hugo | public/ | hugo |
_config.yml | Jekyll | _site/ | bundle exec jekyll build |
none of the above, .html files present | Plain HTML | the site root itself | — |
Note for Next.js without static export: siblings can only cover pre-rendered
pages. Offer the runtime alternative (pageskim npm package, SDK
fromDocument() + expose() after hydration) for client-rendered routes,
but prefer static export when the user can enable it.
npx pageskim generate <output-dir> --json --split --site-index --base-url <site-url>
--base-url should be the production origin (used for pages without a
canonical URL and for the site index).Add to package.json (or the equivalent Makefile/CI step):
"scripts": {
"postbuild": "pageskim generate <output-dir> --json --split --site-index --base-url <site-url>"
}
For Hugo/Jekyll (no npm), append to the deploy script:
hugo && npx --yes pageskim generate public --site-index --base-url <site-url>
Siblings are build artifacts: add them to .gitignore unless the site
deploys pre-built files from git, and never hand-edit them.
Use PageSkim's composite GitHub Action, or the raw commands:
- run: npm run build
- uses: venki0552/PageSkim/.github/action@main
with:
path: <output-dir>
base-url: <site-url>
Raw equivalent (also available as scripts/generate-and-validate.sh):
npx pageskim generate <output-dir> --site-index --base-url <site-url>
for page in $(find <output-dir> -name '*.html' ! -name '*.llm.*'); do
npx pageskim validate "$page" "${page%.html}.llm.md" || exit 1
done
npx pageskim validate on them (exit 0; warnings are acceptable,
errors are not)..llm.md vs
header-only) so the user sees the savings — e.g. "your pages now cost
agents 13x fewer tokens; the two-hop header is 150 tokens".<link rel="alternate" type="text/llm+markdown" href="page.llm.md"> to
the site's head template so agents discover siblings from the HTML.