TeX Live's files, packed for PhiTeX.
When PhiTeX builds a document without a TeX installation (in the browser, or phitex build --shelf), it fetches the files the document reads from here, once, and keeps them. A typical paper needs a few dozen packs, not the whole of TeX Live.
Current release: see /tl2026/release.json.
/tl2026/release.json | The current release of TeX Live 2026: its index, its pack table, the engines' search paths. |
/tl2026/release-<r>.json | Every release's description, kept for ever. |
/tl2026/index-<r>.tsv.gz | Each file's path, its pack, and the packs loading it reads (per engine). |
/tl2026/packs-<r>.tsv.gz | Each pack's SHA-256 and size. Clients check every pack against it. |
/tl2026/h/<pack>.pack | The packs: gzip, named by their content, never changed. |
This host serves Shelf's protocol v1 ("schema": 1). A format older PhiTeX versions could not read would get a host of its own, v2.shelf.phitex.org, beside this one. What is published here never changes, and stays while a supported PhiTeX reads it.
From TeX Live's own package archives, unmodified, grouped by package. Which packs each LaTeX package and class pulls in is found by running PhiTeX's engines on it; traced_by in a release names the engine version. The design is in PhiTeX's docs/spec-distribution.md.
Clients ask for packs by name only: never your files, your text or an identifier. Shelf is static files on Cloudflare Pages and keeps no logs of its own; Cloudflare sees your IP address and the URL, as for any website.
PhiTeX: phitex.org · source. The files are TeX Live 2026's, each under its own license (mostly the LaTeX Project Public License): see each file's header.