Shelf for developers
You don't need to remember where you found the answer.
The error came back. You know you've solved it before. There was a GitHub issue. A strange Stack Overflow answer. Three lines in the documentation. Maybe a screenshot. Maybe a snippet.
The fix exists somewhere in your past. Shelf helps you get back to it.
- 01error401 on refresh, only after idleScreenshot of the console
- 02searchFour tabs, two wrong answers
- 03docsToken rotation section, one paragraphThe part that mattered
- 04issueGitHub issue #4127, closed as “works as intended”
- 05snippetRefresh before expiry, not on failureNine lines
- 06fixedShipped Thursday
Six months later
“That authentication error from the API.” The console screenshot, the docs paragraph, the issue and the snippet come back together.
The problem
Solved once shouldn't mean forgotten forever.
Development produces thousands of tiny discoveries. Commands. Errors. Documentation. API behaviour. Workarounds. Configuration.
You rarely need all of it at once. But when the same problem returns, one forgotten detail can save an hour.
- History is 40,000 URLs with no reason attached
- The snippet is in a scratch file called untitled-3
- The docs page moved and the anchor is gone
- The screenshot of the error is in Downloads
Describe the problem. Get the whole session back.
Shelf reads the text inside screenshots and saved pages, so an error message you captured a year ago is still searchable text today.
What you remember
A 401. Something about a refresh token. It only happened after idle.
Clues Shelf can use
- Text read inside the screenshot: “401”, “token expired”
- Meaning: authentication and session handling
- Context: kept during the auth work in March
- Text inside the screenshot
- The status code and message are readable text.
- Semantic meaning
- Grouped with authentication material.
- Related memory
- Kept minutes before the docs page and the snippet.
Kept nearby
- Token rotation, docs · Same session
- Refresh-before-expiry snippet · Same session
The same bug, on a different project.
Nothing about the new codebase points at the old fix. Your memory of the error is the only link, and that's enough.
- Console screenshot, docs page, snippet
- Different repo, different job
- New project, same library
- You remember solving it
What makes an old session searchable again.
- 01Text in imagesError messages inside screenshots become searchable text.
- 02Semantic searchDescribe the problem, not the exact wording of the answer.
- 03Memory recallGet the whole session back, not one lonely link.
- 04Contextual searchFilter by the project and the week it happened in.
- 05Memory graphThe error, the docs and the snippet stay connected.
- 06RediscoveryAn old fix surfaces when the same problem reappears.
Internal context stays on your machine.
Debugging material is rarely neutral: internal URLs, stack traces, config, customer identifiers, screenshots of systems you can't share.
Shelf reads and indexes it locally on your Mac. Nothing is uploaded for processing. Optional features that call an external model are marked as such and stay off unless you enable them.
Your past debugging is part of your memory.
Solve it once. Remember it later.
Keep the error, the docs and the fix together, and the second occurrence costs minutes.
Next thought
Recall works because Shelf read the screenshot when you saved it.
What Shelf reads inside an imageKeep exploring
Shelf V3 is out now
Shelf V3 is the current build. Shelf does not use automatic updates, so download the latest build here and install it over your current version.
This is intentional. Shelf is built around a local-first, privacy-focused philosophy. An automatic updater requires additional background processes, network connections, update infrastructure, and another system with permission to modify the app. We prefer to keep Shelf’s network footprint and background activity as small as possible.
Manual updates keep the process explicit: Shelf only checks the internet when a feature actually needs it, and you decide when a new version is downloaded and installed.