I built a GitHub dashboard for my terminal
My whole workflow is a loop through one application: terminal → editor → terminal → git → terminal → Claude Code → terminal. The one thing that kept yanking me out of it was GitHub. Check a notification, open a browser. Remember which repo I starred last week, open a browser. Glance at my contribution graph, open a browser. Every time, a context switch out of the shell and into a tab I'd then leave open for six hours.
The terminal is the right surface
None of what I wanted from GitHub actually needs a browser. Notifications are a list. Stars are a list. A contribution heatmap is a grid of shaded cells, and block characters render that fine in a terminal. The only reason I was opening a browser was that nobody had put these in a TUI. So I did.
╔══════════════════════════════════════════════════════════╗ ║ Heatmap Stars Notifications ║ ╠══════════════════════════════════════════════════════════╣ ║ Null-Phnix · 1,247 contributions in 2026 ║ ║ Sun ░ ░ ▒ ▒ ▓ █ █ ▓ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ║ ║ Less ░ ▒ ▓ █ More · [ / ] year · hjkl navigate ║ ╚══════════════════════════════════════════════════════════╝
Go and BubbleTea
I built it in Go with BubbleTea, which gives you a clean Elm-style architecture for terminal UIs, and it compiles to a single static binary. No runtime, no dependencies, just a file you drop on your PATH. It talks to GitHub's REST and GraphQL APIs (the heatmap needs GraphQL), authenticates with a token, and lets you configure the refresh interval. hjkl and arrows to navigate, because of course.
Open source on github.