Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Bookmarks Sync

chadidichadidi1 downloads

Import Safari, Chrome, Firefox or Chromium Browsers bookmarks as individual Markdown notes, using predefined or your own template.

Add to Obsidian
Bookmarks Sync screenshot
Bookmarks Sync screenshot
Bookmarks Sync screenshot
  • Overview
  • Scorecard
  • Updates10

Import Safari, Chrome or Firefox bookmarks as individual Markdown notes into your Obsidian vault, using your own customizable template.

Bookmarks Sync Settings

Features

  • Multi-browser support: Import bookmarks directly from Google Chrome, Chromium (Brave, Edge, etc.), Safari (macOS), or Mozilla Firefox.
  • Customizable templates: A template is a markdown file in the plugin's templates folder, bundled into the build with its file name as the template name. Editing a template in settings switches the selection to Custom and leaves the built-in file untouched. Templates use placeholders like {{title}}, {{url}}, {{date}}, {{folder_path}}, {{domain}}, and more.
  • Frontmatter ready: Use filters like {{title|yaml}} to safely format text for YAML frontmatter.
  • Hierarchy preservation: Mirror your browser folder tree into vault subfolders, or save all bookmarks into a flat folder.
  • Selective folder sync: Filter by a specific root browser folder (e.g. Bookmarks Bar/Work) to sync only what you want.
  • Safe duplicate handling: URL-based indexing ensures each URL produces a single note, even if filed in multiple folders.
  • Flexible automation: Sync manually on demand, automatically on startup, or at periodic intervals.
  • Conflict-free updates: Uses atomic vault updates so notes are modified safely without race conditions.

Installation

Beta testing with BRAT (Recommended)

You can easily install and test beta releases of this plugin using Obsidian42 - BRAT:

  1. Install and enable the BRAT plugin from Obsidian's Community Plugins.
  2. Open Obsidian Settings → BRAT.
  3. Under Beta Plugin List, click Add Beta plugin.
  4. Enter the GitHub repository: chadidi/obsidian-bookmarks-sync (or https://github.com/chadidi/obsidian-bookmarks-sync).
  5. Click Add Plugin. BRAT will download the latest release assets (manifest.json, main.js, and styles.css).
  6. Go to Settings → Community plugins and enable Bookmarks Sync.

Manual installation

  1. Download the latest release (main.js, manifest.json, styles.css) from the Releases page.
  2. Create a folder named bookmarks-sync in your vault's plugin directory: <vault>/.obsidian/plugins/bookmarks-sync/.
  3. Copy main.js, manifest.json, and styles.css into that folder.
  4. Reload Obsidian and enable the plugin under Settings → Community plugins.

Build from source

git clone https://github.com/chadidi/obsidian-bookmarks-sync.git
cd obsidian-bookmarks-sync
npm install
npm run build

Copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/bookmarks-sync/.

First run

  1. Go to Settings → Bookmarks Sync.
  2. Select your browser under Source. The plugin will automatically detect your browser's default bookmarks file path on macOS, Windows, or Linux.
  3. Choose your target vault folder and template.
  4. Click Sync bookmarks (or click the bookmark ribbon icon, or run the command Sync bookmarks now).
  5. Automatic syncs (on startup or periodic) are kept disabled until one manual sync has completed successfully to prevent accidental imports.

Supported browsers

Browser Default file location Notes
Google Chrome …/Google/Chrome/Default/Bookmarks, falling back to …/AccountBookmarks (macOS / Windows / Linux) JSON file. When you are signed in, Chrome may store your bookmarks in AccountBookmarks instead; the plugin detects both. Custom profiles, or other Chromium-based browsers (e.g. Brave, Edge, Arc), can be used by providing their custom path in settings.
Chromium …/Chromium/Default/Bookmarks, falling back to …/AccountBookmarks (macOS / Windows / Linux) Same JSON layout as Chrome. Detect the default Chromium profile automatically, or set a custom profile path in settings.
Safari ~/Library/Safari/Bookmarks.plist (macOS) Binary plist, parsed directly in-process. Because macOS protects ~/Library/Safari/, either use Choose Bookmarks.plist in settings to grant read access to just that file for the session (no Full Disk Access needed), or grant Obsidian Full Disk Access in macOS System Settings → Privacy & Security. Reading List items are excluded. Safari stores no creation dates, so {{date}} uses the sync date.
Firefox Auto-detected places.sqlite or bookmarkbackups/*.jsonlz4 Reads live bookmarks from places.sqlite using the system sqlite3 CLI tool on a temporary database snapshot. Alternatively, point to a bookmarkbackups/*.jsonlz4 file or directory for native decompression without sqlite3.

Template placeholders

Placeholder Description
{{title}} Bookmark title (falls back to host/path if title is empty).
{{url}} Full URL of the bookmark.
{{date}} Date the bookmark was added (supports moment.js format, e.g. {{date:YYYY-MM-DD}}).
{{synced}} Date the current sync occurred (e.g. {{synced:YYYY-MM-DD HH:mm}}).
{{folder_path}} Full browser folder path separated by / (e.g. Bookmarks Bar/Dev/Obsidian).
{{folder}} Immediate parent folder name (e.g. Obsidian).
{{folder_links}} Folder path as wiki links separated by / (e.g. [[Bookmarks Bar]] / [[Dev]] / [[Obsidian]]). Pass a custom separator after a colon, e.g. {{folder_links: > }} gives [[Bookmarks Bar]] > [[Dev]] > [[Obsidian]].
{{folder_links_yaml}} Folder path as a quoted list of wiki links for front matter (e.g. ["[[Bookmarks Bar]]", "[[Dev]]", "[[Obsidian]]"]).
{{folder_tags}} Folder path as quoted, comma-separated tag names for a front matter tag list, sanitized to valid Obsidian tags (whitespace becomes -, characters like ( ) . & are removed), e.g. tags: [bookmark, {{folder_tags}}] gives tags: [bookmark, "Bookmarks-Bar", "Dev", "Obsidian"].
{{folder_hashtags}} Folder path as inline hashtags, sanitized to valid Obsidian tags (whitespace becomes -, characters like ( ) . & are removed), e.g. #Bookmarks-Bar #Dev #Obsidian.
{{domain}} Clean domain name without www. (e.g. obsidian.md).
{{browser}} Browser name (e.g. Google Chrome, Chromium, Safari, Firefox).

Filters

You can apply pipe filters to any placeholder:

  • |yaml: Safely quotes and escapes values for YAML frontmatter (e.g. title: {{title|yaml}}).
  • |lower: Converts value to lowercase.
  • |upper: Converts value to uppercase.
  • |slug: Converts value to a URL-friendly slug (e.g. {{title|slug}}). Folder paths keep their / separators, so Music Stuff/Sax Songs becomes music-stuff/sax-songs.

Sync behavior

  • Only sync new bookmarks (default): Existing notes corresponding to a bookmark are never modified.
  • Apply templates to existing bookmarks: Existing bookmark notes will be updated if the rendered template output has changed.
  • Renaming and moving notes: The plugin tracks notes by their URL mapping in data.json. Renaming or moving notes inside Obsidian will preserve the association.
  • Deleting notes: If you delete a bookmark's note in Obsidian, it will be treated as new on the next sync and recreated.
  • Removing deleted bookmarks: If you delete a bookmark in your browser, its note is permanently deleted from the vault on the next sync. Only notes the plugin created (tracked in data.json) are removed; notes for bookmarks that still exist in the browser but fall outside the configured Browser bookmarks folder are left untouched.

Disclosures & privacy

  • Desktop only: This plugin requires Obsidian's desktop application (macOS, Windows, or Linux) because it uses local filesystem access to read browser databases.
  • Filesystem access outside vault: This plugin reads local browser bookmarks files stored on your computer (such as Bookmarks.plist for Safari, Bookmarks for Chrome, or places.sqlite for Firefox). These files are read strictly to import your bookmarks. When you pick a Safari Bookmarks.plist through the native file dialog, its contents are held in memory for the current session only and are never written to disk or persisted in settings.
  • 100% offline & private: No network requests are made. No analytics or telemetry are collected. All bookmark processing and note generation happens completely locally on your device.

License

MIT © Abdellah Chadidi

HealthExcellent
ReviewCaution
About
Import Safari, Chrome, or Firefox bookmarks as individual Markdown notes using customizable templates with placeholders for title, url, date, folder_path, domain and YAML-safe filters. Preserve browser folder hierarchy or save to a flat folder, filter by a root folder, and ensure one note per URL with atomic, conflict-free updates. Sync manually, on startup, or at set intervals.
ImportTemplatingSyncing
Details
Current version
1.1.4
Last updated
7 hours ago
Created
4 days ago
Updates
10 releases
Downloads
1
Compatible with
Obsidian 1.6.6+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
chadidichadidi
GitHubchadidi
  1. Community
  2. Plugins
  3. Import
  4. Bookmarks Sync

Related plugins

Kindle Highlights

Sync your Kindle book highlights using your Amazon login or uploading your My Clippings file.

Make It Rain

Pull Raindrop.io bookmarks, highlights, and attachments into Markdown notes with rich metadata, smart folder structures, and native file support.

Weread

Sync Tencent Weread highlights and annotations.

Importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

Templater

Create and use dynamic templates.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

QuickAdd

Quickly add new notes or content to your vault.

Google Drive Sync

Syncs a vault into Google Drive for cross-platform use (works for iOS).

Folder notes

Create notes within folders that can be accessed without collapsing the folder, similar to the functionality offered in Notion.