DEV Community

Cover image for How to Export Chrome Bookmarks as JSON — and Why I Built a One-Click Extension for It
Wasil
Wasil

Posted on

How to Export Chrome Bookmarks as JSON — and Why I Built a One-Click Extension for It

Chrome has a built-in bookmark manager, but it only exports your bookmarks as an HTML file. If you've ever tried to parse that HTML or import it into another tool, you know it's a mess.

I needed a clean JSON export — something I could back up, version control, or feed into a script. Couldn't find a simple extension that did just that without asking for a ton of permissions or requiring an account. So I built one.

What it does
Click the extension icon → get a bookmarks.json file with your entire bookmark tree. That's it.

No popup, no settings, no account. Works offline. The whole extension is about 5 KB.

Permissions
Only two:

bookmarks — to read your bookmark tree
downloads — to trigger the file save dialog
Nothing else. No tabs, no history, no "read all data on all websites."

The code
The core logic is tiny:

chrome.action.onClicked.addListener(exportBookmarks);

async function exportBookmarks() {
  const bookmarks = await chrome.bookmarks.getTree();
  const blob = new Blob([JSON.stringify(bookmarks, null, 2)], { type: 'application/json' });
  const url = URL.createObjectURL(blob);

  chrome.downloads.download({
    url,
    filename: 'bookmarks.json',
    saveAs: true
  });
}
Enter fullscreen mode Exit fullscreen mode

That's the essence of it. Uses Manifest V3, the chrome.bookmarks API to get the tree, and chrome.downloads to save the file.

When it's useful
Backup — before a browser reset or OS reinstall
Migration — moving from Chrome to Firefox, Brave, or another browser
Automation — feeding your bookmarks into a script or database
Sharing — sending your curated links to someone else
Archiving — periodic snapshots of your saved links

Try it
Chrome Web Store
GitHub

Top comments (0)