A Chrome (Manifest V3) extension that syncs your Chrome bookmarks with raindrop.io — automatically pushing Chrome → Raindrop, with an on-demand pull the other way.
- Chrome → Raindrop (automatic). Mirrors your whole Chrome bookmark tree under
a single root collection (default Chrome). Folder hierarchy is preserved as
nested collections; bookmarks become raindrops.
- Periodic (configurable interval), manual ("Sync to Raindrop" button), and live — adds/removes sync the moment you make them.
- Full mirror, confined to the root collection: bookmarks removed in Chrome are removed from Raindrop. Collections outside the root are never touched.
- Raindrop → Chrome (on demand). "Sync from Raindrop" makes Chrome match your Raindrop tree (full mirror), mapping Raindrop's containers back to Chrome's real Bookmarks Bar / Other / Mobile. Asks for confirmation first (it can delete Chrome bookmarks). Chrome's root folders are never deleted.
- Robust to edge cases:
- Same-named sibling folders become distinct collections, matched by id order
and pinned by a persisted
chromeFolderId → collectionIdmap. - Non-web URLs (
javascript:,chrome://,file://, …) are skipped. - Created collections inherit the root collection's icon.
- Same-named sibling folders become distinct collections, matched by id order
and pinned by a persisted
- Efficient: batched create/move/delete and a single "all raindrops" fetch keep requests well under Raindrop's 120 req/min limit.
- Open
chrome://extensions, enable Developer mode. - Load unpacked → select this folder.
- Get a test token: raindrop.io → Settings → Integrations → create an app → Test token.
- Click the extension icon → Settings.
- Paste the token and click Test connection (should show "Connected as …").
- Choose a root collection name and a sync interval, then Save.
- Sync to Raindrop — push Chrome → Raindrop now (also runs automatically on the interval and on live bookmark changes).
- Sync from Raindrop — pull Raindrop → Chrome (full mirror; confirms first).
- The popup shows live progress and the last run's result.
bookmarks, alarms, storage, and host access to https://api.raindrop.io/*.
The token is stored in chrome.storage.local (not synced storage).
npm testruns the unit tests (Node's built-innode --test; no network).- Design notes live in
docs/superpowers/specs/.
Personal project — no license specified.