All notable changes are summarised here. Each version links to its full, auto-generated notes on the GitHub Releases page, which remains the authoritative source.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning
(currently 0.x while the keymap/feature surface is still evolving).
- Starred gist rows can fully horizontal-scroll again: the scroll limit now uses the same display string as painting (including the
★prefix), so the trailing characters are reachable. - Context menu / command palette enablement now shares its logic with the real key handlers, fixing a few spots where the two had drifted:
p(pin) and Pins'Enter(diff) now correctly account for gist ownership and file previewability; Detail'sm(load older comments) and Revisions'F(cycle target file) now match their real keys' focus/file-count requirements exactly; List'sS(smart-sync) is no longer disabled for a not-yet-pinned pair (pressing it still reports "pair is not pinned" as before).
0.17.0 — 2026-07-09
- The top-right shortcut bar now includes
(C)onfigimmediately left of(?)Help(click or pressC, same as duodiff). - Settings screen (
C, or Ctrl+p → Open settings): toggle theme, mouse, update checks, trailing-newline ignore, and adjust scan depth / diff context without hand-editingconfig.toml(saved only after a change). - List navigation, palette enablement, and the dual-pane render build each ranked file list at most once per action (smoother with large gist/local sets).
- Cancelled or superseded background tasks (and overlapping local file scans) no longer apply their results if they finish late.
- Preview, diff, and upload refuse text larger than 10 MiB with a status message instead of loading the whole buffer into memory.
- Startup fetches for owned gists, starred gists, and the current user run in parallel, so cold start is faster on large accounts.
0.16.0 — 2026-07-08
- The footer no longer draws a horizontal rule above its text — one fewer row of chrome on every screen that shows a footer hint or status.
- A unified context menu (
;or right-click) and command palette (Ctrl+p) list action verbs for the current screen — the menu shows only what's valid for your selection; the palette shows everything plus cross-screen shortcuts (Go to Pins,Toggle theme,Quit, …) with fuzzy-filter search. The idle footer now hints; Menu · Ctrl+p Palette. - Every screen now shows a
(G)ists (P)ins (?)Helpshortcut bar in the top-right corner (click, or use the existingg/P/?keys, from any screen); the footer's long per-screen hotkey list is gone and it now fully collapses when idle (no divider, no blank row — the space goes back to content), since Help discoverability lives in the top bar (press?for the full keymap). - The app version, the GitHub repo link (click to open in the browser), and update-check status have moved from the footer into a new About topic in
?Help (press0from the Help index, orTabthen scroll to it). - The
?Help topic index is now clickable: click a row to select it, double-click (orEnter) to open it — matching every other list in the app. - The context menu (
;/ right-click) now aligns key hints and action labels in separate columns so longer keys (Enter,Space,Ctrl+p, …) no longer run into the description.
0.15.2 — 2026-07-08
- The footer no longer shows the app version number (repo URL stays); the in-app update check already surfaces version freshness, and printing the version there forced a demo GIF/PNG re-recording on every release.
0.15.1 — 2026-07-08
- The Homebrew formula (
akunzai/tap/gistui) now installs a prebuilt binary instead of compiling from source, cutting install time from 1-2 minutes to a few seconds;brew install --HEADstill builds from source.
0.15.0 — 2026-07-02
- Editing the upload redact buffer (
eon the upload confirm) in a GUI editor (zed,code,cursor,subl, …) now live-updates the diff as you save, instead of only refreshing after you close the editor;y/eare disabled until you do. Terminal editors are unchanged. - Fixed: a diff line whose old-side text has no trailing newline (and is no longer the file's last line) no longer merges with the line that follows it into one malformed row in the diff view.
- Fixed: completing or cancelling an upload started from the Pins view now stays on the Pins view instead of returning to the File List view.
- Pins view: a pinned entry whose local file no longer exists on disk is now flagged in the list (a distinct
✕icon and a red row) instead of only surfacing as an error after you select or act on it. - Pins view: a pinned entry whose content is actually identical on both sides now shows the synced (
✓) indicator instead of a misleading push/pull arrow, even if the local and gist timestamps differ.
0.14.2 — 2026-06-25
- Fixed: editing the upload buffer (
e) or a local file with a GUI editor (zed,code,cursor,subl, …) now works even when$EDITOR/$VISUALomits a wait flag — gistui adds--waitautomatically, so it no longer reads the file back before you save and upload the pre-edit (un-redacted) content.
0.14.1 — 2026-06-23
- Fixed: a gist you own and starred no longer shows its files twice in the detail view (it was fetched by both the owned and starred list APIs and merged without deduplication).
0.14.0 — 2026-06-22
- Fixed: owned-fork detection now paginates past 100 gists (the
forkedfilter no longer misses forks on large accounts), and a failed fork-detection query surfaces afork detection unavailablehint instead of silently showing no forks. - Fixed three rough edges: opening a gist in the browser (
o) no longer briefly freezes the UI; upload/restore temp files are written to the system temp directory instead of the working directory (no stray.gistui_*dirs if the process is killed mid-op); and an unreadable local file now reports an error instead of silently showing the whole gist as additions on upload. - Performance: syntax-highlighted diff and preview panes are memoised, so scrolling no longer re-tokenises the whole buffer on every frame — smoother on large, highlighted files.
- TUI polish: the Gists and Gist-detail footers now surface
y copy url; destructive-key and comment-error colours follow the theme (keeping contrast in light mode); and the filter hint wording is consistent (Enter apply). - Gist comments now load newest-first in pages of 30 (popular gists no longer dump every comment or silently stop at 100);
mor clicking the top line loads 30 older comments. The Comments pane is restyled with a per-comment header, relative time, and a loaded-range title. - Diff view: a difference that is only a file-final newline no longer shows as a phantom change and no longer forces an overwrite confirm (GitHub stores gists with a trailing newline that local files often lack); disable with
ignore_trailing_newline = falsefor byte-exact diffs.
0.13.0 — 2026-06-20
- Mouse support: wheel scroll, click to focus/select, double-click to open, and a clickable close button on pop-up screens (on by default; disable with
mouse = falseor--no-mouse). - Startup update check: on launch gistui checks GitHub (once a day, silently) for a newer release and shows a footer hint with the right upgrade command if one exists (disable with
check_updates = falseor--no-update-check). - Diff view:
wtoggles soft line wrapping — long lines wrap to the width instead of needing horizontal scroll (mirrors the preview's wrap toggle).
0.12.0 — 2026-06-19
- Vim-style navigation:
h/j/k/lmove and scroll alongside arrow keys;Ctrl+b/Ctrl+fpage up/down by 10 (same as PageUp/PageDown) on every scrollable screen, including the main list (Files/Gists panes), Pins, and Gist manager. Revision history is nowH(wash); cycling the revision target file isF(wasf). - Fixed:
Ttheme toggle stopped working after vim navigation began passing real key modifiers (Shift+T was ignored). - README slimmed for scannability: installation and safety reference docs moved to
reference/(kept out of GitHub Pagesdocs/); contributor/agent sections toCONTRIBUTING.md/AGENTS.md; Usage keeps essential keys and points to in-app?for the complete keymap. Landing page updated (install link-out, current gist-manager copy, doc footer links). - Gist detail:
*stars or unstars the open gist (footer hint +★ starredin the info line when starred); the info line also shows☆ N(stargazers),⑂ N(forks), and💬 N(comments) when non-zero. - Edit description (
e), compact revisions (c), and delete gist (X) moved from the gist manager to gist detail; they appear only for gists you own (silent no-op on others' gists — no read-only warning). - Image and other binary gist files cannot be previewed or diffed in the TUI (detected via the list API MIME type and filename); the file list tags them
(binary)and status suggestso(browser) ord(download) instead. - Owned forks now appear under the
forkedvisibility filter: the gist list API omitsfork_of, so gistui detects them via GraphQLisForkand fills the upstream id from the full gist object (fixes missing forks such as old forked scripts that still show on gist.github.com). - Revision diffs (incremental and vs current) fetch file content via
gist.githubusercontent.com/.../raw/{sha}/{file}when the revision API returns HTTP 502 on large gists (same class of fix as previewraw_urlfallback). Ffork is available only in gist detail, and only for gists you do not own (removed from the main list and gist manager).- Gist detail comments load only when you open the Comments tab (no upfront fetch on Enter). Gist manager and detail view show
@owneron gists you do not own. Preview/download falls back to the list APIraw_urlwhengh gist viewfails (e.g. huge starred gists returning HTTP 502). Startup cache now includes starred gists and fork/comment/star counts; fork and stargazer counts refresh in the background so the list appears sooner. - Starred and forked gists:
vcycles five visibility modes (all / public / secret / starred / forked);*stars or unstars the context gist;Fforks a gist you do not own into your account. Others' starred gists are read-only (preview, diff, download, browser) — pin, upload, delete, compact, and restore are blocked. The gist manager title shows your starred and owned-fork totals (★/⑂); rows show☆ N(GitHub stargazers),⑂ N(forks), and💬 N(comments) when non-zero. - Gist revision history: press
Hon a gist file in the main list, gist manager, or gist detail view to browse revisions (newest first), show the incremental diff for a revision (Enter, parent → selected), diff against the current version (D), and restore a single file from an older revision (r,y/nconfirm — creates a new revision, unlikeccompact which deletes history). In revision history,Fcycles the target file on multi-file gists. Revision diffs are read-only (nod/udownload/upload).
0.11.0 — 2026-06-17
- Built-in light/dark colour theme: set
theme = "light"inconfig.tomlfor terminals with a light background, or pressTat any time to toggle and save instantly. - Pre-built binary installs can self-upgrade from GitHub Releases:
gistui --upgrade(latest),gistui --upgrade --check(compare only), andgistui --upgrade --upgrade-version <tag>(pin a release). Homebrew, Scoop (including thescoop/shims/gistui.exePATH shim), and cargo installs are detected and pointed at their own upgrade commands instead. - Pins screen:
ocycles sort order (default / local path / gist filename); active sort shown in the title bar. - Pins screen: after a
dpull completes, the view stays on Pins instead of returning to the main list. - Confirm overwrite prompt now shows
~-shortened paths instead of full absolute paths. - Fixed: pressing
uordin the diff screen opened from Pins (Enter ord-pull) now correctly targets the pin pair's local file instead of the Files-view selection;record_pin_syncalso fires correctly after a confirmed pull.
0.10.0 — 2026-06-16
?help is now contextual: it opens the current screen's keys (and is reachable from the Pins, Gist manager, and Gist detail screens, not just the list), withTabto browse an index of all topics instead of scrolling one long page.- Local file list now has a text filter:
/filters the focused pane (Local matches path/filename, Gist matches description/id). Filtering supports typing-while-navigating (↑/↓),Tabto apply and switch panes, andBackspaceon an empty query to exit. - The Pinned Mappings screen (
P) gained the same/text filter — matches the local path or gist filename, with live ↑/↓ navigation. - Pin times are now consistent between the Pins list and the diff view: pins pointing outside the scanned working directory show the real local mtime (and a correct ↑/↓ sync status) instead of
?, and the pin diff header shows the gist's update time instead ofunknown. - Inline text inputs (gist description editor and every
/filter) are now full single-line editors:←/→/Home/Endmove the cursor andBackspace/Deldelete around it, with a block cursor showing its real position — no more deleting back to fix an earlier character.
0.9.0 — 2026-06-14
- Gist detail view is now tabbed — a
Files │ Commentsstrip under the basic info shows one pane at a time (opens on the Files tab;Tabswitches), instead of stacking both panes. - Scrollbar on the gist-detail comments pane (the Diff and Preview panes already had one).
- Item counts in the Local, Gists and Pins titles (e.g.
Gists (3/12)when a filter is active,(N)otherwise), matching the existingFiles (N)/Comments (N)style. - Gist manager rows show a
💬 Ncomment count for gists that have comments (drawn from the existing gist-list fetch — no extra API calls). - Animated spinner on the scanning, loading and working states (replaces the static
⏳), so long-runningghoperations no longer look frozen. - Install from crates.io:
cargo install gistui, orcargo binstall gistuifor the prebuilt release binaries.
0.8.0 — 2026-06-14
- Scrollbars on the Diff and Preview panes.
~-shortened local paths with scrollable Pins rows.- Bounded (LRU) gist preview cache.
- Surface local file-read errors instead of a misleading empty diff.
- Write redact buffers to the system temp dir.
- Homebrew install:
brew install akunzai/tap/gistui. - Crate metadata, README badges, and this changelog.
0.7.0 — 2026-06-12
- Cursor-based file selection in the gist detail view.
- Preview line-wrap toggle.
- Copy gist URL / file content to the clipboard.
- Syntax-highlighted preview and diff.
- PageUp/PageDown scrolling.
- GitHub Pages landing page.
0.6.0 — 2026-06-12
- Preview file content with number keys in the detail view.
- HTTPS clone during compaction to avoid SSH passphrase prompts.
0.5.0 — 2026-06-11
- Gist detail view with comments.
- Anchor-driven list ranking with pinned/same-name markers.
- Windows key-repeat fix.
0.4.0 — 2026-06-11
- UI refresh.
- Gist revision compaction.
- Quit guard.
- Pane-oriented Enter diff preview.
0.3.0 — 2026-06-10
- Gist-level manager (edit description, remove a file, sort/filter).
- Create with a description.
- Fully async per-action
ghfetches. - Edit/redact before upload with JSON pretty-print.
- One-key pinned sync.
- Collapsible diff context.
- Working-directory path argument.
0.2.0 — 2026-06-09
- Paginate beyond 100 gists.
- Delete with confirmation.
- Cross-platform release binaries.
- ratatui 0.30 migration.
- Recursive discovery toggle.
- A pins view.
- Word-level inline diff highlighting.
0.1.0 — 2026-06-09
- Initial MVP: browse and rank gists against the working directory.
- Coloured diff.
- Download/upload/create/pin/preview.
- Filtering and sorting.
- Off-thread loading with an on-disk cache.
- Overwrite-confirm safety gate.