Giovambattista Fazioli

octoscope v0.11.0 โ€” drill into any PR, issue or repo with one keystroke ๐Ÿ”

The biggest UX shift since I shipped octoscope. The drill-in pattern I prototyped for Repos in v0.10.0 now works on PRs and Issues too โ€” and it's bound to Enter, the universal TUI gesture for "go deeper".


What you get when you press Enter on a row:

  • PRs โ†’ state chip (Open / Draft / Merged / Closed), markdown-rendered description, reviewers (requested + completed), checks summary, files changed, recent commits, labels, curated timeline.

  • Issues โ†’ state chip, markdown-rendered description, assignees, recent comments, labels, linked PRs (the ones that would close the issue when merged), curated timeline.

  • Repos โ†’ description, license, language chips, latest release, languages bar, recent commits with a "N total ยท M by you in the last year" counter, open issues / PRs preview, topics.

Each detail is fetched in a single targeted GraphQL query for that one item โ€” no fan-out across your list, zero rate-limit pressure. Descriptions and comments render through glamour (https://github.com/charmbracelet/glamour) with chroma syntax highlighting, so a "## heading" is a heading and a fenced code block is colourised.


โš ๏ธ Heads up โ€” breaking UX change: Enter on a list row used to open the item in your browser. It now opens the drill-in. The browser action moves to o on the row (which was already the action-menu shortcut for it). This follows the canonical TUI convention shared by lazygit, k9s, ranger, fzf and the GitHub CLI. Give it five minutes โ€” once it's in your muscle memory you won't go back.


Also in this release:

  • ๐Ÿ”’ Boundary sanitization โ€” every GitHub-sourced string (titles, bodies, label names, branch names, login strings) is now stripped of ANSI escape sequences at the API boundary, so a malicious repo description can't hijack your terminal cursor or OSC clipboard.

  • ๐Ÿ› Filtered-list fix โ€” pressing Enter on a filtered list could open the wrong item. Fixed.

  • โšก Markdown rendering cached โ€” flipping between detail views in the same session reuses the renderer instead of rebuilding it.

  • ๐Ÿงน Half a dozen smaller fixes around timeline truncation, check state classification, and async drill-in race conditions.

Upgrade:

brew upgrade gfazioli/tap/octoscope

Or grab a binary from the release page: https://github.com/gfazioli/octoscope/releases/tag/v0.11.0

Full release notes with the why behind each change are in the GitHub release. As always, octoscope stays read-only โ€” no merging or closing from the TUI โ€” and free.

Curious what people drill into most. PRs you authored? Issues assigned to you? Let me know in the comments โ€” it'll shape what gets a dedicated card next.

76 views

Add a comment

Replies

Best
Stan Kolotinskiy

Great job! Looking forward to being able to read the diffs inside the CLI

Giovambattista Fazioli

@sk_uxpinย Thanks Stan! Noted โ€” we'll see if it lands in a future release ๐Ÿ‘

Briella Porter

Iโ€™ve always struggled with losing context when switching between PRs, so the curated timeline and embedded markdown rendering really stand out to me.

Giovambattista Fazioli

@briella__porterย Thanks Briella! That's exactly the friction the curated timeline was built to remove โ€” happy it's landing the way it was meant to.