GitHub (built-in)
rootle's GitHub backend ships in the binary — nothing to install, nothing to configure. It's the default provider.
Authentication
rootle finds your GitHub credentials through this chain, in order:
ROOTLE_TOKENenv var — a personal access token withrepo(orpublic_repofor public repos) scopeGITHUB_TOKENenv var — same token shape, CI-friendly namegh auth login— if the GitHub CLI is authenticated, rootle uses its stored token automatically- anonymous — works everywhere except code search (rootle says so in the status line when it matters)
The fastest path for most people:
gh auth login # once; rootle picks it up from here on
rootle # browse, search, grep, clone
No gh? Create a token at github.com/settings/tokens
(public_repo scope for public repos, repo for private), then:
export ROOTLE_TOKEN=ghp_…
rootle
What works
- Browse — orgs → repos → trees → files, live syntax-highlighted preview
- Find (
␣ f) and grep (␣ g) — Zed-style full-screen search - Open any file read-only in your editor (
Enter) - Yank browser URLs (
␣ y) - Clone through the wizard (
vmarks,:clone) - Code search requires authentication (anonymous gets everything else);
syntax: GitHub's code-search
syntax
plus rootle's own grammar (quoted literals,
-negation,language:) — see search syntax. Young or low-activity repos aren't in GitHub's index: a scoped grep there gets a local tarball grep (0.8.4+) instead of a quiet zero
GitHub Enterprise
Set ROOTLE_TOKEN to a GHES PAT and point rootle at your instance —
the API base is derived from the token's scope. For full GHES support
or a different forge, write a stdio provider.