Apple Notes Liberator:把 Apple Notes 里的笔记搬出来

文章目录

Apple Notes Liberator:把 Apple Notes 里的笔记搬出来

Apple Notes Liberator 在 GitHub 上已经拿到 1,017 Star 了。

这个项目就做一件事,把你锁在 Notes.app 里的笔记数据导出来,变成能编辑、能迁移的 Markdown 和 JSON。

1、为什么要做这个工具

苹果的 Notes.app 用起来顺手,但数据被锁在系统沙盒里,导出走官方路径很麻烦。普通用户想换 Notion、Obsidian 之类笔记软件的时候,迁移这一关就卡住了。

作者做这个工具的动机很直接,一是解决自己拿数据的需求,二是借这个项目熟悉 Quarkus 框架。

底层解析工作站在 threeplanetssoftware 的 apple_cloud_notes_parser 肩膀上做的,protobuf 定义和 Notes 数据结构的资料都来自那个项目。

2、它能做什么

程序运行起来之后会去找本机的 Notes 数据库,复制一份过来再解析,不会动你原始的数据库。如果路径找不到,会提示你用 -f 参数手动指定 sqlite 文件位置。

输出方向有两个,JSON 和 Markdown,至少要指定一个,不然程序只打印帮助信息就退出。

跑完之后会在当前目录生成一个 liberated-notes 文件夹,里面包括:

  • notes.json:所有笔记的 JSON 表达
  • markdown/:每条笔记一个 md 文件
  • 内嵌文件副本:从笔记数据里抽出来的图片、附件
  • notes.sqlite:原始 sqlite 数据库的拷贝

3、怎么用

最顺手的安装方式是 JBang。装好 JBang 之后一行命令搞定:

复制代码
jbang app install apple-notes-liberator@hamburgchimps

第一次跑会让你选择信任源,选 2 就行,以后自动跑最新版本。装完之后 apple-notes-liberator --help 看用法。

不用 JBang 也可以。有 Nix 的话进 nix-shell 拿一个隔离的 Java 19 环境。再不行就直接从 releases 页面下 jar 包,本地有 Java 就能 java -jar apple-notes-liberator.jar 跑起来。

4、几个使用细节

macOS 10.13 之后 Notes 数据库被沙盒保护起来,第三方终端比如 iTerm 要去「隐私与安全性 → 完全磁盘访问权限」里勾上,不然会报读不到的错误。

调试的时候可以开日志:

复制代码
QUARKUS_PROFILE=debug apple-notes-liberator

或者在 jar 模式下加 JVM 参数 -Dquarkus.profile=debug,跑完会在 liberated-notes 目录里留下 apple-notes-liberator.log

JSON 输出里每条笔记有 titlefoldertextembeddedObjectslinks 五个字段。嵌入式对象分 TABLEFILE 两种,TABLE 直接给出二维数组结构,FILE 给出文件名,对应的文件能在输出目录里找到。

5、适合哪些人

  • 想从 Apple Notes 迁出去换其他笔记软件的人
  • 需要把笔记数据接进 RAG 流程做向量化的开发者
  • 想给自己做笔记备份和归档的 Mac 用户

项目本身只读不写,原始数据库安全,可以放心跑。

AG 流程做向量化的开发者

  • 想给自己做笔记备份和归档的 Mac 用户

项目本身只读不写,原始数据库安全,可以放心跑。

相关推荐
-SOLO-14 小时前
开发笔记-摸鱼输入法
笔记
疯狂打码的少年17 小时前
【计算机网络】TCP/IP协议族(四层体系结构,与OSI对比)
网络·笔记·tcp/ip·计算机网络
xqqxqxxq18 小时前
AI Agent学习:Agent协作工具技术笔记(李博杰《深入理解 AI Agent》4.6观后总结)
笔记·学习
彧azz19 小时前
数据结构:关于图的学习
c语言·数据结构·笔记·学习·算法
自小吃多20 小时前
高云 FPGA 添加时序约束笔记
笔记·fpga开发
彧azz20 小时前
二叉搜索树学习记录
c语言·数据结构·笔记·算法
一起聊电气21 小时前
2026工厂智能照明改造:从节能控制到运维闭环的实施解析与选型
其他
蒸蒸yyyyzwd21 小时前
机试和Redis学习笔记
c++·笔记·面试
果壳science1 天前
《自然本源》如何实现狭义相对论的代数化
笔记·算法·几何学
1314lay_10071 天前
C#调用Sql Server存储过程,并且使用传入表结构
数据库·经验分享·笔记·sqlserver·c#