ReadingRate
approvedby ReadingRate
Sync your ReadingRate reading data — books, quotes, journal entries, insights, and domain mastery — into your Obsidian vault - This plugin has not been manually reviewed by Obsidian staff.
ReadingRate for Obsidian
Sync your ReadingRate reading data into your Obsidian vault as interconnected Markdown notes: books, authors, quotes, journal entries, insights, completions, domain mastery, and a yearly timeline — all with YAML frontmatter and wikilinks, so graph view, Dataview, and search work on your reading life.
What it creates
ReadingRate/
├── Books/ one note per book — status, progress, stats, connections
├── Authors/ one note per author — books read, quote counts, themes
├── Journal/ one note per reading-journal entry
├── Quotes/ one note per book, all its quotes with themes
├── Insights/ AI conversation summaries and key takeaways
├── Completions/ debrief note for each finished book
├── Domains/ reading-domain mastery progress, linked to its books
├── Themes/ one note per theme found in two or more books
├── Timeline/ yearly reading timeline with stats
├── Dashboards/ native Bases views (Obsidian 1.9+) and Dataview query pages
└── Lint.md monthly wiki lint page (premium)
The sync is one-directional (ReadingRate → vault) and mirror-complete: notes for items you delete or rename in ReadingRate are moved to the trash on the next sync, so the vault always matches the app. Files you create yourself anywhere in the vault, including inside these folders, are never touched.
Filenames are plain titles, so graph view, tabs, and search stay readable: Stoner, Stoner — Quotes, Stoner — Debrief, 2026-01-18 Stoner (journal), John Edward Williams (author), Love (Theme). Colons in titles become em dashes (they are illegal in filenames). If two books share a title, both get the author's last name appended: Stoner (Williams). Renames in ReadingRate go through Obsidian's own rename, so every link pointing at the old name is updated.
Your notes stay yours
Every synced note ends with a marker line:
%% Your notes go below this line — sync never touches them %%
Anything you write below that line survives every sync, full resyncs, and renames (if a book's title changes in ReadingRate, your notes move to the renamed file). The content above the line is regenerated from ReadingRate; the content below is yours.
Quote embeds
Each quote carries a stable block identifier (^q-xxxxxxxx), so you can embed a single quote in any note:
![[Stoner — Quotes#^q-3f9a2b1c]]
Echo links also point at the exact quote block in the other book's file, not just the file.
Insert quotes while you write
Two commands search all your synced quotes with fuzzy matching (by text, book, or author) and drop the pick at the cursor:
- Insert quote — a blockquote with the text, a link to the quote's block, the author, and the page.
- Insert quote embed — an
![[…#^q-…]]embed that renders the live quote block, echoes included.
Bind either to a hotkey and your reading highlights are available in any note you are writing.
Daily notes
Optionally, journal entries, insights, and completion debriefs carry a daily property linking to their [[YYYY-MM-DD]] note, so they appear in daily-note backlinks and calendar plugins automatically. Off by default — if you don't keep daily notes, each date shows up as an unresolved grey node in graph view. Turn it on in settings under Link entries to daily notes.
Dashboards
Two flavors, same data:
- Bases (
Library.base,Domains.base,Quotes.base) — Obsidian's native database views, no extra plugin needed (Obsidian 1.9+). - Dataview pages — for vaults that already use the Dataview plugin.
Both are created once and never overwritten, so customize them freely.
Account, network use, and payment
- Account required. The plugin syncs data from your ReadingRate account; without one it has nothing to sync. Creating an account is free.
- Network use. Every sync makes HTTPS requests to ReadingRate's API (hosted on Supabase,
fdplhcqphyroprxeqnse.supabase.co) to download your reading data. The sync is one-directional: nothing in your vault is read or uploaded, and no telemetry is collected. Sign-in happens in your browser on readingrate.com; the plugin only receives the resulting session tokens. - Payment. All sync features work on a free account. A paid ReadingRate subscription adds the AI synthesis sections on book and author notes and the monthly wiki Lint page; without it those sections are simply absent.
Install
Manual:
- Download
main.js,manifest.json, andstyles.cssfrom the latest release (or runnpm run packagein this directory). - Copy them into
<your vault>/.obsidian/plugins/readingrate/. - In Obsidian, enable ReadingRate under Settings → Community plugins.
Via BRAT: add simonsbookclub/readingrate-obsidian in BRAT and it will install and update automatically.
Connect your account
Open Settings → ReadingRate → Sign in to ReadingRate. Your browser opens readingrate.com; after signing in it hands the session back to Obsidian via an obsidian:// link and the first sync starts automatically.
On Obsidian 1.11.4 or newer, your session tokens are stored in the operating system keychain (Obsidian's SecretStorage). On older versions they fall back to the plugin's data.json file.
Sync behavior
- Manual: ribbon icon, the Sync now command, or the button in settings.
- Automatic: pick an interval in settings (15 min to daily); a sync also runs shortly after Obsidian starts.
- Every sync fetches your complete dataset and rewrites only notes whose content actually changed, so timestamps and graph state stay stable.
- Full resync re-downloads and rewrites everything — use it if files were edited or deleted by hand.
Graph view
The sync is built to make graph view meaningful, not just pretty:
- Theme notes are the bridges: any theme appearing in two or more of your books gets its own note, linked from every book, quote file, and connection that carries it.
- Domain notes link to the books that earned the mastery.
- Insight notes link to the books they discuss.
- Echoes connect quote files across books: semantically similar quotes (found via embeddings) link to each other's books.
- Color-code graph view (settings button or command) writes color groups into the vault's graph config so each note type is distinguishable. Your own groups are preserved.
Extras
- Generate reading canvas command: builds an Obsidian Canvas of your books grouped by genre.
- Open current book in ReadingRate command: jumps from a book note to readingrate.com.
Development
npm install
npm run dev # watch build
npm run build # production build (main.js)
npm run package # production build + dist/ + release zip
Built output is main.js at the repository root of this plugin, bundled with esbuild from main.ts + src/.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.