Joplin API 管理器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_5bb17be6/joplin-api-new 到 AI 助手中。
技能介绍
要解决什么问题
Joplin 的数据都落在本地 SQLite 里。一旦想做批量迁移、外部索引、自动归档,或者和别的工具联动,直接翻数据库并不是好主意。这个技能把 Joplin 桌面版自带的 Web Clipper Service REST API 整理成一套可直接调用的操作集,让你用脚本管理笔记、笔记本、标签和附件,而不是在客户端里手工点来点去。
技能如何工作
连接很直接:Joplin 桌面版运行中,从 工具 → 选项 → Web Clipper → 显示高级设置 里复制 Authorization Token,每个请求以 ?token= 查询参数附加到 URL。默认端口 41184(范围 41184–41194),动手前先用 GET /ping 确认服务在线。
核心能力覆盖四类资源:
- 笔记:
GET/POST/PUT/DELETE /notes,创建时传title、body(Markdown)、parent_id;PUT是部分更新,只修改传入的字段 - 笔记本:
GET /folders返回树结构,子笔记本在children下;PUT /folders/:id改parent_id即可移动整个目录 - 标签:
POST /tags建标签,POST /tags/:id/notes绑定到笔记,DELETE /tags/:id/notes/:note_id解绑 - 资源:
POST /resources以multipart/form-data上传文件,GET /resources/:id/file取回实际内容
此外还提供全文搜索(笔记走 FTS4,type=folder、type=tag 走简单通配符匹配)、变更事件(创建/更新/删除)用于增量同步,以及 fields 字段过滤、order_by 排序和 page/limit 分页。
适用边界与注意点
几个实测会踩的坑:
- 含中文的请求体必须用 Python
urllib以 UTF-8 编码发送,PowerShell 的Invoke-RestMethod会把中文变成问号 page和limit只在/notes和/folders上可靠,parent_id过滤会返回 403,找文件夹得用搜索替代DELETE返回空 body,直接json.loads会抛JSONDecodeError,先判断响应是否为空- 时间为 Unix 毫秒时间戳,布尔值是
0或1 - Windows 控制台是 GBK 编码,
printemoji 会UnicodeEncodeError
不适合的场景:多用户并发写入,或者脱离 Joplin 桌面版常驻的服务端部署——这套 API 依赖本地 Web Clipper 服务在线。
使用场景
- 搭建笔记同步管线时,需要通过 GET /events 拉取笔记创建、更新、删除事件做增量同步
- 把 Joplin 里的资料归档到外部系统时,需要循环分页拉取全部笔记并处理 UTF-8 中文内容
- 批量迁移笔记结构时,需要修改笔记本的 parent_id 把目录移动到新位置
- 上传附件到 Joplin 笔记时,需要用 multipart/form-data 把文件作为 resource 提交并关联到笔记
适合人员
- 维护自建笔记同步服务的开发者,需要处理 Joplin Web Clipper API 的分页和中文编码细节
- 编写 Joplin 批量迁移脚本的工程师,需要在 Windows 环境下正确处理 UTF-8 和 GBK 编码差异
- 搭建知识库自动化流水线的开发者,需要通过 REST API 管理笔记、文件夹、标签和资源
- 调试 Joplin API 集成的工具开发者,需要理解 PUT 部分更新和 DELETE 空响应等行为差异