{"slug": "a-claude-code-skill-that-recovers-export-blocked-kindle-highlights", "title": "A Claude Code skill that recovers export-blocked Kindle highlights", "summary": "A new Claude Code plugin by developer l3a0 recovers Kindle highlights that Amazon's export limit truncates or hides, extracting 2,432 highlights from four real books, including 815 export-blocked ones (454 truncated and 361 fully hidden), with recovered text matching the Kindle app's position ruler within a median residual of 0–1 characters. The macOS-only pipeline uses the Claude Desktop 'Control Chrome' extension, the Mac Kindle app's SQLite database, and Apple Vision OCR to bypass Amazon's undocumented export cap.", "body_md": "A personal collection of [Claude Code](https://code.claude.com) skills, published as a single\nplugin under the `l3a0`\n\nnamespace. This repo is both the plugin and its own marketplace.\n\nI write about how these tools get built — and about technology, business, and finance — at\n[baowebdev.substack.com](https://baowebdev.substack.com).\n\n```\nclaude plugin marketplace add l3a0/claude-plugins\nclaude plugin install l3a0@l3a0\n```\n\nSkills are invoked as `/l3a0:<skill-name>`\n\n(the bare `/<skill-name>`\n\nalso works while no other\ninstalled command claims the name), and Claude auto-invokes them when a request matches a\nskill's description.\n\nExport 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:\n\n\"Some highlights have been hidden or truncated due to export limits.\"\n\nThose are your own notes, in your own account, capped by a budget Amazon doesn't document and\nyou can't raise. This skill gets them back: it extracts every highlight for a book from the\nKindle notebook (`read.amazon.com/notebook`\n\n) into one combined, **verbatim, location-cited**\nMarkdown file — including the highlights the export limit truncates or hides entirely, which\nare recovered from the Mac Kindle app's synced annotation positions plus the Cloud Reader's\nrendered pages.\n\nProven on four real books: **2,432 highlights extracted, 815 of them export-blocked (454\ntruncated + 361 fully hidden) — every one recovered**, with recovered text landing within a\ncouple of characters of the Kindle app's own position ruler (median residual 0–1). Every\ngotcha in the skill was earned by real debugging across those runs.\nThe build story — why the export limit exists, the three unlocks that beat it, and what a\nlibrary of exports becomes — is written up in\n[How to Take Back Your Kindle Highlights](/l3a0/claude-plugins/blob/main/blog/how-to-take-back-your-kindle-highlights.md),\nalso published on [Substack](https://baowebdev.substack.com/p/how-to-take-back-your-kindle-highlights).\n\n**Scope:** this exports *your own* highlights from *your own* Amazon account, by driving your\nown logged-in browser session and reading files the Kindle app stores on your Mac. The output\nis for your personal notes — book text is copyrighted, so keep extracted notes private.\n\nThe 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.\n\n**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`\n\n).**The current Mac Kindle app**(App Store; bundle id`com.amazon.Lassen`\n\n— 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`\n\n) — the bulk-recovery path compiles a small Swift OCR helper (`swiftc`\n\n) that uses Apple Vision.**python3**— builds the final Markdown and runs a localhost receiver (`127.0.0.1:8931`\n\n) that the reader page POSTs captures to.\n\n- Scrapes all highlights from the notebook page DOM to JSON (verbatim typography preserved).\n- Reads exact character-precise highlight positions from the Kindle app's SQLite database — including highlights the web export hides completely.\n- 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.\n- Emits one Markdown file with\n`### Location N`\n\nsections, blockquoted verbatim text, and flags for anything recovered or approximate, then runs a QA pass.", "url": "https://wpnews.pro/news/a-claude-code-skill-that-recovers-export-blocked-kindle-highlights", "canonical_source": "https://github.com/l3a0/claude-plugins", "published_at": "2026-08-24 19:32:18+00:00", "updated_at": "2026-08-24 19:43:00.999171+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools"], "entities": ["Claude Code", "l3a0", "Amazon", "Kindle", "Apple Vision", "Claude Desktop", "Control Chrome", "Mac Kindle app"], "alternates": {"html": "https://wpnews.pro/news/a-claude-code-skill-that-recovers-export-blocked-kindle-highlights", "markdown": "https://wpnews.pro/news/a-claude-code-skill-that-recovers-export-blocked-kindle-highlights.md", "text": "https://wpnews.pro/news/a-claude-code-skill-that-recovers-export-blocked-kindle-highlights.txt", "jsonld": "https://wpnews.pro/news/a-claude-code-skill-that-recovers-export-blocked-kindle-highlights.jsonld"}}