Things3CLI工具Skill:让 AI 助手直接读写你的 Things 3 待办清单
- 一句话定位:把 macOS 上 Things 3 的图形界面能力搬到命令行,让 AI 助手可以「读收件箱、查今天、搜任务、建待办、改笔记」。
- 核心能力:只读侧可列出收件箱/今天/即将到来、搜索任务、查看项目/区域/标签;写入侧可通过 URL Scheme 添加与更新待办事项。
- 安装前提:仅限 macOS,且本机已安装 Things 3,并具备 Go 环境与
things命令。 - 安全设计:支持
--dry-run预览生成的 URL,不直接打开 Things,适合先看后执行。 - 明确边界:目前不支持「删除/移入垃圾桶」的写操作,只能用
--completed/--canceled做软处理。
1. 该技能叫什么?如何下载安装 AI 技能提升开发效率?
这个技能的中文名是 Things3CLI工具Skill,英文名 things-mac,技能 ID 为 13535。
它要解决的问题非常具体:Things 3 是一款体验优秀的 macOS 待办应用,但它的操作入口主要是图形界面,AI 助手和自动化脚本没法直接「看懂」你的清单,也没法帮你往里写任务。这个技能做的事情,就是把社区开源工具 things3-cli 封装成 AI 可调用的能力——读取侧直接访问本地 Things 数据库,写入侧通过 Things 官方的 URL Scheme 完成,从而让「帮我把这句话记到今天的清单里」变成一句可执行的自然语言指令。
安装前提:
- 操作系统:仅 macOS(元数据中标注的平台为
darwin)。 - 本机已安装 Things 3 应用。
- 具备 Go 环境,用于安装
things命令行二进制。 - 需要依赖的可执行文件:
things。
一键安装步骤:
-
使用 Go 安装 CLI(官方推荐,Apple Silicon 环境):
GOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latest -
如果后续读取数据库失败,需要给「调用方应用」授予完全磁盘访问权限——手动在终端运行时授权给「终端」,通过网关运行时授权给
Otto.app。这是本地数据库只读能力能否生效的关键一步。 -
可选配置:设置环境变量
THINGSDB(或在命令中传--db)指向你的ThingsData-*数据文件夹;设置THINGS_AUTH_TOKEN可免去每次更新操作都手写--auth-token。 -
验证是否生效:执行
things today或things inbox --limit 5,能列出任务即表示读取链路正常;再执行things --dry-run add "安装验证",能打印出一条 Things URL 而不弹出应用,即表示写入链路正常(加--dry-run不会真的创建任务)。
至于该 CLI 项目本身的授权方式与分发策略,请以官方仓库 github.com/ossianhempel/things3-cli 的说明为准。
2. 该技能的主要功能和特点
能做什么:
- 读取本地数据库(只读):
things inbox --limit 50看收件箱、things today看今天、things upcoming看即将到来、things search "查询"做关键字搜索、things projects/things areas/things tags查看项目、区域、标签结构。 - 添加待办(URL Scheme 写入):支持标题、笔记(
--notes)、开始时间(--when today)、截止日期(--deadline)、目标列表(--list)、项目内标题分组(--heading)、标签(--tags)、清单子项(--checklist-item,可重复)。 - 更新待办(需认证令牌):改标题、替换笔记、追加或前置笔记(
--append-notes/--prepend-notes)、移动到其它列表与标题、替换或新增标签、标记完成(--completed)或取消(--canceled)。 - 标准输入批量写入:支持
cat <<'EOF' | things add -的形式,第一行作为标题,其余行作为笔记,适合把一段长文本直接变成任务。 - 前台唤起:
things --foreground add "标题"可在写入的同时把 Things 带到前台,方便立刻确认。
和普通工具比强在哪:
- 双通道设计:读取走数据库、写入走 URL Scheme,既拿到了结构化列表能力,又复用了 Things 官方支持的写入方式,稳定且不依赖界面自动化。
- 默认安全:
--dry-run只打印 URL 不打开 Things,AI 助手可以先预览再执行,减少误操作。 - 天然适合被 AI 调用:命令语义清晰、参数正交,模型不需要理解复杂的 UI 元素,只要拼对参数即可。
- 可脚本化:所有能力都是命令行,能被 Shell 脚本、定时任务、CI 流程复用。
需要提前知道的限制:仅 macOS 可用;更新类操作需要认证令牌;不支持「删除/移入垃圾桶」的写入命令(things trash 是只读列表),只能标记完成或取消,真删除仍需在 Things 界面操作。
3. 如何使用该技能?
第 1 步:确认读取链路。
直接让助手执行 things today。输出是今天的任务列表,包含标题等信息;需要定位某条任务时,用 things search "牛奶" --limit 5,结果中会带 UUID 列,这个 UUID 是后续更新操作的唯一凭证,务必先拿到。
第 2 步:先用 dry-run 做安全预览。
在执行任何写入前,先跑 things --dry-run add "买牛奶"。它只打印将要使用的 Things URL,不会真的创建任务,也不会打开应用。确认参数无误后再执行真实写入。
第 3 步:添加待办。 按需选择参数组合:
- 最简:
things add "买牛奶" - 带笔记:
things add "买牛奶" --notes "2% + 香蕉" - 指定项目/区域:
things add "订机票" --list "旅行" - 指定项目内标题:
things add "打包充电器" --list "旅行" --heading "之前" - 带标签:
things add "打电话给牙医" --tags "健康,电话" - 带清单子项:
things add "旅行准备" --checklist-item "护照" --checklist-item "机票" - 带时间与截止:
things add "标题" --notes "..." --when today --deadline 2026-01-02
第 4 步:从 STDIN 批量录入。 把一段会议纪要变成任务时很有用:
cat <<'EOF' | things add -
标题行
笔记行 1
笔记行 2
EOF
第一行作为标题,其余多行全部进入笔记字段。
第 5 步:更新已有待办(需要认证令牌)。
先 things search "牛奶" --limit 5 拿到 UUID,然后设置 THINGS_AUTH_TOKEN 或直接传 --auth-token <TOKEN>:
- 改标题:
things update --id <UUID> --auth-token <TOKEN> "新标题" - 替换笔记:
things update --id <UUID> --auth-token <TOKEN> --notes "新笔记" - 追加笔记:
things update --id <UUID> --auth-token <TOKEN> --append-notes "..." - 移动列表:
things update --id <UUID> --auth-token <TOKEN> --list "旅行" --heading "之前" - 追加标签:
things update --id <UUID> --auth-token <TOKEN> --add-tags "a,b" - 标记完成:
things update --id <UUID> --auth-token <TOKEN> --completed - 安全预览:
things --dry-run update --id <UUID> --auth-token <TOKEN> --completed
第 6 步:自然语言调用。
在接入了该技能的 AI 助手中,你不需要自己拼命令,直接说「把『周五前提交报销单』加到工作项目,标签财务,截止本周五」,助手会翻译成对应的 things add 调用;说「我今天的任务有哪些」,助手会执行 things today 并把结果整理成可读清单。
4. 同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| things-mac(Things3CLI工具Skill) | 让 AI 助手直接操控 Things 3 的技能封装 | 数据库只读列表/搜索 + URL Scheme 增改,支持 dry-run 预览 | 需 macOS、Things 3、Go 环境与完全磁盘访问授权 | AI 对话式建任务、脚本化收集、每周回顾 | 优势:命令语义清晰、默认安全预览、易被 AI 调用;不足:仅 macOS、更新需令牌、不支持删除 |
| Things 3 官方应用 + 系统快捷指令 | 面向普通用户的可视化自动化 | 图形化建任务、跨应用触发、简单条件流程 | 无需编程,但需手动搭建动作 | 轻量个人自动化、手机端一键记录 | 优势:零代码、稳定;不足:难以完成复杂查询与批量整理,AI 直接调用受限 |
| 手写 AppleScript / URL Scheme 脚本 | 技术用户自建方案 | 全量可控的自动化 | 需自行学习脚本语法与 URL 参数 | 高度定制的个人工作流 | 优势:灵活度最高;不足:维护成本高、易随系统版本失效,不适合交给 AI 直接生成 |
| 通用命令行待办工具(如 todo.txt 类) | 纯文本、跨平台的任务管理 | 文本文件读写、简单过滤 | 安装简单,跨平台 | 极简主义用户、服务器环境 | 优势:跨平台、轻量;不足:没有 Things 3 的 GTD 语义(项目、区域、标题、清单)与生态体验 |
选择建议:如果你已经深度使用 Things 3,并希望 AI 助手能直接读写清单,本技能几乎是唯一顺滑的路径;如果你不在 macOS 生态,或不需要 Things 的项目/区域体系,通用命令行工具更合适。
5. 该技能的典型应用场景与实际体验情况
场景一:开发者的「每日开工三分钟」。
角色:使用 Things 3 做 GTD 的工程师。痛点:每天要手动翻 Today 列表确认优先级。使用方式:早上对助手说「列出我今天的任务和即将到来的事」,助手依次执行 things today 与 things upcoming,把结果整理成结构化摘要,同时把临时想到的事用 things add 直接落到收件箱。
场景二:会议结束后的批量落库。
角色:项目经理。痛点:评审会产出一堆零散待办,逐条手打很费时。使用方式:把会议纪要粘贴给助手,让它按条目生成 things add 命令,指定 --list "项目名" 与 --heading "待办",并用 --dry-run 先预览一遍 URL 再正式执行。
场景三:周回顾时的任务巡检。
角色:重度 GTD 用户。痛点:整理旧任务比新建更麻烦。使用方式:用 things search "关键词" --limit 5 定位历史任务,拿到 UUID 后用 things update --id ... --completed 或 --canceled 批量收尾;需要改项目归属的,用 --list 与 --heading 一起调整。
场景四:脚本与流程自动化。
角色:需要把外部事件转成待办的自动化爱好者。使用方式:把 things add 嵌进 Shell 脚本或定时任务,配合 THINGS_AUTH_TOKEN 环境变量免去重复传参。
实际体验情况:
上手难度偏低——命令的命名基本对应 Things 的界面概念(收件箱、今天、项目、区域、标签),看一遍示例就能拼出来。效果上,读取侧响应很快,写入侧因为是 URL Scheme,任务会立即出现在 Things 中。需要注意三点:一是首次使用务必确认「完全磁盘访问」已授权,否则列表可能读不出来;二是更新类操作必须携带认证令牌,建议用 THINGS_AUTH_TOKEN 统一管理;三是「删除」做不到,需要把预期调整为「标记完成或取消」。
6. 该技能能为用户带来的价值
- 把「记下来」的动作成本降到接近于零:从「解锁手机 → 打开 Things → 找到项目 → 输入标题 → 补笔记 → 设截止」,压缩成一句自然语言,长期看显著降低任务漏记率。
- 让 AI 助手真正「看见」你的任务体系:在此之前,助手只能凭你口述推断你的清单;有了数据库只读能力,它可以基于真实数据做汇总、巡检与提醒。
- 零迁移成本:不需要换掉 Things 3,也不需要把数据导出到别的平台,原有项目、区域、标签体系全部保留。
- 可量化效率收益:按每天新增/整理 10 条任务、每条手工操作约 20 秒估算,一天可省下数分钟,一个月接近两小时;周回顾、批量改归属这类操作收益更明显。
- 长期价值在于可组合:命令行天然可被脚本、定时任务、CI 复用,随着你工作流的演化,这套能力可以不断被嵌入新的环节,而不会被界面绑定。
7. 常见问题 FAQ
Q1:怎么安装?一定要装 Go 吗?
是的,当前推荐方式是通过 Go 安装:GOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latest,安装后确保 things 在 PATH 中即可。若读取数据库失败,记得为终端或 Otto.app 授予完全磁盘访问权限。
Q2:收费吗?
该技能本身是对开源命令行工具 things3-cli 的封装,具体的授权与收费政策请以官方仓库说明为准;Things 3 本体是独立的商业应用,需要你自行按官方渠道获取。本文不涉及任何价格承诺。
Q3:Windows 或 Linux 能用吗?
不能。技能元数据明确限定平台为 macOS(darwin),因为它的写入依赖 Things 3 在 macOS 上的 URL Scheme,读取依赖本地 Things 数据库。非 macOS 用户建议选择跨平台的文本型待办方案。
Q4:为什么更新任务要 --auth-token,而新增不用?
新增走的是基础 URL Scheme,而更新、完成、取消等操作属于 Things 官方需要授权的指令类型。推荐把令牌写进环境变量 THINGS_AUTH_TOKEN,这样命令里就不必反复传 --auth-token。
Q5:能删除任务吗?和快捷指令、AppleScript 怎么选?
目前 things3-cli 没有「删除/移入垃圾桶」的写入命令(things trash 只是只读列表),可用 --completed 或 --canceled 做软处理,真删除需回到 Things 界面。至于方案选择:想让 AI 直接读写清单选本技能;想零代码点点点选系统快捷指令;需要极高定制且愿意维护脚本,再考虑手写 AppleScript。