Extract Complete Kindle Highlights Beyond Export Limits
Claude Code plugin bundle recovering export-blocked Kindle highlights via the Kindle app's own annotation data.
1.0.0Add to Favorites
Why it matters
Recover every highlight from your Kindle books-including the hundreds Amazon's export truncates or hides-by orchestrating browser automation, local app databases, OCR, and Cloud Reader scraping into one verbatim, location-cited Markdown file.
Outcomes
What it gets done
Scrape all visible highlights from Amazon's notebook page DOM with preserved typography
Read exact character positions from the Mac Kindle app's SQLite annotation database
Capture and OCR Cloud Reader pages locally to recover export-blocked highlight text
Compile a complete Markdown export with location citations and recovery flags
Source
Get it from source
Spark does not host a copy of it.
Open sourceReports
Agent outcome reports
No reports yet
Overview
Claude Plugins
l3a0's claude-plugins bundle ships a Claude Code skill, kindle-highlights, that recovers Amazon's export-truncated or hidden Kindle highlights by reading the Mac Kindle app's own annotation data and OCRing the Cloud Reader. Use it on macOS to recover your own complete Kindle highlights for a book when Amazon's export has truncated or hidden some of them.
The workflow you build
l3a0's claude-plugins is a personal collection of Claude Code skills published as a single plugin under the l3a0 namespace, with this repository doubling as both the plugin and its own marketplace. The flagship skill, kindle-highlights, solves a specific problem: exporting a heavily-highlighted book from Amazon's Kindle notebook page returns highlights cut off mid-sentence or reduced to a bare location number with no text, under the notice "Some highlights have been hidden or truncated due to export limits." This skill recovers those own highlights in full: it extracts every highlight for a book into one combined, verbatim, location-cited Markdown file, recovering the truncated or fully hidden ones from the Mac Kindle app's synced annotation positions plus the Cloud Reader's rendered pages. Proven on five real books, it extracted 2,733 highlights total, 1,038 of them export-blocked (537 truncated, 501 fully hidden), recovering every single one, with recovered text landing within a couple of characters of the Kindle app's own position ruler.
When to use this bundle - and when NOT to
Use this to recover your own Kindle highlights from your own Amazon account when Amazon's export limit has truncated or hidden some of them - the skill drives your own logged-in browser session and reads files the Mac Kindle app stores locally, and the output is meant for your personal notes, since book text itself is copyrighted and extracted notes should stay private. It is macOS-only in three separate ways: browser control runs over AppleScript, OCR uses Apple's Vision framework, and highlight positions come from the Mac Kindle app's local data files, so it is not usable on Windows or Linux, and it will not work without the current Mac Kindle app (bundle id com.amazon.Lassen, not the classic Kindle.app) signed into the same account with the book downloaded.
How to get started
claude plugin marketplace add l3a0/claude-plugins
claude plugin install l3a0@l3a0
Skills are invoked as /l3a0:<skill-name> (or the bare /<skill-name> while no other installed command claims it), and Claude auto-invokes them when a request matches a skill's description. For kindle-highlights, prerequisites are: Claude Desktop with the "Control Chrome" extension (with Chrome's "Allow JavaScript from Apple Events" developer setting enabled), Google Chrome signed into the Amazon account, the current Mac Kindle app signed into the same account with the book downloaded, Xcode Command Line Tools (the recovery path compiles two small Swift helpers with swiftc on first use), and python3 to build the final Markdown and run a local receiver on 127.0.0.1:8931. The pipeline scrapes visible highlights from the notebook page, reads exact character-precise positions from the Kindle app's SQLite database, captures and OCRs the Cloud Reader's rendered pages locally for blocked text, and emits one Markdown file with location-numbered sections and flags for anything recovered or approximate. Licensed under MIT.
Who it's for
Heavy Kindle highlighters who want their own complete, verbatim highlight notes for a book instead of the partial export Amazon's undocumented limit allows.
Source README
l3a0's Claude Code plugins
A personal collection of Claude Code skills, published as a single
plugin under the l3a0 namespace. This repo is both the plugin and its own marketplace.
I write about how these tools get built - and about technology, business, and finance - at
baowebdev.substack.com.
Install
claude plugin marketplace add l3a0/claude-plugins
claude plugin install l3a0@l3a0
Skills are invoked as /l3a0:<skill-name> (the bare /<skill-name> also works while no other
installed command claims the name), and Claude auto-invokes them when a request matches a
skill's description.
Skills
kindle-highlights
Export a heavily-highlighted book from Amazon's notebook page and some highlights come back
cut off mid-sentence, while others come back as a bare location number with no text at all,
under this notice:
"Some highlights have been hidden or truncated due to export limits."
Those are your own notes, in your own account, capped by a budget Amazon doesn't document and
you can't raise. This skill gets them back: it extracts every highlight for a book from the
Kindle notebook (read.amazon.com/notebook) into one combined, verbatim, location-cited
Markdown file - including the highlights the export limit truncates or hides entirely, which
are recovered from the Mac Kindle app's synced annotation positions plus the Cloud Reader's
rendered pages.
Proven on five real books: 2,733 highlights extracted, 1,038 of them export-blocked (537
truncated + 501 fully hidden) - every one recovered, with recovered text landing within a
couple of characters of the Kindle app's own position ruler (median residual 0-1). Every
gotcha in the skill was earned by real debugging across those runs. The fifth run turned the recovery
into scripts. They read each highlight's known character length from the Kindle app, sweep the reader,
match recognized words to the reader's own highlight overlays, and check every recovered span against
that length.
The build story - why the export limit exists, the three unlocks that beat it, and what a
library of exports becomes - is written up in
How to Take Back Your Kindle Highlights,
also published on Substack.
Scope: this exports your own highlights from your own Amazon account, by driving your
own logged-in browser session and reading files the Kindle app stores on your Mac. The output
is for your personal notes - book text is copyrighted, so keep extracted notes private.
Prerequisites (macOS only)
The pipeline is macOS-only three times over: browser control runs over AppleScript, OCR uses
Apple's Vision framework, and highlight positions come from the Mac Kindle app's data files.
- Claude Desktop with the "Control Chrome" extension - Anthropic's browser-control MCP,
installed in one click from Claude Desktop → Settings → Extensions. It is the skill's
verified path for executing JavaScript in your real Chrome (any browser MCP that can run JS
in the tab can substitute). It requires a Chrome setting:
Chrome menu bar → View → Developer → Allow JavaScript from Apple Events → check →
quit and relaunch Chrome. - Google Chrome, signed in to your Amazon account (the skill drives
read.amazon.com). - The current Mac Kindle app (App Store; bundle id
com.amazon.Lassen- not the classic
Kindle.app), signed in to the same Amazon account, with the book downloaded. Its synced
annotation database provides exact highlight extents with no export limit. - Xcode Command Line Tools (
xcode-select --install) - the recovery path compiles two small
Swift helpers withswiftcon first use: an Apple Vision text pass and a CoreGraphics band crop. - python3 - builds the final Markdown and runs a localhost receiver
(127.0.0.1:8931) that the reader page POSTs captures to.
What it does, briefly
- Scrapes all highlights from the notebook page DOM to JSON (verbatim typography preserved).
- Reads exact character-precise highlight positions from the Kindle app's SQLite database -
including highlights the web export hides completely. - For blocked text, captures the Cloud Reader's rendered pages via canvas (no OS screenshots
needed), OCRs them locally with Apple Vision (zero tokens), and cuts the text to the known
positions. - Emits one Markdown file with
### Location Nsections, blockquoted verbatim text, and
flags for anything recovered or approximate, then runs a QA pass.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.