以 Safari 为准Safari decides
文件夹和标题都跟 Safari 一致。浏览器里已有的同网址书签会被移到对应位置,不会重复新建。 Folders and titles follow Safari. A matching bookmark already in a browser is moved into place, never duplicated.
开源 · 自托管 · Cloudflare Workers Open source · Self-hosted · Cloudflare Workers
以 Safari 为准:书签放在哪个文件夹、叫什么名字,都跟 Safari 一致。在任何一个浏览器里新增或删除书签,其他地方都会跟着变化,并经 iCloud 同步到你的 iPhone 和 iPad。 Safari is the source of truth: every bookmark's folder and title follow Safari. Add or delete a bookmark in any browser and the change reaches the others, and through iCloud your iPhone and iPad.
macOS 14 或更新版本 · Apple 芯片和 Intel · Chrome 116+ · Firefox 桌面版 macOS 14 or later · Apple silicon and Intel · Chrome 116+ · Firefox for desktop
文件夹和标题都跟 Safari 一致。浏览器里已有的同网址书签会被移到对应位置,不会重复新建。 Folders and titles follow Safari. A matching bookmark already in a browser is moved into place, never duplicated.
在 Chrome 或 Firefox 的 "Safari Bookmarks" 文件夹里新增的书签,会直接写入 Safari,Safari 开着也可以。 Bookmarks added to the "Safari Bookmarks" folder in Chrome or Firefox are written straight into Safari, even while it's open.
任意一端删除,其他端跟着删除。一次删除很多时会先请你确认,防止误删。 Delete anywhere and it's gone everywhere. A large delete waits for your confirmation first.
从浏览器同步回来的改动会经 iCloud 传到 iPhone、iPad 和其他 Mac,不用你手动打开 Safari。 Changes from your browsers travel through iCloud to your iPhone, iPad and other Macs, without you opening Safari.
服务端是部署在 Cloudflare 上的 Worker,免费额度足够个人使用。每个 Access Key 一个同步组,数据互相隔离。 The server is a Cloudflare Worker; the free plan covers personal use. Each Access Key has its own sync group, isolated from the others.
Mac App 每次写入前备份 Safari 书签(保留最近 20 份);浏览器扩展第一次连接前备份整个书签树。 The Mac app backs up Safari's bookmarks before every write (the last 20 are kept); the extensions back up the whole bookmark tree before first connecting.
Mac 上的菜单栏 App 负责 Safari,浏览器扩展负责 Chrome 和 Firefox,它们都和你部署在 Cloudflare 上的 Worker 同步。有改动时,Worker 会通过 WebSocket 实时通知各端。 A menu bar app on the Mac looks after Safari and browser extensions look after Chrome and Firefox; all of them sync with your Worker on Cloudflare, which tells every device about changes in real time over WebSocket.
读取并写回 Safari 的书签文件Reads and writes Safari's bookmarks file
每个同步组一个 SQLite Durable ObjectOne SQLite Durable Object per sync group
维护 "Safari Bookmarks" 文件夹Keep the "Safari Bookmarks" folder
每位用户一个 Access Key,对应一个独立的同步组。想试用的话请联系作者开通;也可以按 GitHub 上的说明把服务端部署到你自己的 Cloudflare 账号。 Each user has one Access Key and their own sync group. To try it, contact the author; or deploy the server to your own Cloudflare account by following the instructions on GitHub.
本页面的网址this page's address
下载项目的 ZIP 并解压,扩展分别在 chrome-extension 和 firefox-extension 文件夹里。
Download the project as a ZIP and unzip it. The extensions are in the chrome-extension and firefox-extension folders.
chrome://extensions,开启右上角的"开发者模式"。
Open chrome://extensions in the address bar and turn on "Developer mode" at the top right.
chrome-extension 文件夹。需要 Chrome 116 或更新版本。
Click "Load unpacked" and choose the chrome-extension folder. Requires Chrome 116 or later.
about:debugging#/runtime/this-firefox。
Open about:debugging#/runtime/this-firefox in the address bar.
firefox-extension 文件夹里的 manifest.json。
Click "Load Temporary Add-on" and choose manifest.json in the firefox-extension folder.
这样载入的扩展在 Firefox 重启后会被移除,需要重新载入。 An add-on loaded this way is removed when Firefox restarts and has to be loaded again.
不需要。Mac App 在 Safari 开着或关着时都能写入书签。需要上传到 iCloud 时,它会在后台隐藏打开 Safari,传完再退出;你在这期间用了 Safari 就不会退出。不想让它打开 Safari,可以在设置里关掉 "Upload to iCloud in the background"。 No. The Mac app writes bookmarks whether Safari is open or not. When changes need to go to iCloud, it opens Safari hidden and quits it afterwards, unless you started using it in the meantime. To keep it from opening Safari, turn off "Upload to iCloud in the background" in its settings.
它用来启动 iCloud 上传。Safari 只会在自己保存一次改动后才上传到 iCloud,所以 App 让 Safari 重新添加这一条:已存在时 Safari 会替换它,不会重复。它不会同步到 Chrome 和 Firefox。Safari 添加这一条时会顺便打开阅读列表边栏。 It starts the iCloud upload. Safari uploads only after it saves a change of its own, so the app has Safari add this item again; Safari replaces an existing one, so there is never a duplicate. It is never synced to Chrome or Firefox. Safari also opens the Reading List sidebar when it adds the item.
在 Safari 一次消失超过 20 条且超过 10% 的书签时,Mac App 会先请你确认;在浏览器里 10 分钟内删除同样多的书签时,它们会先被放回,扩展图标上出现红色 "!",在扩展弹窗里确认后才会在所有地方删除。 If more than 20 bookmarks (and more than 10%) disappear from Safari at once, the Mac app asks you first. If you delete that many in a browser within 10 minutes, they are put back and the extension icon shows a red "!"; they are deleted everywhere only after you confirm in the extension's popup.
存在 Worker 上属于你这个同步组的 SQLite Durable Object 里,不同 Access Key 的数据互相隔离。删除记录保留 90 天后自动清理。Safari 书签的备份只存在你自己的 Mac 上。详见隐私政策。 In your sync group's own SQLite Durable Object on the Worker; data under different Access Keys is kept apart. Deleted entries are cleaned up after 90 days. Backups of Safari's bookmarks stay on your own Mac. See the privacy policy.
想试用、开通 Access Key,或者使用中遇到问题,都可以通过微信或邮箱联系作者。 To try it, ask for an Access Key, or report a problem, reach the author on WeChat or by email.