User guide

A reader that pulls in what you follow, writes a summary of each piece, and keeps what you have read in step across your own devices.

Two things shape everything below. Your library stays on your devices. And a summary is written by a language model, which costs either your battery or your money depending on where you point it — so most of the settings here are about deciding how much of that happens without being asked.

This guide covers the desktop app. Screenshots are the Linux build in its light theme, taken over a demo library — one of its sources is a Nostr account, which is the one kind that does not work yet.

  1. Getting started
  2. The window
  3. Reading
  4. Summaries
  5. Finding things
  6. Keeping things
  7. Managing sources
  8. Sync
  9. Keyboard
  10. Settings reference
  11. Where things are kept

Getting started

Adding your first source

SummaReader is empty until you tell it what to follow. Press + beside Your shelf, or Add source on the empty Inbox, and paste an address.

The add-source dialog, with a pasted address and two buttons: Add source, and Save the page.

You can paste any of these and the right thing happens:

You pasteIt becomes
A feed address (…/feed.xml, …/rss)A feed
A site's home pageA feed, if the page advertises one
A YouTube channel or video addressThat channel
A Mastodon account (@name@server)That account's posts
Any other pageThe page itself, kept once

Nostr is the one that is not ready: the event parser exists, the relay transport does not, so an npub… is refused rather than half-followed.

The dialog offers both: Add source subscribes to something that keeps delivering, Save the page keeps one page and nothing more.

Importing what you already follow

Coming from another reader, Settings → Your data → Import and export takes an OPML file. Everything in it arrives as a source.

What happens on the first check

A feed's first poll delivers whatever archive it currently advertises — fifteen videos, thirty articles. None of that is new to you, so none of it is summarized automatically. Only things published after you subscribed are. Anything older can still be summarized whenever you want it: open it and press Summarize, or use the bulk button under Summaries.

The window

The main window: the shelf of feeds on the left, the article list in the middle, the open article on the right.

The top bar

ControlWhat it does
☀ / 🌙Paper, night, or whatever the system says
ENThe interface language
Check for newFetches every source now
FilterShows and hides the filter panel
ConfigurationText size, density, thumbnails, layout

Check for new and Filter appear while the list is on screen, which includes reading an article beside it. The Filter button fills in and reads Filtered whenever something is narrowing the list, so a list showing a fraction of itself always says why.

The shelf

Down the left: Inbox, Saved, Search, Sources, and then your feeds grouped by kind. Each feed shows unread / total.

The filter panel

Press Filter. Everything that decides what the list shows is here, and it is closed by default so the first thing under the heading is the first article.

The filter panel open above the list, with read and summarized filters, a sort button, kind chips and a text box.
ControlWhat it does
Unread / Read / AllWhich items to show
Any / Summarized / Not summarizedWhether a summary exists
Newest firstSorting — press to cycle through six
Mark all readMarks everything the filter covers
Summarize …Summarizes everything the filter covers
Kind chipsVideos, feeds, posts — click to narrow
The text boxMatches any word in what is loaded

Sorting cycles: Newest first → Oldest first → Title A–Z → Title Z–A → Feed A–Z → Feed Z–A, and back.

The read filter, the summarized filter and the sort are remembered between launches. Picking a feed is not — that is navigation, and opening into a library narrowed to one feed you chose last week reads as an empty app.

The counts under "Inbox"

Showing 18 of 5,878 · 52 unread · 812 to summarize

Configuration

The handful of settings worth changing without leaving what you are reading: Text size (S/M/L/XL), List density, Thumbnails (None / Kind / Picture), line spacing and column width for the article, Reader layout, and Group by source.

List density decides how much of each item the list draws:

SummaryTitlePicture
Comfortableshownwraps freelylarge
Compact (default)two linessmall
Denseone linenone

Thumbnails: Picture shows each article's own image instead of a kind icon. It is the only one of the three that costs anything: pictures are downloaded a few at a time for the rows on screen, so a long backlog fills in gradually rather than all at once. Dense ignores the setting — a picture is three lines tall, which is not dense.

Reading

Click an article, or press . Depending on the window and your Reader layout setting, it opens beside the list, above or below it, or takes the whole window.

An article open with its summary: a sentence at the top, key points below it, and the toolbar above.

The three tabs

13 jump between them.

The toolbar

Moving between articles

Drag the article sideways, or use j / k. Dragging right at the first one goes back to the list. The gestures are configurable under Settings → Reading.

When there is no text

Not every article arrives with its words. The reader says which of these it is:

It saysWhat happened
This video has no captionsThere is no transcript to read
The page arrived, but there was no article in itThe page builds its text in the browser
The site served a bot checkA "prove you are human" page
Behind a subscription wallWhat arrived was the offer
The page is goneTaken down or moved
Not on this deviceAnother device has it, or nobody has fetched it

Only the last is worth retrying, and Fetch the text does that.

Summaries

Where summarizing happens

Settings → Summaries → Where summaries run.

On-device needs a model: Settings → Summaries → Models, then download one and switch it on.

Automatic summaries

Summarizing runs at the end of a check for new articles. There is no separate schedule — if Check for new is set to Only when I ask, nothing is summarized unless you ask. Two things decide what a check summarizes: each feed has a Summarize switch, off by default; and Settings → Summaries → At the same time sets how many one check may do, and which end of the queue it works through.

SettingMeaning
Summaries per checkDefault 30. No limit does everything waiting
Work throughNewest first keeps up with arrivals. Oldest first clears a backlog

An article's own text is fetched during the check, not later — up to twenty per feed per round, newest first. An article that arrives without its words has usually failed rather than been deferred, and the reader says which.

Newest first is right day to day. If more arrives per check than the number allows, the ones it skips fall further behind every check — Oldest first is how you get back to them.

Every summary is a request. On a paid model, the number per check is what each check costs while you are not watching — worth choosing rather than arriving at.

Summarizing by hand

What language a summary is in

By default, the language the article is written in. Settings → Summaries → Summary language overrides that if you would rather always read summaries in one language.

If nothing gets summarized

The most common cause is no model loaded. The toast says so, and Settings → Development → Activity log records the reason for every attempt.

Finding things

Search in the shelf, or /. Search covers titles, article text and video transcripts. A transcript hit is a moment — it names the time and seeks there when you open it.

The text box in the filter panel is a different thing: it matches the rows already loaded, and is for narrowing what is in front of you rather than searching the library.

Keeping things

Save in the reader, or s from the list. Saved articles live under Saved and are exempt from anything that clears space. Press and hold Save to put it on a named shelf instead, for filing by subject; an article can be on several.

Removing a source leaves saved articles alone, and writes down where they came from before the source goes.

Managing sources

One feed

on a shelf row opens that feed:

A feed's panel, listing check now, summarize this feed, mark all read, and its switches.
Check nowFetch this feed
Summarize this feedEverything of its waiting for one
Mark all readEverything of its
UpdatesWhether checks include it
Auto-summarizeWhether checks summarize it
Read articles againRe-fetch text that failed
Summarize againDiscard its summaries and redo them
RemoveAsks first, and says what it costs

Summarize again is what to use after changing the summary language or the model — an article that already has a summary is never redone otherwise.

Many feeds

The Sources screen is the same controls over the whole list, with a filter and a tick box, so "every YouTube channel I imported last week" is one action rather than three hundred.

Sync

Settings → Sync. Your devices keep each other in step: what you have read, what you saved, your highlights, and the articles themselves.

It is end-to-end encrypted: the server stores ciphertext and cannot read your library. There is no hosted service to sign up for — the address you set is a server you run.

When it runs

Settings → Sync → Syncing on its own offers a clock — every 15 minutes through to once a day — and two moments instead:

Whichever you pick, a metered connection or a battery interval that has not elapsed still holds it back.

Pairing a second device

  1. Turn sync on and set an address on the first device.
  2. Pair a device shows a code.
  3. Scan or type it on the second.

The first sync to a fresh server asks before uploading — a server that has never seen your library is a decision, not a detail.

The recovery code

Made once, under Sync. It is the only way back into your library if you lose every paired device. Nobody can reissue it.

Article text

Read state, highlights and the articles themselves travel automatically. Their words and pictures are the bulk, and by default they stay behind a pointer: sync tells this device that a copy exists, and it is fetched when you open the article.

Keep everything on this device changes that — each article's words and pictures are downloaded as they arrive. It is a setting per device rather than per library: worth it on a machine you read on offline, a lot of data on a phone for articles you will not open. Turning it on starts fetching whatever is already outstanding, a few seconds at a time, so a large library catches up over several syncs rather than in one long wait.

Keyboard

? shows this list in the app.

Next / previous itemj k · n p ·
Open
Open the original elsewherev
Mark read / unreadm
Mark everything read / unreadA / U
Saves
Refresh what is on screenr
Unread / read / allR
Summarized or notS
Next / previous sourceJ K · N P · ⇧↑ ⇧↓
Jump to a section13
Fold a summary section⇧1⇧3
Search/
Show or hide the shelfb
Focus on the itemf
Cycle the layoutl
This list?
Backesc

Settings reference

Reading
Theme, interface language, dates and times, reader layout, gestures, when an opened article counts as read, and whether the status strip is on screen. When an opened item counts as read is worth knowing about: Never means only you mark things read, Immediately means opening counts, and After a few seconds means passing through does not.
Summaries
Where summaries run, which model, how many at a time, how many per check and from which end, the summary language, and what summarizing has cost so far grouped by model.
Sync
Sync on or off, the server address, when it runs on its own, whether this device keeps everything, paired devices, the recovery code, and the local API — a door for a browser extension or another program on your machine to put something in.
Your data
Import and export: OPML for sources, and your library in full.
Development
The activity log — everything that ran and everything that failed, which is the first place to look when something did not happen. Also Fill in missing details, which re-fetches metadata, and Erase everything.
About
Version, and where the library file lives.

Where things are kept

Your library is one SQLite file in the app's data directory. Settings → About names the path. Backing that file up backs up everything: articles, summaries, highlights and what you have read.