Documentation — 10
The small features that keep you reading.
Last updated · 2026-05-13
The features on this page are not the headline ones. They are the small habits Shelf nudges into place — a counter that wants to stay alive, a notification at nine in the morning, a moment of quiet when your unread list hits zero. None of them require configuration. They run on their own and stay out of the way.
Streak icons
The popup header carries a streak counter when you have an active streak. The number is the count of consecutive days on which you marked at least one item as read. The icon to its left changes by state:
- Fire (🔥) — active. You read something today; the streak is alive.
- Hourglass (⏳) — at risk. The clock has rolled over to a new day and you have not yet marked an item as read. The streak is still standing, but if midnight passes again without a read, it ends.
- Dot (·) — dormant. There is no streak to display.
When you mark the day’s first item as read, a small +1 flashes briefly above the counter and the icon flips back to the fire. The animation is the only celebration the streak gets; there is no toast, no sound.
Freezes
Streaks get one freeze per ISO week, applied automatically. A freeze covers a single missed day: if you read on Monday, skip Tuesday, and read on Wednesday, the streak survives because the week’s freeze absorbs Tuesday. Skip a second day and the freeze is already spent — the streak resets to one the next time you read.
The week counter rolls over on Mondays (ISO week boundary). You do not have to claim or activate the freeze; it is granted on the first read of a new week and used silently if you need it.
Daily Pick
Once a day, at 09:00 local time, Shelf surfaces one unread item from your library as a Chrome notification. Click the notification to open the popup and the item.
The pick is not random. The selection rule, in order:
- Prefer short reads. Items with a reading time under five minutes are favoured — they tend to actually get read.
- Alternate fresh and throwback. When no short item is chosen, the picker alternates between fresh (saved within the last thirty days) and throwback (saved more than ninety days ago) on each subsequent day.
- Never the same item twice in a row. The previous day’s pick is excluded from the pool.
The notification title varies with the kind of pick. Your daily pick for a fresh item, Quick read for today for a short one, One thing you saved months ago for a throwback.
The alarm is registered through chrome.alarms and survives service-worker restarts. To turn the daily notification off entirely, deny the notifications permission in chrome://extensions → Shelf → Site permissions. The alarm will still fire, but no notification is shown. The Daily Pick banner inside the popup is independent of the notification and stays.
Inbox zero
When you mark the last unread item as read, the popup view does not just refresh into an empty list. It replaces the list with a small reward: a horizontal ornament, the eyebrow Inbox-zero on your shelf, and a serif headline counting how many articles you’ve read in total. A Back to library button dismisses the view.
The reward only fires on the transition from one unread to zero unread. Visiting an already-empty inbox shows the regular library view; the reward is a moment, not a state. The fade-in is half a second; the ornament does not animate.
There is no setting for this. If you do not want to see it, you can dismiss it the moment it appears.
The transcript hint banner
For YouTube videos, Shelf can attach the captions to the saved item — every export will include the transcript with clickable timestamps. The mechanism is described under Getting started → YouTube transcripts, and it requires that the video’s Show transcript panel be open on the YouTube page before Shelf reads it.
The first time you click transcript on a YouTube item, Shelf does not fetch immediately. It shows a hint banner inline on the item row, walking you through the four steps: open the YouTube tab, click the … menu under the video, choose Show transcript, come back here. Two buttons sit at the bottom: got it, fetch now (which dismisses the banner permanently and runs the fetch) and don’t show again (which dismisses without fetching).
The banner is one-time. A flag at shelf:transcript-hint-seen in chrome.storage.local records that it has been shown, and subsequent transcript clicks skip straight to the fetch. To get the onboarding back — say, on a borrowed machine or after a re-install where the storage was wiped — clear that key from chrome://extensions → Shelf → Service worker → DevTools Storage panel, or delete the install and reinstall.
The banner only appears for YouTube items. Other kinds do not have a transcript path and never show it.