笔记软件用久了会有一种隐隐的焦虑:写得越多,越走不掉。格式是它自己的,附件存在它的库里,版本历史是它的一个功能开关。软件一升级、一收费、一停更,你手里最后还能剩下什么?
Sandsea Notes 想试一下反过来的做法:软件的职责只有编辑和记录,数据的所有权始终在你手上。
笔记,就是你磁盘上的.md文件,放在你自己选的文件夹里,用访达、VS Code、任何一个编辑器都能打开。假设你明天就换软件,今天写下的笔记一个字都不用改。
源码与预览并排,滚动联动。
下面是我特意做的三个选择。
一、版本历史默认就有,不用配置
打开文件夹的那一刻,应用就地把它接管成版本库。之后每次改动都有记录,不需要你懂任何命令,也不用先git init一下、再想清楚.gitignore怎么写。
历史面板是三栏的:提交记录 | 改动文件 | 逐行差异。每个文件后面直接标出+N −M,提交前一屏就看清这次到底改了什么。想把某个文件退回某一版,选中那一版点「恢复成这一版」即可 —— 而且恢复只改工作区,不会顺手替你提交,撤回的决定权留给你。
二、不懂 Git,也能多端同步
需要同步时,把笔记库接一个 Git 仓库就行:
- 内置实现不需要本机安装 Git,走 HTTPS + 访问令牌
- 要用 SSH,切到系统 Git即可
- 访问令牌用系统钥匙串加密保存,不写进笔记库目录,也不进日志
同步顺序是刻意设计的:先查远端,再提交。远端有新东西时,它直接告诉你「远端领先」,而不是先造一个注定推不上去的提交,再让你收拾。
拉取只做快进,应用内不自动 rebase、不自动 merge。历史分叉时它宁可停下来让你去外部工具处理,也不静默合并 —— 笔记这种东西,丢一行都可能很久之后才发现。
三、预览不是只读的
- 勾选待办、点单元格改表格、右键增删行列,改动都会写回源码
- 截图
Cmd+V或拖入图片,自动存进images/并插入相对引用,笔记放在子目录里也不会错 - 预览里拖图片右下角直接改宽度,宽度同样写回源码
代码块的语言写上mermaid,就渲染成图。
上手
MIT 开源,代码在 Gitee 与 GitHub 上都有:
- Gitee:https://gitee.com/hanhaiszw/sandsea-notes
- GitHub:https://github.com/hanhaiszw/sandsea-notes
目前要自己从源码跑(需要 Node.js 20.19+ 或 22.12+,macOS Apple Silicon):
gitclone https://gitee.com/hanhaiszw/sandsea-notes.gitcdsandsea-notesnpminstallnpmrun dev想要一个能双击打开的应用:
npmrun dmg# 产出 release/Sandsea Notes-0.1.0-arm64.dmg已知限制
先写在前面,免得你下完才失望:
- 只支持 macOS(Apple Silicon),暂时没有 Intel、Windows、Linux 构建。其他系统,自行构建。
- 没有代码签名与公证:本机自己打的包双击能开;一旦经浏览器或网盘传给他人,对方首次打开会被 Gatekeeper 拦下,需要在「系统设置 → 隐私与安全性」里放行
- 还没有全文搜索,笔记多了这一条会比较痛,在计划里
- 暂时不能在应用内删除 / 重命名文件,需要在访达里操作
- 历史分叉时应用内不提供合并,需要用外部 Git 工具
最后
这个软件的定位不是「什么都做」,而是把编辑、版本历史、同步这三件事做扎实,并且随时允许你带着全部笔记离开。
笔记存在你自己选的文件夹里,除你配置的 Git 远程外不发起任何网络请求,没有遥测。
常见问题
和 Obsidian 之类的笔记软件有什么区别?
不做插件生态,也不做云端。它只把三件事做扎实:编辑、本地版本历史、Git 同步。设计上偏向「随时能离开」:笔记是纯文件,历史是标准 Git 仓库,没有私有格式和私有存储。
为什么是 Electron,装完 141MB?
为了用上成熟的编辑器内核(CodeMirror 6)和 Markdown 渲染链路。代价就是体积,这一点没什么好辩解的。
数据真的不会被锁住吗?
笔记是纯文本文件,历史是标准 Git 仓库。哪怕这个应用明天就不更新了,你的笔记和完整历史都还在自己电脑上,用任何编辑器、任何 Git 客户端都能打开。
为什么应用内不自动合并冲突?
自动合并冲突可能静默丢内容,而笔记的丢失往往要很久以后才被发现。宁可让它停下来,明确告诉你需要去外部工具处理。
为什么不能删除 / 重命名文件?
当前版本还没做这类文件操作,请在访达里完成 —— 反正笔记本来就是普通文件,改动会由应用自动感知并记进版本历史。
为什么没有 Windows / Intel 版?
目前只有 Apple Silicon 的构建经过验证。其他平台还需要分别适配与打包,暂时没做。
收费吗?
MIT 开源,免费用,代码两个站点都能拿到。
短文案
V2EX / 论坛
写了一个不做数据库的笔记软件,笔记就是文件夹里的 .md
自己写了个 macOS 上的 Markdown 笔记应用,出发点是「假设用户明天就换软件,今天写的笔记应该一个字都不用改」。
几个做法:
- 笔记库就是你自己选的文件夹,笔记是里面的
.md文件,用任何编辑器都能打开 - 打开文件夹就地开版本历史,零配置。三栏面板看提交 / 文件 / 逐行差异,能单独把某个文件退回旧版本
- 要同步就接一个 Git 仓库。内置实现不需要装 git(HTTPS + 令牌),要 SSH 就切系统 git。令牌进系统钥匙串,不落笔记库目录
- 同步是先查远端再提交;拉取只做快进,不自动 merge —— 分叉了宁可让你去外部工具处理
限制也说清楚:目前只有 macOS arm64,未签名未公证,没有全文搜索,暂不支持删除 / 重命名文件。
MIT 开源,Gitee 和 GitHub 都有。截图和细节在 README 里。
一句话
笔记就是磁盘上的.md文件 —— 每次改动都进本地版本历史,想同步再自己接个 Git 仓库。MIT 开源,macOS。