Move your bookmarks between browsers the simple way: with a file. No account, no cloud sync, 100% offline.
A Chrome (MV3) extension for importing, exporting and editing bookmarks and folder trees. English · Tiếng Việt · 日本語.
| Edit | Export |
|---|---|
![]() |
![]() |
| Settings | About |
|---|---|
![]() |
![]() |
- Import HTML, JSON or CSV bookmark files, with a full preview first — counts, folders, depth, duplicates and warnings before anything is written.
- Choose how: into a new dated folder (the safe default), merged into your existing folders, or replacing everything. Replace saves a JSON safety backup first and deletes nothing until that backup is proven.
- Export everything, or just the folders you pick, to HTML (Chrome, Edge, Brave, Firefox, Safari, Vivaldi, Opera), JSON, CSV or Markdown.
- Edit the tree: search, rename, drag & drop, create folders, delete, and find duplicate links — every action reachable from the keyboard.
This is the whole point of the project, so it is worth being precise.
- No network access at all. Not analytics, not telemetry, not update pings.
There is no server. A grep gate (
npm run guard) fails the build if anyone addsfetch,XMLHttpRequest,WebSocket,EventSourceorsendBeacon. - Exactly two permissions:
bookmarksandstorage. No host permissions, no content scripts, no background worker. Two gates enforce it: a unit test overwxt.config.ts, andnpm run check:manifest, which CI runs against the builtmanifest.json— because a build can add what the config never asked for. - Zero runtime dependencies. Nothing third-party ships in the extension.
- Settings use
chrome.storage.local, neverstorage.sync, so even your preferences stay off any vendor cloud.
Full policy: legal/PRIVACY.md.
- Favicons cannot be imported — the bookmarks API has no favicon field.
- Imported bookmarks get today's date. Chrome does not let an extension set a bookmark's original creation date. Your exported files keep the real ones.
- CSV is a flattened view: empty folders and "which folder is the toolbar" are not preserved. Use HTML or JSON for a faithful backup.
- Markdown is share-only — BookmarkMagic cannot read it back.
From the Chrome Web Store: here
From source:
npm ci && npm run buildThen load .output/chrome-mv3/ at chrome://extensions with Developer mode on.
npm run devnpm run verify is the gate everything else answers to — lint, type-check,
knip, the grep gate and the test suite, in that order. It must be green before
every commit.
The docs/ directory is the binding specification, not notes: where
code and docs disagree, the docs win. Start with CLAUDE.md, then
docs/00–docs/02.
Bug reports and translation fixes are welcome via issues. A bug report about parsing is far more useful with a sanitized sample of the file that broke.
Security issues: please follow SECURITY.md rather than opening
a public issue.
Entirely optional — BookmarkMagic is free software either way.
GitHub Sponsors · Ko-fi · Buy Me a Coffee · Patreon · PayPal
GPL-3.0-or-later. Also see legal/EULA.md,
legal/DISCLAIMER.md and
legal/THIRD_PARTY_NOTICES.md.
Not affiliated with or endorsed by Google, Chrome, or any browser vendor. Browser names are trademarks of their respective owners.



