Things 3 CLI 是一个用于在 macOS 上管理 Things 3 的命令行工具。它通过读取本地 Things 数据库来查询信息,并通过 Things URL scheme 来添加或更新待办事项。
用途
该工具适用于需要通过命令行或自动化方式操作 Things 3 的场景,例如批量添加待办、查询收件箱或今日任务、搜索已有条目,以及在脚本中更新任务状态。
主要能力
读取(只读,基于本地数据库):
- things inbox --limit 50:查看收件箱
- things today:查看今日任务
- things upcoming:查看即将到来的任务
- things search "query":搜索
- things projects / things areas / things tags:列出项目、领域、标签
写入(基于 URL scheme):
- 添加待办:things add "Title" --notes "..." --when today --deadline 2026-01-02
- 将 Things 带到前台:things --foreground add "Title"
- 添加到项目或领域:things add "Book flights" --list "Travel"
- 添加到项目标题下:things add "Pack charger" --list "Travel" --heading "Before"
- 添加标签:things add "Call dentist" --tags "health,phone"
- 添加清单项:things add "Trip prep" --checklist-item "Passport" --checklist-item "Tickets"
- 从标准输入读取(多行时第一行为标题,其余为备注):cat <<'EOF' | things add -
更新待办(需要认证令牌):
- 先获取 ID:things search "milk" --limit 5(查看 UUID 列)
- 设置认证:设置 THINGS_AUTH_TOKEN 或传入 --auth-token <TOKEN>
- 修改标题:things update --id <UUID> --auth-token <TOKEN> "New title"
- 替换备注:things update --id <UUID> --auth-token <TOKEN> --notes "New notes"
- 追加或前置备注:--append-notes "..." / --prepend-notes "..."
- 移动列表:--list "Travel" --heading "Before"
- 替换或添加标签:--tags "a,b" / --add-tags "a,b"
- 完成或取消:--completed / --canceled
- 安全预览:things --dry-run update --id <UUID> --auth-token <TOKEN> --completed
使用方式
安装(推荐,Apple Silicon): GOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latest
如果数据库读取失败:为调用方应用授予完全磁盘访问权限(手动运行时为 Terminal;网关运行时为 Clawdbot.app)。
可选配置:
- 设置 THINGSDB(或传入 --db)指向 ThingsData-* 文件夹
- 设置 THINGS_AUTH_TOKEN 以避免在更新操作中传入 --auth-token
安全预览:things --dry-run add "Title" 会打印 URL 而不会打开 Things。
适用场景
- 在终端中快速查看收件箱、今日任务或搜索待办
- 通过脚本或自动化流程批量添加待办事项
- 在命令行中更新已有待办的状态、备注、标签或所属列表
限制
- 仅支持 macOS。
- 删除待办暂不支持:things3-cli 目前没有删除或移入废纸篓的写入命令;things trash 仅用于只读列出。替代方案是使用 Things 界面删除,或通过 things update 标记为 --completed / --canceled。
- 更新操作需要认证令牌。
- 读取本地数据库可能需要授予完全磁盘访问权限。