rootle iconrootle

browse remote source-control systems from your terminal. clone nothing.

github in-tree any forge via stdio providers rust MIT
$ curl -fsSL https://rootle.dev/install.sh | sh

also: cargo install rootle · mise use github:rootledev/rootle · release tarballs · status: alpha

demo — pick a palette

rootle · press ? for keybindings
rootle demo: searching, browsing miller columns, grep, yanking a URL

The demo re-renders in your pick — the same eleven palettes :settings lists in the app. First launch opens repo search; rootle owner/repo jumps straight into a repo.

what it does

browse

Three miller columns — orgs → repos → trees — with a live syntax-highlighted preview pane. No local clone.

find & grep␣ f␣ g

Full-screen, Zed-style results: match chips, folded regions, per-file counts. Scope to a repo or search globally.

open & yank␣ y

Any file opens read-only in your editor. Yank the browser URL of anything you're looking at.

clonev:clone

Mark repos, run the wizard. Org selections fan out; destinations land at <dest>/<org>/<repo>.

configure:settings

In-app settings write config.toml and hot-reload themes. The ? popup lists every keybinding.

providers

GitHub ships in-tree. Anything else wraps in as a stdio child speaking NDJSON-RPC — the protocol is four methods; the scaffolding skill wraps your backend with you.

compare

rootlegithub.comgh cliclone + editor
browse without cloningapi only·
modal, keyboard-first TUI···
syntax-highlighted preview·
full-text grep in the terminal·gh search code
forges beyond GitHubstdio providers·GHES only
single static binaryn/an/a

try it

$ curl -fsSL https://rootle.dev/install.sh | sh

auth is zero-friction: gh auth login or ROOTLE_TOKEN if already set up — everything else works anonymously. Every knob in settings.