同步。
笔记在你 GitHub 上。免费。
我们一直拖到 v3.0 才做同步,是因为不想变成一个 SaaS。
最后选的形态是:SoloMD 是一个 git 客户端。数据在你自己的 GitHub 账号里。
没有 SoloMD 服务器。没有订阅。不需要账号。
GitHub 同步
粘个 Personal Access Token(保存到系统钥匙串)。选一个已有仓库,或者让 SoloMD 给你新建一个私库。 保存后 5 秒自动推,5/15/30/60 分钟间隔自动拉。 历史侧边栏带逐文件冲突解决:用我的 / 用 GitHub 的 / 都保留。
底层基于 libgit2 和 v2.2 AutoGit 同一套引擎,不依赖系统 git。
GitLab / Gitea / 任意 HTTPS git 地址也能工作 —— 推拉对平台无感。
端到端加密(可选)
勾「推送前加密」并设口令。远端只看到密文:
SLMD magic + 24 字节 XChaCha20 nonce + 16 字节 Poly1305。
Argon2id 派生密钥。
明文留在你设备上 —— 搜索、RAG、AI 改写都正常工作。 盐与 KDF 参数随加密仓库同步,所以另一台设备只要输同样口令就能派生同一把钥匙。
已经在 iCloud / Dropbox / OneDrive?
v3.0 自动识别工作区位于已知云盘文件夹的情况,弹横幅告诉你 —— 苹果 / Dropbox / 微软已经在做文件级同步。
我们在此之上加一层跨设备会话恢复:
.solomd/session.<deviceId>.json 记录每台机器的标签页。
另一台设备打开同一工作区,会一键弹「从 Mac mini 恢复」。
公开只读分享
命令面板「复制分享链接」,得到 solomd.app/share/?repo=你/笔记&path=note.md。
任何人在浏览器里就能阅读 —— 直接从 raw.githubusercontent.com 拉取,
DOMPurify 净化,无 SoloMD 服务器。
仅支持公开仓库 —— 私有笔记会清晰显示「可能是私有仓库」而不是默默 404。
对比一下
| SoloMD v3.0 | Obsidian Sync | 仅 iCloud | |
|---|---|---|---|
| 数据存哪 | 你的 GitHub | Obsidian 服务器 | Apple 服务器 |
| 价格 | 免费 | $96 / 年 | 5 GB 内免费 |
| 端到端加密 | ✅ 可选 | ✅ 可选 | ❌ |
| 每文件历史 | 完整 git log | 1 年 | 30 天 |
| 多平台 | GitHub / GitLab / Gitea / 自定义 | 仅 Obsidian | 仅 Apple |
| 需要订阅 | 否 | 是 | 5GB 之后 |
| 公开分享 | ✅ 内置 | ✅ Obsidian Publish ($120/年) | ❌ |
60 秒上手
- SoloMD →「设置 → GitHub 同步」。
- 点「获取 Token」—— 浏览器打开 GitHub Token 页,权限(
repo)已预填。 - 粘贴
ghp_…,保存。 - 选一个已有仓库,或者点「创建并绑定」直接新建一个私库。
- (可选)勾「推送前加密」并设口令。
- 保存一篇笔记。Toast 提示「已推送到 GitHub」。完事。
诚实回答几个问题
口令丢了怎么办?
加密的笔记就找不回来了。我们也帮不了 —— 这就是 E2EE 的本质。加密之前先把口令抄到安全的地方。
SoloMD 哪天不维护了怎么办?
你的笔记仓库就是一个普通的 GitHub git 仓库,git clone 下来用任何编辑器都能开。
就算开了 E2EE,格式上面写得很清楚,加密算法也是标准 XChaCha20-Poly1305 —— 30 行解密脚本就能读出来。
为什么偏偏是 GitHub?
因为我们用户基本都已经有 GitHub 账号。 自托管的方案(NextCloud、自建 S3)我们考虑过 —— 都需要额外的搭建步骤,我们不想为这层负责。 不信任 GitHub 的用户可以选 GitLab / Gitea,一等支持。
同步会收费吗?
同步本身不会。SoloMD 这边没有需要付费维护的服务器,数据在你和 GitHub 之间流动,我们只是个客户端。 (GitHub 自己对超过 1GB 的私库收费,那是你跟它的事。)
iPad 能用同步吗?
SoloMD 的 iPad / iOS 版已经上架 App Store。笔记存在「文件」App 里,所以「文件」App 能访问的任何文件夹 —— 首选 iCloud Drive —— 都能跨设备同步;之后在 macOS 打开同一个文件夹,云盘联动模式会自动衔接。
第一次推送时 macOS 弹密码框问我,那是啥?
那是 macOS 钥匙串访问在问 SoloMD 是否有权读取已保存的 GitHub token。可能会弹两次:一次是 token,一次是加密钥匙(开了 E2EE 时才有)。 每次都点「始终允许」(Always Allow),不要点「允许」—— 这样 SoloMD 就被永久授权,以后再不会问。点「允许」是一次性的,下次推送还会再问。
SoloMD 不会把密码发给任何地方。那是 macOS 自己的授权对话框,不是我们的;我们甚至看不到你输了什么。
我在国内 push 老超时怎么办?
国内访问 github.com 经常被防火墙拦。SoloMD 内置代理输入框:设置 → GitHub 同步 → 高级 → HTTPS 代理,
填你本机的代理地址比如 http://127.0.0.1:7897(Clash / Surge 默认端口)或 socks5://127.0.0.1:1080。
推 / 拉就会走这个代理。
不用费劲在 shell 里 export HTTPS_PROXY —— Tauri 应用从 Finder 启动时不继承 shell 环境变量,
应用内的输入框才是正确的地方。