当前位置: 首页 > news >正文

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

文章目录

  • Apple Notes Liberator:把 Apple Notes 里的笔记搬出来
    • 1、为什么要做这个工具
    • 2、它能做什么
    • 3、怎么用
    • 4、几个使用细节
    • 5、适合哪些人

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 用户

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

http://www.jsqmd.com/news/1148455/

相关文章:

  • openeuler/mcp开发者必备:API接口使用与服务扩展教程
  • AI Agent 入门(六):Agent 规划能力 —— Plan-then-Execute 模式实战
  • 如何快速配置OpenEuler Custom Build Tool:5分钟快速开始指南
  • openstack-kolla-plugin Queens版本适配教程:OpenStack部署openEuler详细步骤
  • MQTT-Proxy性能测试报告:百万连接下的表现分析
  • 多任务NLP评测的公平性设计:从数据采样到指标选择的全链路拆解
  • BiliDownloader高效下载器:3大核心技术解析与完整使用指南
  • Photoshop 菜单
  • Chain-of-Thought 提示词调试:思考链条太长反而容易断
  • 一站式解决召回算法测试难题:openeuler/sra_test支持的6大算法与5类数据集全攻略 [特殊字符]
  • PotPlayer字幕翻译终极指南:三步实现外语视频无障碍观看
  • patch-tracking监控与告警:如何确保补丁跟踪系统7x24小时稳定运行
  • 终极指南:ks-vaudit的编译依赖与环境配置全攻略
  • PilotGo-plugin-topology高级技巧:自定义拓扑图与业务节点监控的完整指南
  • Okbiye 开题智能创作工具:解锁高校开题高效撰写新路径
  • epkg-autopkg输出文件详解:package.yaml、phase.sh和ePKG包的生成原理
  • 零基础入门kytuning-client:从安装到生成性能报告的简单步骤
  • OpenSCOW核心组件详解:打造稳定可靠的计算中心管理架构
  • 为什么选择openeuler/ha-api?开源高可用管理平台的优势分析
  • 如何快速上手OpenDesign:从安装到第一个组件的完整教程
  • 终极Java直播间数据监控指南:如何快速获取抖音弹幕、礼物与用户行为数据
  • 2026手机自制证件照完整指南:免费小程序、APP,实操方法与拍摄标准技巧
  • OSCompatibility开发者指南:如何参与开源项目贡献代码
  • kbuild-standalone社区生态:如何参与贡献与获取技术支持的终极指南
  • 手机号查QQ号实战指南:30秒快速找回账号的完整方案
  • 基于能量的模型 (EBM) 实战:TensorFlow 2.x 实现 MNIST 生成,对比散度与朗之万动力学详解
  • pc监控软件:轻松拿捏企业管理与员工体验平衡
  • Obsidian Excel插件终极指南:3步实现笔记与表格的无缝整合
  • Unlock-Music:打破音乐格式壁垒的Web端解密方案
  • 如何配置gala-spider与Prometheus、Kafka和ArangoDB集成:完整教程