octoscope is a terminal dashboard for your GitHub account: followers, stars, PRs, issues, languages and CI, all at a glance, auto-refreshed, and read-only.
New in v0.22.0: full NO_COLOR support. Set NO_COLOR in your environment, or pass --no-color, and octoscope switches to its zero-chroma monochrome theme all greys, full hierarchy, no colour noise.
octoscope's Repos tab has had pinned repos for a while now a sticky section up top for the handful you actually live in. This release gives the Issues tab the same treatment.
Press P on any issue (or pick Pin from the space action menu) and it sticks to the top, in the order you pinned it, across refreshes and restarts. It composes with everything else you already do: the sort cycle (s) reorders only the rest, and the / filter narrows both sections at once. The set is saved to your config under pinned_issues, so the next launch brings them right back press P again to unpin, and a pinned issue that gets closed just stops showing.
Two additions that close the loop between watching (what v0.14.0 widened) and noticing (what's actually waiting for your attention). One feature lands on screen, one in your macOS notification center; both keep octoscope read-only.
The Shai-Hulud / Miasma worm has been quietly pushing itself into people's GitHub repos including real, well-known OSS projects where it auto-runs the moment you open the repo in an AI editor (Claude / Cursor / Gemini / VS Code) or install it, then harvests your tokens. It lives in the GitHub source, not the npm registry, so a lockfile audit never sees it. octoscope already points at the repos you own, so this release teaches it to look. @icflorescu
What it catches
On a Repos row, open the action menu (space) and hit Security scan (s). It matches the invariant of the attack instead of a single payload filename because the worm renames its dropper the week after you blocklist it, so a renamed variant still trips it.
Sponsor splash a gentle nudge at launch to support development. Press o to open the Sponsors page, c to copy the link, any other key to dismiss. Suppressed under --public-only; opt out with show_sponsor=false or --no-sponsor.
"What's new" tab (press 6) the highlights of the version you're running, bundled into the binary so it works offline, with a link to the full release notes.
No new tabs this time three small read-only features that answer questions you'd normally leave the terminal for: how a repo's stars are really trending, how much API budget you've actually got left, and which of your repos need attention right now.
Two honesty fixes this round: octoscope now tells you when a newer version is out, and it counts your whole account instead of just the first 100 repositories.
The update notice
On launch and hourly after that, on its own timer separate from the dashboard refresh octoscope checks the public Releases API and, if there's something newer, drops a quiet one-line notice under the banner. The upgrade command is context-aware: it detects how you installed octoscope and suggests the right one brew upgrade, go install, gh extension upgrade, or a download link.
Following up on what @sk_uxpin asked for on the v0.11.0 launch thread: you can now read pull-request diffs inside octoscope.
Press Enter on any PR for the drill-in. Press f for a full-screen list of the changed files. Enter on a file row opens its unified diff with syntax highlighting chroma's diff lexer, monokai palette, the universally recognised red/green for - / + lines and a scrollable viewport so a 400-line patch fits without pushing anything off-screen.
No new tabs this time. v0.17.0 is the boring-on-purpose release: I went back through everything you actually touch in a long session and made the app meaningfully steadier underneath. It does the same things v0.16.0 did it just behaves the same in hour eight as in minute one.