Playground — no install, no server
Index a repository in your browser
The real engine — the same walk, the same tree-sitter grammars, the same
link-graph — compiled for the browser and run in a Web Worker.
Nothing is precomputed and no server of ours is involved: the file list comes straight from
GitHub — or from a folder you open, which never leaves this tab — walk() decides
which of those files are worth reading, and the index is built on your machine.
Repository
This index, measured
What it built
Press ⌘K for the command palette, or type a command.
What this page does
Where the bytes come from
Unlike the rest of this site, the playground makes external requests: one call to the
GitHub trees API for the file list, one request per kept file from
raw.githubusercontent.com, and the tree-sitter grammars from this origin.
It indexes the whole repository. walk() still drops what the engine would
never index anyway — ignored directories, lockfiles, binaries, anything over 1 MiB — and
the capped flag reports that nothing else was. A very large repository means
thousands of requests and a lot of memory in the worker; bound it with
?files=500 or ?mb=5 on this page's URL. Enough requests in a row
will trip GitHub's rate limit whatever you do — opening the folder locally is the way out
that does not depend on the network at all, and it applies the very same
walk() rules, so node_modules is never read rather than read and
discarded.
The trees API allows 60 unauthenticated calls per hour per IP — one per repository loaded here. When it runs out the playground falls back to jsDelivr, which is unlimited but snapshots a branch rather than following its head, so its file list can lag by a few commits. The summary always names which one answered.