Daisuke Masuda501 downloadsSync Kindle highlights and notes from Amazon into per-book Markdown notes in your vault.
Sync your Kindle highlights and notes from Amazon into per-book Markdown notes in your Obsidian vault.
Kindle Bridge signs in to Amazon using Amazon's own official sign-in page, reads the same "notebook" pages you can already see yourself when signed in to Amazon in a browser, and generates one Markdown note per book with a clearly delimited, plugin-managed section for your highlights and notes. Everything else in the note is yours to edit freely.
Kindle Bridge is an independent community plugin. It is not affiliated with, endorsed by, or sponsored by Amazon or Obsidian. See Authentication and Amazon Dependency and Disclaimer below.
Screenshots are not yet included in this repository. Before publishing a release, add the following to a screenshots/ folder and reference them here:
Once Kindle Bridge is available in the Obsidian Community Plugins directory:
For development or testing before the plugin is published:
npm install and npm run build in this repository (see CONTRIBUTING.md).<your-vault>/.obsidian/plugins/kindle-bridge/, so that main.js, manifest.json, and (if present) styles.css are directly inside that folder.Highlight and Note/Books).| Region | Status |
|---|---|
Japan (amazon.co.jp) |
Supported — verified against a real account |
Global / United States (amazon.com) |
Supported — verified against a real account |
United Kingdom (amazon.co.uk) |
Experimental — registry scaffolding only, not verified against a real account |
Germany (amazon.de) |
Experimental — not verified against a real account |
France (amazon.fr) |
Experimental — not verified against a real account |
Spain (amazon.es) |
Experimental — not verified against a real account |
Italy (amazon.it) |
Experimental — not verified against a real account |
Netherlands (amazon.nl) |
Experimental — not verified against a real account |
Experimental regions are selectable in Settings (each one is labeled "(unverified)" there too) but their date parsing falls back to English and hasn't been checked against real Amazon markup in that locale. Book/highlight parsing is structure-based rather than language-based, so it's expected to work the same way, but this is unconfirmed. Please open an issue if you can verify (or report a problem with) one of these regions.
<!-- kindle-bridge:generated:start --> … <!-- kindle-bridge:generated:end -->). Only content inside these markers is ever overwritten by sync. A ## My Notes section below the block (and anything else you add outside the markers) is never touched. If a note's markers are missing or edited away, that note is skipped on sync rather than risk overwriting your content.Daily Notes integration is opt-in (off by default). When enabled, Kindle Bridge appends one summary line to today's Daily Note after a sync that created, updated, or flagged at least one note:
- 📚 Kindle Bridge: 2 created, 1 updated, 0 flagged as removed (14 highlights, 3 notes)
Two independent, opt-in settings (both off by default):
Notes on behavior:
The following is an illustrative example — not real Kindle data. ## My Notes and anything else outside the generated block is yours; Kindle Bridge never modifies it after the note's first creation.
---
kindle_bridge: true
kindle_book_id: "B0EXAMPLE1"
asin: "B0EXAMPLE1"
title: "The Pragmatic Programmer"
authors:
- "David Thomas"
- "Andrew Hunt"
amazon_region: "global"
amazon_url: "https://www.amazon.com/dp/B0EXAMPLE1"
cover_image_url: "https://m.media-amazon.com/images/example.jpg"
last_annotated_at: "2026-08-01"
annotation_count: 2
highlight_count: 1
note_count: 1
last_synced_at: "2026-08-10T09:15:00.000Z"
tags:
- kindle
- reading
kindle_bridge_missing_from_library: false
---
# The Pragmatic Programmer

By David Thomas, Andrew Hunt · [View on Amazon](https://www.amazon.com/dp/B0EXAMPLE1)
## Highlights and Notes
<!-- kindle-bridge:generated:start -->
<!-- kindle-bridge:annotation:id=abc123 -->
> Care about your craft.
<!-- kindle-bridge:annotation:id=def456 -->
> Think about your work.
>
> **Note:** revisit this chapter before starting a new project.
<!-- kindle-bridge:generated:end -->
## My Notes
Anything you write here (or below) is never touched by sync.
| Setting | Default | Description |
|---|---|---|
| Amazon region | Japan | Which Amazon Kindle store to sync from. See Supported Amazon Regions. |
| Sign in to Amazon | — | Opens the Amazon sign-in flow for the selected region. |
| Sign-in status | — | On-demand check (opens a brief hidden browser window) of whether your session is currently valid. |
| Sync now | — | Runs a sync immediately. |
| Output folder | Highlight and Note/Books |
Vault folder where per-book notes are created. |
| Display cover image | On | Shows the book cover (linked to Amazon) in generated notes. |
| Debug logging | Off | Logs extra detail to the developer console. Credentials, cookies, and annotation text are always masked regardless of this setting. |
| Daily Note summary | Off | Appends a sync summary line to today's Daily Note, if it exists. |
| Daily Note folder | Daily Notes |
Folder your Daily Notes live in. Must match your real Daily Notes setup for the summary to land in the right place. |
| Daily Note date format | YYYY-MM-DD |
Moment.js format used for the Daily Note file name. |
| Sync on startup | Off | Sync once when Obsidian finishes loading. |
| Automatic interval sync | Off | Sync on a fixed interval while Obsidian is open. |
| Sync interval (minutes) | 60 (range 15–360) | Interval used when automatic interval sync is on. |
Kindle Bridge does not collect analytics or telemetry, and does not send your data to any developer-owned server. The only network destination is Amazon's own Kindle notebook pages for the region you select. Full details, including exactly what is stored and where: PRIVACY.md.
Kindle Bridge's community directory scorecard carries a Shell Execution warning, because the plugin uses Node's child_process module. That is accurate, and it is unavoidable: signing in to Amazon means driving a real, separate Chrome/Edge/Chromium/Brave process, and starting one requires child_process. The same warning appears on every plugin that runs an external program (Obsidian Git, for example, for running git).
What the plugin actually runs is a fixed, short list — see SECURITY.md § Process execution surface for the exact call sites and the invariants a test enforces on them:
readlink, rm and ps, with fixed arguments, only to recover from a stale Chrome profile lock left behind by a crashed browser.No shell is ever involved (shell: true is never used, and neither is exec()), no command line is ever built from your settings, note contents, or anything else you type, and nothing is ever downloaded and run.
data.json, like any other plugin's settings. Contains no Amazon credentials.last_synced_at, last_annotated_at), not in a separate database.<vault>/.obsidian/plugins/kindle-bridge/browser-profile/, created and managed by the external Chrome/Edge/Chromium/Brave process itself. This is where your Amazon session (cookies) actually lives — Kindle Bridge's own code never reads its contents. Signing out clears cookies in this profile for the current region.Cannot sign in Make sure a supported browser (Chrome, Edge, Chromium, or Brave) is installed. If sign-in never completes, check the developer console for errors and confirm the browser window that opened isn't stuck behind another window.
Session expired Run "Kindle Bridge: Sign in to Amazon" again. Sessions can expire the same way a normal browser session would.
CAPTCHA Solve it in the sign-in browser window exactly as you would in a normal browser. Kindle Bridge does not detect or bypass CAPTCHA challenges.
No books found
Confirm you're signed in to the correct region (a book library on amazon.com won't show up if you're signed in to amazon.co.jp, for example) and that the account actually has Kindle books.
No highlights or notes found for a book Confirm the book actually has highlights/notes visible on Amazon's own notebook page for that book. If it does but Kindle Bridge shows none, Amazon's page structure may have changed — see below.
Region mismatch The Amazon region in Settings must match the region you're signed in to. Sign out and sign in again under the correct region if you switch.
Sync failure Check the developer console with debug logging enabled (Settings → Debug logging). Error messages are designed to explain what failed (not signed in, network error, rate-limited, etc.) without exposing credentials.
"Amazon's page structure may have changed" errors Kindle Bridge parses Amazon's own web pages, which Amazon can change at any time without notice (see Amazon Dependency and Disclaimer). If parsing starts failing, please open an issue with the error message (never include cookies, tokens, or personal Kindle content — see SECURITY.md).
Duplicated notes
Kindle Bridge disambiguates by ASIN/book ID when two books would otherwise produce the same filename, and matches existing notes to books by frontmatter (kindle_book_id) rather than by filename alone. If you see true duplicates, please open an issue.
Collecting logs for a bug report
Enable "Debug logging" in Settings, reproduce the issue, then open the developer console (View → Toggle Developer Tools) and copy the [Kindle Bridge]-prefixed lines. Credentials and annotation text are masked automatically, but please still review before posting — see SECURITY.md.
Kindle Bridge is an independent community plugin and is not affiliated with, endorsed by, or sponsored by Amazon or Obsidian.
Kindle Bridge works by automating the same Kindle "notebook" web pages a signed-in user can already view in a browser. It does not use any official or public Amazon API, any private/reverse-engineered mobile API, or any credential-harvesting technique. Because of this:
Contributions are welcome — see CONTRIBUTING.md for how to set up a development build, run tests/lint/typecheck, and what to avoid (no personal Kindle data or credentials in commits, issues, or fixtures).
MIT — see LICENSE.
The general idea of signing in via Amazon's own login page (so no credentials ever touch the plugin) and of protecting user-edited note content across re-syncs was informed by studying hadynz/obsidian-kindle-plugin (MIT licensed). No code from that project is reused in Kindle Bridge — this is an independent implementation with its own architecture, browser-automation approach, tests, and license. Thanks to its author and contributors for publishing a working reference.
docs/architecture.md — component layout, region abstraction, auth/session design, extension points.docs/risks.md — known risks (Amazon HTML changes, session handling, MFA/CAPTCHA, etc.) and mitigations.docs/release-checklist.md — manual release acceptance checklist.docs/community-plugin-submission.md — Community Plugin submission reference.