shll.ai
shll.ai is a permanent redirect host for hexokit.com — the one website for the @sahil87 AI coding toolkit (HexoKit rebrand). Every URL shll.ai ever served answers with a tiny static page that lands on its final hexokit.com page; anything un-enumerated is resolved client-side by the 404.html catch-all.
Two endpoints stay real byte copies, never redirects, because they are baked into shipped shll binaries and must never lapse:
- shll.ai/install — a byte copy of hexokit.com/install. A redirect stub here would feed HTML to sh on every curl -fsSL shll.ai/install | sh.
- shll.ai/versions.json — a byte copy of hexokit.com/versions.json, the fallback version manifest (shll ≥ v0.1.31 already prefers hexokit.com first).
How it is built
The site is generated by a zero-dependency Node 22 script — no package.json, no install step:
node sites/shll-ai-redirect-stub/build.mjs # writes sites/shll-ai-redirect-stub/dist/
node --test sites/shll-ai-redirect-stub/*.test.mjs # hermetic unit + integration testsThe build fetches the machine-readable redirect map from https://hexokit.com/shll-ai-redirects.json — produced by sahil87/hexokit-site (cross-repo contract: docs/specs/shll-ai-redirect-map-contract.md there) — validates it against a committed completeness floor, and fails closed: any fetch or validation error stops the build before anything is written, so the last-good deployment stays live.
Deployment is GitHub Pages via .github/workflows/deploy.yml on push to main, on manual dispatch, and on a daily schedule (09:13 UTC, two hours after hexokit-site's own refresh) so the byte copies track hexokit.com. dist/ is gitignored; CI is the single source of truth for what is live.
License
MIT — see LICENSE.