事情是这样的。

我折腾过不少笔记软件。每一款都认真用过,每一款最后都有一点说不上来的不舒服,之前也写过一篇文章推荐一个开源笔记项目 Memos( 我折腾了5年笔记软件,最后被一个61k stars的开源项目打动了) 。也是收到不少反馈。

打开网易新闻 查看精彩图片

评论区有人推荐trilium notes,我到 GitHub 上看了下,stars 已经有 37k。看了它的介绍,下载了 Windows 桌面版,把它跑了起来。

 它打开就是一棵树
打开网易新闻 查看精彩图片
它打开就是一棵树

第一次运行 Trilium,屏幕上弹出一个语言选择界面。里面有简体中文。选了中文,点了继续,它就自己进去了。

没有注册账号这一步。没有"欢迎来到我们的生态"。没有新手引导在屏幕上跳来跳去。

界面很安静。左边是一棵树,树根叫 root。中间是编辑区,写着"在这里输入你的笔记内容"。旁边有快速搜索,有日历,有"今日日记",有书签。

打开网易新闻 查看精彩图片

那一刻我突然意识到,原来一个笔记软件可以这样:把所有的东西都给你,然后退后一步,不打扰你。

一棵树,不是一堆文件夹

Trilium 的核心,就是这棵树。

笔记可以无限层级地挂在树上。每一篇笔记下面都可以有子笔记。不需要文件夹,因为树本身就是结构。

听起来平平无奇。但接下来这个功能,才是真正记住它的地方:

同一个笔记,可以同时出现在树的多个位置上。改其中一个,另外几个全部同步更新。

这叫克隆。它不是复制粘贴——它是同一个东西的两个分身。

打开网易新闻 查看精彩图片

举个例子。有一篇笔记,讲的是"React 的那些坑"。它同时出现在两个地方:一个是"前端学习"下面,一个是"面试准备"下面。以前做法是复制一份,然后两个地方越改越不一样,最后自己都不知道哪个是最新的。在 Trilium 里,只需要克隆。改一次,就到处都改了。

笔记每改动一次,Trilium 都会在后台悄悄保存一个历史版本。某个不小心删掉的重要段落,或者一次改坏的内容,随时可以翻回之前的版本,一键还原。

打开网易新闻 查看精彩图片

树加上克隆,加上版本历史。这三样东西合在一起,笔记终于不再是文件堆,而是一张网。每一处引用都还是活的。

搜索能找到图片里的字

Trilium 的搜索,是见过最实在的搜索。

它支持全文搜索,这个不稀奇。它支持模糊匹配的快速导航,输入几个字母就能跳到想去的笔记,也不稀奇。

打开网易新闻 查看精彩图片

服气的是这一条:它能搜到图片和 PDF 里面的文字。( 扫描的PDF找不到) 那些图片里的字,从此不再是要找却找不到的死角。

有些笔记,我想锁起来

有一部分笔记,是希望别人看不到的。密码、账号、一些只写给自己看的东西。

Trilium 可以给笔记单独加密。加密之后,直接打开数据库文件也读不到内容。要看这些笔记,需要输入额外的密码。隔一段时间不操作,它会自动锁回去,再次查看又要输一次密码。

把那篇藏着各种密码和私事的笔记锁了起来。锁上那一刻,心里踏实了。

它甚至能自己编程自己

如果说前面这些功能,其他笔记软件努努力也能做到,那么这个功能,是 Trilium 真正让人回不去的地方。

它内置了一个脚本引擎。前端、后端,都用 JavaScript 写脚本。

意思是,Trilium 能做的事,几乎没有边界。看它不顺眼的地方,自己改。想要的自动化,自己写。自己不会写?没关系,让AI帮你写。它把自己的抽屉全部打开——里面的零件不仅给你看,还允许亲手组装。

  • 可以写脚本,自动从某个网页抓数据,整理成笔记。

  • 可以改界面的外观、主题,甚至可以给笔记写自定义渲染器。

  • 可以用它的事件系统,让某些动作自动触发某些脚本。

  • 能搭一个仪表盘,把关心的数据全部汇总到一个页面上。

它还有一个开放接口叫 ETAPI,是标准的 REST 接口。外部程序也能读写笔记。可以写个定时任务,每天自动往 Trilium 里塞一篇日记。它还能接入自己的 AI 模型,把笔记暴露给外部助手。

你发现了吗?它不是在给你一个写好的程序。它是在给你一把钥匙。

它不是给你一个闭环,它是把钥匙递给你。
数据从头到尾在你手里

这是最看重的一点。

Trilium 的笔记,全都存在本地的一个数据目录里,核心是一个 SQLite 数据库文件。没有云端,没有厂商的服务器。想备份,把整个数据目录拷走就行。想迁移,把它放到哪都行。

它支持导入。以前的 Markdown 笔记、HTML 文件、OPML 大纲,都能直接导进来。它支持导出。Markdown、HTML、OPML、PDF,随时把整棵树带走。数据进来的时候是开放的——出去的时候也是开放的。

它甚至支持发布。如果自己架了一个服务器,可以把树的任意一个分支发布成公开的网站,别人用浏览器就能看。一篇公开笔记,可以直接变成网页分享出去。

它还是开源的,AGPL-3.0 协议。免费,没有付费功能墙,没有账号体系。37k stars 摆在那里,代码在 GitHub 上,任何人都能看、能改、能自己维护。

怎么自己跑一个

Trilium 的部署方式很灵活,整理成了表格:

方式

适合谁

怎么跑

桌面版

一个人单机使用

去 GitHub Releases 下载 Windows、macOS 或 Linux 安装包

服务器版

想要随时随地从浏览器访问

用 Docker 拉取官方镜像,一条命令启动

手机浏览器

路上想查笔记

访问自己服务器的网页界面,移动端适配得很好

原生 App

重度手机用户

Android 用 Pocket Trilium,iOS 用 Trinote,都是开源客户端

我自己用的是桌面版路线:下载安装包,双击运行,完事。不过如果想架在自己的服务器,官方提供 Docker 镜像,一条命令就能起来:

docker run -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data ghcr.io/triliumnext/trilium:latest

启动之后,浏览器打开 http://localhost:8080 ,就是你的笔记了。端口、数据目录、更多参数,以官方文档为准。

官方镜像在 Docker Hub 上已经被拉取了 379 万次。这个数字说明,不只是一个人在折腾笔记软件这件事。

结尾

回到开头那个问题。

我折腾了很多年笔记软件,最后发现想要的其实很简单:数据是自己的,结构是自己的,它能做想让它做的事。

Trilium 没有给一个又一个花哨的模板,也没有给我一个看似智能的插件市场。它给的,是一棵树,一把钥匙,和一个完全属于自己的数据库文件。

如果你也在折腾笔记软件,不妨下载一次试试。