English | 简体中文
Bookmark Sync is a browser bookmark manager and bookmark sync extension for Chrome, Edge, and Firefox. It supports GitHub Gist bookmark sync, bookmark tree view, drag-and-drop sorting, duplicate bookmark detection, bookmark backup, and side panel bookmark management.
bookmark sync bookmark manager browser bookmark manager chrome extension edge extension firefox extension github gist sync bookmark backup bookmark tree side panel duplicate bookmark finder cross-browser bookmark sync 书签同步 书签管理 浏览器书签管理 GitHub Gist 同步 书签备份 侧边栏插件
- Tree view for bookmarks with virtual scrolling for large datasets
- Drag-and-drop sorting and moving for bookmarks and folders
- Duplicate URL detection with confirmation dialog
- Two-way GitHub Gist sync with automatic debounced upload and manual sync
- Confirmation for destructive operations
- Search and filtering
- Right-click context menu
- Support for Chrome, Firefox, and Edge
- WXT for cross-browser extension development
- React 18 + TypeScript
react-arboristfor virtualized tree rendering- Tailwind CSS
- GitHub Gist API
# Install dependencies
npm install
# Chrome development
npm run dev
# Firefox development
npm run dev:firefoxLoad .output/chrome-mv3 or .output/firefox-mv2 in your browser.
# Chrome
npm run build
# Firefox
npm run build:firefox
# Zip packages
npm run zip
npm run zip:firefox- Open the extension side panel from the browser toolbar.
- Go to Settings and paste a GitHub Personal Access Token with the
gistscope. - Click
Syncto synchronize bookmark data to GitHub Gist.
entrypoints/
background.ts # Service Worker for messaging and sync
sidepanel/ # Side panel UI
App.tsx # Main app
components/ # UI components
lib/
types.ts # Type definitions
gist-client.ts # GitHub Gist API wrapper
bookmark-adapter.ts # Browser bookmarks API adapter
sync-engine.ts # Two-way sync engine
dedup.ts # Duplicate detection logic
- Chrome Web Store: run
npm run zipand submit.output/chrome-mv3.zip - Firefox Add-ons: run
npm run zip:firefoxand submit.output/firefox-mv2.zip - Edge Add-ons: submit the Chrome build to Microsoft Partner Center
- Local development: load the unpacked extension from
.output/chrome-mv3or.output/firefox-mv2
The GitHub token is stored in browser.storage.local. It is only accessed by the background service worker and is not exposed to content scripts.