gittles@github:~$
whoami

like skittles for your GitHub stars

Browse, search and prune your starred repos from the terminal. One native binary — no Node, no V8, no JavaScript engine, and nothing in node_modules at runtime, because there is no node_modules.

curl -fsSL gittles/install.sh | sh
$ curl -fsSL https://raw.githubusercontent.com/jakeklassen/gittles-cli/main/install.sh | sh

Installs to ~/.local/bin, checks the SHA-256 against the release, and updates itself later without sudo. Linux and macOS, x64 and arm64.

file $(which gittles)
4.2 MBone static binary
13 msto first frame
0runtime deps
100%compiled statically
gittles
gittles — 3,622 stars
★ GITTLES  like skittles for your GitHub stars  │  jakeklassen3,622 stars · synced 1h ago · 3,622 shown──────────────────────────────────────────────────────────────/ to search   g9wp/sdl3-deno                  ★ 18   2mo ago  TypeScript  ✗ vercel-labs/scriptc         ★ 2,606   26m ago  TypeScript earendil-works/pi-review       ★ 280   12d ago  TypeScript    A review extension for Pi  ccusage/ccusage             ★ 17,634   11m ago  Rust  schollz/croc                ★ 39,198    3h ago  Go ──────────────────────────────────────────────────────────────1/3622  v0.3.1  1 marked · c to unstar↑↓/jk move · / search · o open · d mark · c commit · ? help · q quit

Marking is safe on its own. d only stages a repo — nothing leaves your account until you press c.

gittles help
gittlesbrowse your stars; syncs first if none are stored
gittles sync [limit]pull your stars from GitHub
gittles loginsign in with GitHub's device flow
gittles logoutforget the stored token
gittles updateinstall the latest release
gittles versionprint the version
bindkey
↑ ↓ j kmove
g Gtop / bottom
/search as you type
oopen in your browser
dmark for unstarring
Uunmark everything
ccommit — unstar the marked
uinstall an offered update
?help
qquit
gittles update

downloading gittles-linux-x64…

verifying checksum…

updated 0.3.0 → v0.3.1 (checksum verified)

It checks GitHub once a day, after the first frame is already on screen, and says so in the footer rather than interrupting. The download is verified against the release checksums before anything is replaced — no checksum, no install.

cat ~/notes/how

It was an Ink + React + SQLite app. None of that stack survived: yoga-layout is WebAssembly, and the compiler's embedded engine has none. So the renderer is hand-written ANSI, storage is JSON, and the GitHub client is one function over node:https — then scriptc compiles the whole thing to a native executable.