“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
里德尔日记:用 reMarkable Paper Pro 复现《哈利·波特》中的魔法笔记本
本文介绍了一个开源项目,它让 reMarkable Paper Pro 电子纸平板模拟《哈利·波特》中汤姆·里德尔的日记——手写笔迹被“喝掉”后,AI 会以手写体自动回复。
项目背景与灵感
如果你看过《哈利·波特》,一定记得汤姆·里德尔的日记——一本会吞噬墨水、自动回复的魔法笔记本。现在,开发者 MaximeRivest 用 reMarkable Paper Pro(一款专为手写设计的电子纸平板)和 AI 技术,把这个魔法变成了现实。项目名为 Riddle,完全开源,托管在 GitHub 上。
核心体验:你用电容笔在屏幕上写字,停顿约 2.8 秒后,笔迹像被纸张吸收一样逐渐淡出,然后页面“思考”片刻,接着自动生成一段手写体回复——笔画一笔一笔出现,就像有人在纸上写字。没有屏幕发光、没有键盘、没有聊天界面,只有墨水在纸上浮现的幻觉。
技术架构概览
Riddle 是一个 Rust 应用程序,运行在 reMarkable Paper Pro(型号 ferrari,aarch64 架构,OS 3.26–3.27)上。它的工作流程可以简化为:
- 笔迹采集:通过 Linux 的 evdev 接口直接读取笔的原始输入,支持 4096 级压感,以硬件事件速率捕获。
- 触发识别:当用户停止书写超过 2.8 秒(可配置空闲时间),系统自动将当前页面提交为 PNG 图片。
- AI 推理:将 PNG 图片发送给一个常驻的 LLM 进程(称为“oracle”——日记中的“灵魂”),LLM 识别手写内容并生成回复文本,以句子为单位流式返回。
- 手写合成:将回复文本通过 Dancing Script 字体渲染,再经过 Zhang-Suen 细化算法(骨架化)提取单像素笔迹路径,最后以动画形式逐笔回放。
- 显示渲染:通过两种后端之一将最终笔迹呈现在电子墨水屏上。
两种显示后端
1. qtfb(窗口模式)
- 作为 xochitl(reMarkable 的官方应用框架)内的一个 AppLoad 应用运行。
- 在现有 UI 上叠加一个窗口,适合不想完全接管设备的用户。
- 延迟略高,但安装简单。
2. quill(完全接管模式)—— 演示中的版本
- 停止 xochitl,直接驱动 vendor 的电子墨水引擎(通过 libqsgepaper.so)。
- 通过 C ABI 暴露三个函数:
quill_init、quill_buffer、quill_swap。 - 这是延迟最低的方案——墨水几乎瞬间出现,就像魔法一样。
- 底层原理:使用 epfb-re 风格的 QImage 构造器插桩(interposition shim)来劫持 Qt 的图像渲染,直接发送波形更新到屏幕。
“Oracle”:日记中的灵魂
Oracle 是一个常驻的 LLM 进程,负责读取提交的页面 PNG 并生成回复。支持两种后端:
Option A:任何兼容 OpenAI 的 API(最简单,零额外软件)
- 设置环境变量
RIDDLE_OPENAI_KEY即可连接 OpenAI、OpenRouter、Groq 或本地服务器。 - 必须使用支持视觉(vision)的模型,例如
gpt-4o-mini。 - 可选配置:
RIDDLE_OPENAI_BASE:API 端点(默认 https://api.openai.com/v1)RIDDLE_OPENAI_MODEL:模型名称(必须能处理图片)RIDDLE_OPENAI_REASONING:仅用于推理模型(如 Gemini 3.x、o-series),设为low可加快首次回复速度RIDDLE_OPENAI_MAX_TOKENS:最大 token 数,建议设大一些(如 2000),因为隐藏的推理 token 也可能消耗配额
- 实测首次墨水出现延迟约 0.9–1.1 秒(从提交页面到第一笔出现)。
- 可以通过
riddle --oracle-test path/to/handwriting.png验证配置。
Option B:pi(本地推理路径)
- 如果用户已在设备上运行 pi(一个本地 LLM 推理引擎),Riddle 会自动使用其 RPC 模式。
- pi 进程保持常驻,Node 运行时和模型加载一次完成,每次对话只付推理延迟。
- 无需设置
RIDDLE_OPENAI_KEY。
两种后端都支持流式回复——LLM 逐句返回文本,quill 在模型完成前就开始书写,进一步减少等待感。
安装指南
前提条件
- reMarkable Paper Pro(型号 ferrari)处于开发者模式。
- 已安装 launcher(推荐使用 remagic 工具一键设置)。
- 保持 SSH 访问通畅——这是你的“逃生舱”。
方法一:使用 remagic(最简单)
bash
remagic install riddle # 校验和验证的下载 → 自动安装到 AppLoad
remagic config riddle # 在浏览器中打开配置表单(含手机二维码)
然后在 AppLoad 中点击“Reload”,再点击“The Diary”即可启动。
方法二:手动安装预构建包
- 从最新 release 下载
riddle-<version>.zip。 - 解压到本地:
unzip riddle-*.zip -d riddle - 复制到平板:
scp -O -r riddle root@10.11.99.1:/home/root/xovi/exthome/appload/ - 添加 API 密钥:在文件夹内复制
oracle.env.example为oracle.env,填入RIDDLE_OPENAI_KEY。 - 在 AppLoad 中刷新并启动。
方法三:从源码构建
窗口模式(qtfb):
bash
cd riddle
cargo build --release --target aarch64-unknown-linux-gnu
然后将 binary、external.manifest.json、appload-launch.sh 一起放入平板的 /home/root/xovi/exthome/appload/riddle/ 目录。
完全接管模式(quill)—— 需要 reMarkable SDK 工具链(~/rm-sdk-3.26):
bash
cd quill && ./build.sh # 从设备通过 SSH 拉取 libqsgepaper.so,构建 libquill.so + 演示程序
cd ../riddle && ./build-takeover.sh
./scripts/make-bundle.sh # 打包为 AppLoad bundle
将生成的 dist/riddle/ 目录复制到平板的 AppLoad 目录。
重要:启动脚本 appload-launch.sh 会:
- 创建一个 transient systemd 单元
- 停止 xochitl
- 运行日记应用
- 退出时(按电源键、五指点击或收到 SIGTERM)自动恢复 xochitl
- 如果卡死:
ssh root@10.11.99.1 'systemctl start xochitl'
手势操作
| 操作 | 效果 |
|---|---|
| 书写后停笔 | 日记“喝掉”墨水,Tom 回复 |
| 翻转触控笔 | 擦除 |
| 画一个大问号 | 召唤内置指南 |
| 五指同时点击 | 退出日记 |
| 电源键 | 页面变为“日记睡着了”,平板挂起;再按电源键从原处唤醒 |
字体与许可
- 回复手写体使用 Dancing Script(SIL Open Font License 1.1)。
- 项目代码全部使用 MIT 许可证。
- 依赖的 vendor 库(libqsgepaper.so、Qt)不包含在仓库中,必须从用户自己的设备或 SDK 获取。
技术亮点与深度解析
手写合成管道
- 栅格化:将 LLM 返回的文本用 Dancing Script 字体渲染为位图。
- 骨架化:使用 Zhang-Suen 细化算法将粗笔画缩减为单像素宽的骨架。
- 路径追踪:从骨架中提取连续笔迹路径。
- 动画回放:按路径顺序逐像素绘制,模拟真实书写过程。
低延迟设计
- 笔输入直接通过 evdev 读取,绕过高层的 Qt 事件循环。
- quill 后端直接驱动电子墨水引擎,跳过 xochitl 的渲染管线。
- LLM 回复采用流式输出,第一笔在模型完成前就开始绘制。
安全与风险
- 项目以 root 权限运行,会停止官方 UI(takeover 模式),直接操作硬件。
- 仅测试于 reMarkable Paper Pro(ferrari,OS 3.26–3.27),不保证其他型号或系统版本兼容。
- 与 reMarkable AS 无关,使用风险自负。
总结
Riddle 项目巧妙地将 AI 对话、手写识别、笔迹合成与电子墨水硬件的低延迟特性结合在一起,创造了一个令人惊叹的体验——它不仅是技术演示,更是对“魔法”的现代诠释。对于 reMarkable 用户来说,这是极客精神的最佳体现:用代码给冰冷的电子纸注入灵魂。