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:

  1. ROOTLE_TOKEN env var — a personal access token with repo (or public_repo for public repos) scope
  2. GITHUB_TOKEN env var — same token shape, CI-friendly name
  3. gh auth login — if the GitHub CLI is authenticated, rootle uses its stored token automatically
  4. 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 (v marks, :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.