Smart Note:AI 整理、实时协同、分布式存储,数据永远在你手里
# 前言
写东西这件事,最怕被打断。
地铁进了隧道,会议纪要写一半,编辑器开始转圈,等信号回来那几句已经找不着了;和同事合改一份方案,文件名从「方案」一路变成「方案-最终版」「方案-真的最终版」「方案-v17」;用了三四年的笔记软件突然宣布停服,几年的记录连同账号一起锁在别人的服务器上;白板拍了十几张,回来还要对着照片逐字敲;身份证、账号写在笔记里,借屏幕给别人看时心里发虚。
这些麻烦看着各不相同,其实可以归成三类:机械劳动太多、多人一起写太难、数据放在别人手里。
Smart Note 先把这三件事做扎实。
AI 整理——拍照成稿,选中一段让它先改一稿。 白板、纸质笔记、PPT,拍照或截图丢进编辑器,出来的是一份排好版的 Markdown:标题层级、表格、列表、公式各就各位,流程图转成 mermaid,统计图转成 echarts。写好的段落选中它,像聊天一样提要求,AI 出初稿,双栏对照、逐处确认,回车才替换。终审一直在你手里。
实时协同——同一篇笔记,多人一起写。 基于 Yjs CRDT 做冲突合并,能看到彼此的光标和选区,不锁文档,也不互相覆盖。同一间屋子里可以局域网直连,设备自己发现彼此,内容在两台机器之间直接传,不经过任何服务器;不在同一网络时走云端,改动通常一秒内就能看到。协同是自带功能,不按席位收费。
分布式存储——每台设备都有一份完整副本。 手机、电脑、服务器各存一份,断网照写,联网自动合。设备丢了、服务停了,换个设备登录,东西还在。想完全自己掌控,就把整套服务搬回自己的服务器:一个二进制文件,一台小机器,数据归你,成员归你管。
在这三件事之外,还有些顺手的功能:文件夹和正文两层加密、网页 / 手机 / macOS 三端一致、Markdown 批量导入导出、四套主题 × 明暗双模式。
在线试用:note.itart.cn (opens new window)

# 一、AI 整理:拍照成稿,选中一段让它先改一稿
AI 在这里只做一件事:出初稿。终审还是你——每处改动都摆在明面上,不用对着一段陌生的输出猜它改了什么。
# 1.1 拍张照片,拿回一篇排好版的笔记
纸质笔记、白板、PPT,截图或拍照后粘贴、拖拽进编辑器,选择「AI 识别」,输出的就是一份排好版的 Markdown:标题层级、表格、列表、公式各就各位。流程图、时序图、甘特图会转成 mermaid,统计图转成 echarts,在编辑器里直接渲染。结果不满意可以对照原图改,或者调整提示词重新生成。

# 1.2 选中一段文字,让它先改一稿
「修订」是最保守的一个:只纠正错别字、语法、标点和中英文空格,理顺段落排版和错乱的标题、列表序号;数值、日期、金额、专有名词保持原样,不扩写、不删减、不重写。交稿前过一遍正合适。
另外三种用法不用记,选中文字后像聊天一样提要求就行,还能一轮轮往下聊:
润色格式化——草稿写得乱,选中它:
你:帮我顺一下,标点空格统一,Markdown 结构理清楚
AI:整理好了,改了 5 处——标题层级 1 处、中英文空格 3 处、错字 1 个
你:双栏对照看了一遍,没问题。回车替换
展开解释——会议速记太简略:
你:这段太压缩了,展开讲讲,背景补全
AI:在原文基础上补成了完整段落,没有添加选区之外的信息
你:这句补多了,退回到上一轮
自定义指令——有什么要求直接说:
你:改成给客户看的正式语气,压到 100 字以内
AI:逐字输出改写结果
你:再商务一点,但别用套话
AI:在刚才那版上继续改,不用从头再来
核对和反悔的机制也一并做好了:
- 双栏 Diff 对照:原文和 AI 稿并排显示,增删内容高亮,改了几处、花了多长时间都有显示;
- 流式输出,可以中途停止:结果逐字返回,方向不对随时中止,未完成的内容不会写进笔记;
- 回车替换:确认后结果替换回选区位置,原有的格式、图片、公式不受影响;
- 每一轮都能回退或重试:对话记录按轮次保留,可以回到任意一轮重新来过。
手机端通过内置的原生内核同样能调用。在 Android 上,选中文字后系统菜单里会多出「整理」和「遮掩」两个选项,出门在外也能先让它改一稿。

# 1.3 编辑器与模型配置
编辑器基于 Milkdown,底层是 Markdown,编辑时是所见即所得的富文本体验;支持正文查找替换、右侧大纲面板、图片拖拽缩放,手机端预览也能渲染 Mermaid 流程图,点一下图可以改源码,失焦后重新画出来。
模型支持自带密钥:用哪家、接口地址、API Key 都自己填,默认接入通义千问视觉大模型,也兼容其他主流服务,不绑定任何一家厂商。
# 二、实时协同:同一篇笔记,多人一起写
# 2.1 多人同时编辑
协同编辑基于 Yjs CRDT 做冲突合并。多人打开同一篇笔记时,可以看到彼此的光标和选区,各自输入自动合并,不锁文档,也不互相覆盖。几个人同时离线、之后再联网,改动依然能合并到同一个版本。
(5)#截图#(多人同编:编辑器内的远程彩色光标与选区)

# 2.2 局域网直连:不经过服务器
开会、备课,或者内容不方便走上公网的场合,可以用局域网直连。同一网络下的设备自动发现(mDNS),发起协作后需要对端确认:
- 传输经过 Noise 协议握手,并锁定设备静态密钥,第三方无法窃听或冒充;
- 同一账号的设备自动互认,不用对码;只有陌生设备才需要当面核对 6 位配对码;
- 内容在设备之间直接传输,不经过任何服务器。
#截图#(局域网设备页:发现的对端设备与在线状态)

# 2.3 不在同一网络时:云端中继
不在同一局域网时,改动经云端 WebSocket 通道转发,手机、网页、桌面端通常一秒内就能看到彼此的更新。两端连着同一个局域网时优先走局域网,云端同步先让一让——更快,也不耗手机流量。
光标位置这类「在场信息」30 秒后自动过期,只用来显示谁正在看哪一段,服务端不留存。
很多产品要么靠文件传来传去,要么按席位收费。Smart Note 里协同是自带功能,不额外付费。
# 三、分布式存储:一份笔记,每台设备都有完整副本
常见的云笔记只有一份正本,存在厂商的服务器上,设备更像一个查看窗口:服务器出故障、账号被封、服务停止运营,笔记就可能找不回来。
Smart Note 反过来做:手机、桌面端各自保存一份完整的本地数据库,服务器也保存一份,三方通过同步保持一致。服务器负责转发和对账,不是数据唯一的存放点。
手机 App(完整副本) ⇄ macOS 桌面端(完整副本)
╲ ╱
╲ ╱
云中继 / 私有服务器(也是一份副本,可自建、可替换)
2
3
4
这意味着:
- 断网也能正常写。 手机 App 和 macOS 桌面端内置与服务端同一套自研 Go 内核(GORM + 纯 Go SQLite,不依赖外部数据库,也不需要安装运行时),数据直接读写本机。飞行模式、信号差、公司内网受限,都不影响记录。
- 联网后自动同步。 后台同步代理基于混合逻辑时钟(HLC)和最后写入者获胜(LWW)规则自动拉取和推送,多端各自的修改能合并到一起;协同文档则通过 Yjs CRDT 增量更新在各设备间收敛。手机默认只在 Wi-Fi 下同步云端,想用流量可以在「我的」里打开。
- 设备丢了或坏了,笔记还在。 手机、电脑、服务器各有一份完整副本。换新设备登录后,内容会从其他副本完整拉回,不会因为一台设备丢失而损失全部笔记。
- 服务停了,笔记也还在。 即使云端不再可用,设备上的数据依然完整;换个服务器地址,或者自建一个实例,接着同步就行。
- 改错了能找回。 每次发布自动保存一个版本快照,误删、误改都可以回到任意历史版本。多副本解决「丢」,版本历史解决「错」。
网页端没有本地数据库,它连云端,看到的是这个账号已经推上去的笔记;但它也支持安装为 PWA,在常用设备上像本地软件一样打开。
只要手上还有一台登录过的设备,整个知识库就在。

# 四、账号是算出来的,不是申请来的
这一节解释为什么上面那些事能成立。
注册的时候,服务端不给你发号码牌。账号编号和局域网密钥都由「账号名 + 密码」在本机算出来:先用 PBKDF2 拉伸,再分出两个用途不同的值。手机、桌面、网页用的是同一套算法,所以同一个账号名配同一个密码,在任何设备上算出来的都是同一套。
这么设计带来几个直接的好处:
- 不需要服务器点头。 云端还空着的时候,第一台设备自己就能起号,因为它本来就知道自己的编号。
- 换设备不用重新建档。 重装系统、换 IP、换端口,算出来的值都不变。
- 你的密码没有存在任何设备上。 登录是拿你这次输入的重算一遍,跟本机记住的编号对一下,对上就过。
- 同账号的设备在局域网里自动互信。 同一账号派生出的静态公钥完全相同,握手之后就知道「对面是自己人」,不用再对一次码。
所以只有两种时候才会弹那 6 位配对码:第一次配对,或者有人主动取消了配对。取消优先于同账号信任——取消之后不会再悄悄连回去。
那 6 位码也不是随便生成的。它是对「两把公钥这一对组合」的承诺:把两把钥匙按字典序排好、拼接后做 SHA-256,再取 6 位。它故意不做成逐字节异或——异或能被中间人构造出来,攻击者只要另选一把钥匙满足等式,就能让两边显示同一个码。拼接哈希则把两把钥匙同时锁死,换一把就算不出同一个数。
顺便说改密码:账号编号是从密码算出来的,改密码会连编号一起变。这一步 Smart Note 已经替你处理了——在「我的 → 修改密码」里改完,其他已登录的设备会按新密码重新派生,自动收敛回同一个账号,不用重新建档,也不用重新配对。
# 五、私有化部署:你的服务器,你的规矩
个人直接用在线版就行;团队或在意数据归属的用户,可以整套搬到自己的机器上。
- 部署简单。 后端是单个二进制文件,内置纯 Go SQLite,执行
./smart-note-api -conf ./configs就能启动,不需要装 MySQL,也不依赖 Docker,一台小服务器就能长期跑。 - 成员入口可控。 全新实例启动后,第一个注册的用户成为管理员;之后可以关闭公开注册,成员账号由管理员开通。用作团队内部知识库或个人私有云,都不会有陌生人进来。
- 设备接入要过审。 桌面端和手机要连云端,得管理员在网页「管理 → 同步连接」里点「通过」。列表里能看到设备、账号、状态和时间,随时可以撤回。
数据库和成员管理都在自己手里。这不是后期加上的「企业版选项」,而是架构一开始就支持的用法。
# 
# 六、安全:笔记只属于你
多数笔记应用在登录后就是「全部可见」。Smart Note 多了两层:
- 加密文件夹(密盒):任意文件夹都可以升级为密盒。平时收起、内容不可见,解锁后才能进入。
- 正文里的行内密文:不一定要隐藏整篇文章。选中身份证号、密码或某一句话,可以直接在原文位置加密;别人看到的是遮掩标记,你一键揭示,阅读不中断,之后也能取消遮掩换回明文。密文不以明文存进正文,复制也不会泄露。
- 安全问答作为第二重验证:即使登录密码泄露,没有安全问答也进不了密盒;问答凭证可以随时通过引导向导重置。
- 指纹 / 通行密钥解锁:网页端基于 WebAuthn 标准,可以用电脑指纹或安全密钥解锁密盒;不支持的环境自动回退到安全问答。手机端目前通过密盒问答和行内密文保护隐私,生物识别正在接入。
协同链路本身也走端到端加密。手机 App 未集成推送、统计或广告 SDK,只申请必要的网络状态权限。


# 七、整理与查找:东西放得进去,也找得出来
记笔记容易,找回来难。Smart Note 把秩序做得尽量简单——多数时候拖一下就好。
# 两种分类方式:文件夹和标签
文件夹负责「放在哪」,多级嵌套,侧栏分区可折叠,每个文件夹实时显示笔记数量;标签负责「是什么」,一篇笔记可以有多个标签,不受目录限制。标签面板里能看到每个标签下有多少篇;正在被使用的标签不会让你误删,新建时也会拦下重复的名字。
笔记可以随时移动到别的文件夹,扔回「未分类」也行;重要的笔记一键置顶,永远排在最前。
# 找东西:全局搜索 + 目录内搜索
顶部的搜索页打开就能输入,支持标题和正文,结果分页,找不到时有明确的空态提示。在目录面板里搜索,文件夹和笔记会一起出来,命中的文件夹还显示完整路径,不用猜它在哪一层。
# 草稿与发布
笔记有草稿和发布两种状态,三端一致。写到一半关掉不会丢,想清楚了再发布——只有发布过的内容才会出现在导出的文件里。
# 进得来,出得去
支持 Markdown ZIP 批量导入,整个文件夹也能导出为标准 Markdown 压缩包:目录结构、正文、图片附件都在,换个软件照样能打开。没有格式绑架,数据不带锁。
# 附件
笔记里可以挂图片、PDF、文档等附件,图片在编辑器里能拖拽缩放,正文里用的是稳定的 /v1/assets/{id} 地址,换设备、换服务器都不会断链。单张图片限制 5MB,其他文件 20MB。

# 八、三端:网页、手机、macOS
# macOS 桌面端
桌面端基于 Wails 开发,内置本地内核,不是简单的网页套壳:
- 贴边迷你窗:默认以 400px 宽贴在屏幕右侧并置顶;拖到屏幕边缘会自动吸附,鼠标移开 0.5 秒后收成一个圆形浮钮,需要时点一下展开,写代码或看视频时可以随时呼出。
- 系统托盘与开机自启:点关闭只隐藏到托盘,不退出进程;macOS 13 及以上安装到「应用程序」后支持开机自启。
- 剪贴板面(⌘⇧V):面板打开时读取系统剪贴板,文本、链接、截图在内存中保留最近 20 条,退出即清空;选中一条即可保存为笔记,截图会作为附件上传并插入正文,省去新建、粘贴、再找文件夹的步骤。
React 18 + TypeScript 的三栏工作台,密盒指纹解锁、AI 识图成稿、AI 选中整理、多人实时协同、拖拽排序都在这里,也支持安装为 PWA 桌面应用。
# 移动端
Android App 基于 uni-app / Vue 3,首页是笔记、目录、标签、我的四个面板,左右滑动切换,支持全局搜索、草稿、发布、置顶和密盒管理。富文本编辑在全屏 WebView 中由 Milkdown 承担,详情页用原生方式预览,行内密文和 Mermaid 图形都能正常渲染。本地模式下通过原生插件直连内置 Go 内核,离线也能完整使用。
三端的分工说清楚一点更容易理解:手机和桌面各有一份本地副本,它们之间可以在局域网直接同步,也可以走云端;网页端没有本地库,走云端。同一账号、同一套自研后端,三端数据保持一致。

# 九、界面:克制的颜色,顺手的秩序
# 四种气质 × 明暗双模式
长时间阅读和写作,界面要克制、留白要疏朗。Smart Note 用一套设计令牌把字色、纸面、分割线和强调色统一起来:默认、护眼、清爽、纸质四套主题一键切换,选择会自动记住。每一套都有浅色、深色、跟随系统三种外观——白天是纸面,夜里是暖黑,也可以跟着日出日落走。
默认
暖灰石色的画布,纯白纸面,点缀一抹克制的蓝。中性、干净,适合当作每天打开的那张书桌,长时间写作也不刺眼。
护眼
低饱和的青绿。墨色偏松绿,背景是浅鼠尾草,强调色沉在叶子的颜色里。对比柔和,久看更不容易累。
清爽
冷调的雾蓝。画布像一层薄雾,强调色是湖蓝,边界清楚,适合白天集中处理事情。
纸质
牛皮纸的温度。墨色是深褐,背景是暖卡其,强调色像木头。写起来像摊开一本真的本子。
深色模式下,四套主题共用同一张暖黑纸面,只保留各自的强调色——蓝、绿、湖蓝或木色。夜里依然分得清是哪一种气质。




# 拖一下就好
- 列表随手拖拽、拖进文件夹归类,顺序自动记住;
- 自动存稿,每次发布自动留版本,差异一目了然,随时还原;
- 笔记大纲、附件管理、悬停预取秒开,一应俱全。
没有学习成本,打开就会用。

# 关于 Smart Note 的几个常见问题
断网了还能写吗? 能。手机和 macOS 桌面端都带着完整的本地数据库,飞行模式下照常记录,联网后自动合上去。
手机丢了,笔记怎么办? 登录过同一账号的电脑或服务器上还有一份完整副本。换新手机登录后拉回来就行。
哪天服务停了,我的笔记呢? 还在设备上。Smart Note 的副本不依赖云端存在,换一个服务器地址或者自建一个实例,接着同步。
公司内网不让连外网,能用协同吗? 能,而且这正是局域网直连设计的场景。同一网络下的设备自己发现彼此,内容不经过任何服务器。
协同要另外付费吗? 不用,自带功能。
AI 会用我的笔记训练模型吗? 不会。AI 只在你需要的时候处理选中的内容和上传的图片,模型由你自己配置,密钥也在你手里,不绑定任何厂商。
网页端能加入局域网吗? 不能。浏览器没有 mDNS 和原始 TCP,网页端走云端,它和手机、桌面共享同一套账号和数据。
换密码方便吗? 方便。在「我的 → 修改密码」里填当前密码和新密码(至少 8 位)就行,其他已登录的设备会自动跟着收敛回同一个账号。改的时候没开着的设备,下次用新密码登录即可。
# 写在最后
选择笔记软件,说到底是选择把真实想法放在哪里。
Smart Note 的答案是:日常的机械劳动交给 AI,需要和人一起写的时候随时能协同,而数据始终留一份在自己手里——每台设备都有完整副本,设备或服务器出问题不会丢;想完全自己掌控,也可以部署在自己的服务器上。界面和操作尽量保持简单,剩下的交给内容本身。
在线试用:note.itart.cn (opens new window)
# 附:一句话介绍(备选)
- Smart Note:AI 整理、实时协同、分布式存储的私有化笔记
- 拍照成稿,选中整理,让 AI 先出一稿,终审还是你
- 每台设备都存一份完整笔记,断网能写,设备丢了也能找回
- 同一篇笔记多人一起写,局域网直连不经过服务器
- 签名:
Smart Note · 数据在自己手里 · note.itart.cn