Releases: aka-kika/reshelf
Release list
reshelf 1.10.0
Added
- GitHub token in Settings → Capture. Without a token GitHub allows about 60 API requests per hour per IP, so bulk imports and busy capture sessions could hit "rate limit reached". Paste a personal access token (a fine-grained, read-only one is enough) and the limit rises to 5,000/hour — and Quick Capture can see your own private repos. The token lives in the macOS Keychain and is sent only to the GitHub API; a Test button confirms it works, and the rate-limit error now points at the setting when no token is saved.
Install: download reshelf-1.10.0.dmg, open it, drag reshelf to Applications.
Existing installs update in place via reshelf → Check for Updates… (Sparkle).
reshelf 1.9.1
Fixed — Quick Capture from ⌘K could close without opening
Paste a GitHub URL into the command palette, press Enter, and the palette would dismiss while the capture sheet never appeared. Afterwards capture wouldn't open again until you relaunched.
The cause was the wedge-recovery watchdog from 1.3.3. After asking for a sheet it waited 1.2 seconds and, if no sheet was on screen at that instant, declared the app wedged and cleared every sheet binding — including the request it had just made. Capture from the palette is the slow path: up to 600 ms waiting for the autofill popup to detach, and then a second sheet can't appear until the palette finishes dismissing. A perfectly healthy presentation could cross 1.2 seconds and be cancelled by its own watchdog.
A real wedge is permanent; a slow presentation is not. The watchdog now polls instead of sampling once — any check that sees a sheet stands down, and only a sheet that never arrives is treated as a wedge. A check also stands down if a newer request has been made since, so it can't cancel someone else's sheet.
No schema change in this release.
reshelf 1.9.0
Folders for the shelf
A folder is a grouping you make — "everything I cloned for project X". Separate from categories (a fixed taxonomy describing what a repo is) and from shelves (how much you value it), because a project's worth of repos spans all three shelves and a dozen categories.
Right-click a project → Add to Folder ▸, or New Folder…. Folders get their own sidebar section between Library and Categories, shown only once you have one; each row carries a folder icon and a live count and filters the list like a category row. Rename and delete from the row's context menu.
Deleting a folder only ungroups its projects. They keep their shelf, their clone, their notes, everything — and the confirmation says so. A project belongs to at most one folder, and any project qualifies whether or not it's cloned: uncloning shouldn't eject a repo from the group that exists to make the cleanup possible.
Folders travel with the catalog — in JSON exports and automatic backups — so moving a catalog between Macs no longer drops the grouping. On import they're matched by name, case-insensitively, so two Macs that each made a "Photos app" converge on one folder instead of two.
Batch actions
⌘-click to add rows to a selection, ⇧-click to extend a range. The footer then shows "N selected" with an Actions menu: move them all to a shelf, add them all to a folder, remove their local clones, or remove them from the catalog. Right-clicking inside the selection gives the same menu; right-clicking outside one still acts on that row alone.
Both destructive actions confirm with a count and say what survives — clones go to the Trash and stay in your catalog, catalog removals are backed up first and leave files on disk untouched.
Removed
The v2 Intelligence scaffolding is gone — 78 files. It had been unreachable since 1.7.0 retired the Labs toggle, so nothing you could use went with it.
Signed & notarized, universal (Apple Silicon + Intel), macOS 14+. Full notes in CHANGELOG.md.
reshelf 1.9.0-beta.2 (beta)
Beta. Install by hand — deliberately not offered through in-app updates.
Same as 1.9.0-beta.1, with one change: folder rows in the sidebar are plain rows now, not a tree. Selecting a folder already shows exactly its members, so the disclosure triangle was listing the same names twice. The folder icon carries the signal on its own.
See 1.9.0-beta.1 for what folders and batch actions do.
reshelf 1.9.0-beta.1 (beta)
Beta. Install by hand — this is deliberately not offered through in-app updates, so nothing auto-updates to it.
Folders for the shelf
A folder is a grouping you make — "everything I cloned for project X" — separate from the fixed categories and from shelf status. Right-click a project → Add to Folder, or New Folder…. Folders appear as their own sidebar section (only once you have one), each row filtering the list and expanding to show what's inside. Deleting a folder only ungroups its projects: they keep their shelf, their clone and their notes.
Folders travel with the catalog, in exports and in automatic backups. Import matches folders by name, case-insensitively, so both Macs converge on one "Photos app" rather than two.
Batch actions
⌘-click to add rows to a selection, ⇧-click to extend. Then Actions in the footer (or right-click inside the selection): move them all to a shelf, add them all to a folder, remove their local clones, or remove them from the catalog. Both destructive actions confirm with a count.
Labs removed
The v2 Intelligence scaffolding is gone — 78 files. Nothing you were using went with it.
~/reshelf/catalog.store first.
Because the update feed only knows about stable releases, in-app Check for Updates will offer to move you back down to 1.8.0. Expected — decline it while testing.
reshelf 1.8.0
Backups now catch the edits they were missing
If you changed something without adding or removing a project — a note, a fit score, a shelf — that edit could go unrecorded. Two things were wrong at once:
- The "has anything changed?" check compared file sizes. Swapping one value for another of the same length left the file exactly as long, so a real change looked identical and nothing was written.
- Nothing reliably ran on quit, so an edit made in a session that didn't change the project count could be missed entirely.
Both fixed. The check now compares actual content, and a snapshot is written as the app quits.
A fresh install starts with repos worth having
The nine-repo starter set is now jade, Seedling, kika-obsidian-mcp, ollama, Handy, zed, excalidraw, lazygit and immich — instead of eight internal-tools platforms that read like someone else's bookmarks.
Your existing shelf is untouched. The starter set only ever appears when there's nothing to show.
(immich is AGPL on purpose, so the copyleft caution introduces itself on day one rather than surprising you later.)
Also
Removed the last of the cloud-AI plumbing left over from 1.7.0. Nothing to see — it was already unreachable.
Download: reshelf-1.8.0.dmg below — signed & notarized, universal (Apple Silicon + Intel), macOS 14+. Already on 1.5.0 or later? reshelf will offer this to you itself.
Full notes: CHANGELOG.md
reshelf 1.7.0
Settings you can actually read, and one less decision to make
Settings had grown into a single long scroll with five unrelated things stacked in it. It's now four short tabs, and the window opens large enough that the fullest one fits without scrolling:
- General — Appearance, Licenses, and the Agent Skill installer
- Capture — Capture Assist
- Library — where repos get cloned, and how the inspector is laid out
- About — unchanged
There's no AI provider to pick any more
reshelf generates on-device. Full stop. The AI Providers settings are gone.
In practice this changes nothing about what you were getting: Capture Assist always called on-device Apple Intelligence directly and never consulted that setting. The picker was offering a choice it didn't actually make. Now the code matches the promise — Quick Capture's Generate button is pinned to on-device too, so the option is genuinely gone rather than hidden.
You can see the update date now
1.6.0 added a Recently Updated sort but never showed you the date it was sorting by. The inspector now has an Updated row under Added. Entries whose date isn't known yet just don't show the row — a blank one would read as "never updated", which would be a lie.
Download: reshelf-1.7.0.dmg below — signed & notarized, universal (Apple Silicon + Intel), macOS 14+. Already on 1.5.0 or later? reshelf will offer this to you itself.
Full notes: CHANGELOG.md
reshelf 1.6.0
Sort by what's actually still alive
Your shelf knows when you saved something. Now it knows when the project last moved.
Recently Updated is a new sort order: repos that changed upstream recently float to the top, abandoned ones sink. It's the difference between "what did I collect lately" and "what's still worth my time."
- One click fills it in for everything you've already cloned. Settings ▸ General ▸ Fill "Last Updated" from Clones reads each clone's last commit straight off your disk — offline, instant, no GitHub rate limit. On a 231-clone shelf it finishes in seconds.
- Repos you haven't cloned fill in the next time their details are fetched. Until then they sort to the bottom rather than pretending to be ancient.
- New captures pick the date up automatically.
- The date rides along in your exported catalog JSON, so it survives the trip to another Mac.
Fixed
The top of the sidebar isn't blurry any more. macOS 26 already tried to paint a frosted band over the first rows and reshelf pushed back; macOS 27 started drawing a second one from a different place and it slipped past. Both are handled now — "All Projects" and the rows under it stay sharp.
Download: reshelf-1.6.0.dmg below — signed & notarized, universal (Apple Silicon + Intel), macOS 14+. Already on 1.5.0 or later? reshelf will offer this to you itself.
Full notes: CHANGELOG.md
reshelf 1.5.1
Housekeeping release — it exists to prove the in-app update path works end to end, by being something for 1.5.0 to update to.
reshelf 1.5.0
reshelf updates itself now
New versions arrive in the app instead of as a DMG you download and drag. reshelf checks once a day in the background, shows you what changed, and installs only when you say so — nothing happens behind your back.
- Check for Updates… in the reshelf menu, for when you're impatient
- A switch in Settings ▸ About to turn automatic checking off
- Update checks send nothing about your machine
One catch, once: 1.4.0 has no updater in it, so 1.5.0 is the last version you install by hand.
Also in this release: exports carry your "Why I Saved This" notes, and catalog import (from 1.4.0) means a shelf can move between Macs.
Download: reshelf-1.5.0.dmg below — signed & notarized, universal (Apple Silicon + Intel), macOS 14+. Drag to Applications.
Full notes: CHANGELOG.md