OpenClaw 技能实战:用 things CLI 在 macOS 上管理 Things 3 待办事项
人工智能AI Agent即时通讯后端本地部署语音【免费下载链接】openclaw-cn中文社区版OpenClaw同原版保持定期更新已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。项目地址https://gitcode.com/gh_mirrors/op/openclaw-cn点击查看免费下载本文围绕 OpenClaw 中文社区版内置的things-mac技能定义文件见 skills/things-mac/SKILL.md完整讲解如何通过things3-cli命令行工具读写 macOS 上的 Things 3 数据库既能读取收件箱、今日、即将到期、搜索、项目、区域与标签也能通过 Things URL scheme 新增、修改、标记完成待办事项。读完本文你将掌握该技能从安装、权限配置到日常读写操作的完整实战方法并理解 OpenClaw 技能门控与安装器的底层实现原理。技能概览它能做什么、何时被触发things-mac是 OpenClaw 捆绑提供的一只 macOS 专属技能。它的SKILL.md前置元数据frontmatter定义了以下关键信息--- name: Things管理 description: 通过macOS上的things命令行界面管理Things 3通过URL方案添加/更新项目待办事项从本地Things数据库读取/搜索/列出。当用户要求Clawdbot向Things添加任务、列出收件箱/今日/即将到期事项、搜索任务或查看项目/区域/标签时使用。 metadata: {clawdbot:{emoji:✅,os:[darwin],requires:{bins:[things]},install:[{id:go,kind:go,module:github.com/ossianhempel/things3-cli/cmd/thingslatest,bins:[things],label:Install things3-cli (go)}]}} ---从中可以读出四条重要约束平台限定os: [darwin]仅在 macOS 上生效二进制依赖requires.bins: [things]PATH中必须存在things可执行文件技能才会被加载自动安装器install声明了一个go类型安装器模块为github.com/ossianhempel/things3-cli/cmd/thingslatest触发场景当用户让 Clawdbot 向 Things 添加任务、列出收件箱/今日/即将到期事项、搜索任务或查看项目/区域/标签时模型会调用该技能。关于第 4 点的底层机制可以参见 docs/tools/skills.mdOpenClaw 在代理运行开始时读取技能元数据将符合条件的技能以紧凑 XML 列表注入系统提示模型据此决定何时调用things命令。技能存放在workspace/skills即仓库中的skills/things-mac/SKILL.md属于工作区技能优先级高于~/.openclaw/skills和捆绑技能。安装与前置条件安装 things3-cli技能元数据推荐使用 Go 直接安装Apple Silicon 机器建议显式指定 GOBIN 到 Homebrew 的 bin 目录GOBIN/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/thingslatest如果本机PATH中没有goOpenClaw 的安装器会先尝试用 Homebrew 安装 Go见 src/agents/skills-install.ts 第 643-672 行当存在 Homebrew 且spec.kind go时安装器会解析brew --prefix的 bin 目录并把GOBIN注入到安装命令环境中同文件第 674-680 行与技能推荐命令的意图一致对应go类型安装器最终执行的命令是go install module同文件第 183-187 行。数据库读取权限Full Disk Accessthings需要直接读取本地 Things 数据库ThingsData-*目录。若读取失败需要给调用方授予完全磁盘访问权限Full Disk Access手动在终端运行命令时给Terminal授予该权限由网关运行如Clawdbot.app时给Clawdbot.app授予该权限。授予路径系统设置 → 隐私与安全性 → 完全磁盘访问权限 → 勾选对应应用然后重启该应用使其生效。可选环境变量THINGSDB或命令行参数--db当 Things 数据库不在默认位置时用于指向你的ThingsData-*文件夹THINGS_AUTH_TOKEN设置后执行更新类写操作时无需再手动传--auth-token。这两个变量也可以在 OpenClaw 的~/.openclaw/openclaw.json中通过skills.entries注入详见下文配置覆盖。只读操作读取本地 Things 数据库things的只读命令直接读取本地数据库无需鉴权 token适合作为日常查询入口命令作用things inbox --limit 50列出收件箱最多 50 条--limit控制条数things today列出今日待办things upcoming列出即将到期事项things search query按关键词搜索任务things projects列出所有项目things areas列出所有区域things tags列出所有标签这些命令是 Agent 理解用户我有哪些待办这类诉求时的核心工具。搜索命令的返回结果中带有 UUID 列也是后续执行更新操作前获取任务 ID 的主要途径见下一节。写入操作通过 URL scheme 添加待办事项添加类操作走的是 Things URL scheme。强烈建议先用--dry-run做安全预览它只打印将要打开的 URL、不会真的唤起 Thingsthings --dry-run add Title基础添加# 最简添加 things add Buy milk # 带备注 things add Buy milk --notes 2% bananas # 归入某个项目/区域 things add Book flights --list Travel # 归入项目的某个标题heading下 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 # 指定时间与截止日期 things add Title --notes ... --when today --deadline 2026-01-02参数说明--notes备注文本--when排期如today、tomorrow、evening等 Things 支持的相对时间表达--deadline截止日期格式YYYY-MM-DD--list目标项目或区域名称--heading目标项目内的标题分组--tags逗号分隔的标签列表--checklist-item清单项可重复使用以构建多项清单。从 STDIN 添加多行 → 标题 备注当内容较长时可以从标准输入读取第一行作为标题后续行作为备注。cat EOF | things add - Title line Notes line 1 Notes line 2 EOF将 Things 带到前台things --foreground add Title--foreground会在执行 URL scheme 时把 Things 应用切换到前台适合用户希望立刻看到结果的情况。修改操作更新与完成待办事项更新类操作需要鉴权因此必须先准备好 auth token设置THINGS_AUTH_TOKEN环境变量或每次传--auth-token TOKEN。第一步获取任务 UUID先通过搜索拿到任务的 UUID结果中的 UUID 列things search milk --limit 5修改标题与备注# 修改标题 things update --id UUID --auth-token TOKEN New title # 备注整体替换 things update --id UUID --auth-token TOKEN --notes New notes # 备注追加 / 前置 things update --id UUID --auth-token TOKEN --append-notes ... things update --id UUID --auth-token TOKEN --prepend-notes ...移动列表 / 修改标签# 移动到其他项目/标题 things update --id UUID --auth-token TOKEN --list Travel --heading Before # 标签整体替换 / 追加 things update --id UUID --auth-token TOKEN --tags a,b things update --id UUID --auth-token TOKEN --add-tags a,b标记完成 / 取消# 标记为已完成 things update --id UUID --auth-token TOKEN --completed # 标记为已取消 things update --id UUID --auth-token TOKEN --canceled # 安全预览只打印 URL不真正执行 things --dry-run update --id UUID --auth-token TOKEN --completed与添加操作一样--dry-run同样适用于更新操作作为执行任何写操作前的保险手段。删除限制与替代方案需要特别说明的是当前版本的things3-cli不提供删除/移入废纸篓的写命令things trash只是只读的已删除列表。因此需要真正删除任务时请使用 Things 图形界面操作或者在命令行中通过things update --id UUID --auth-token TOKEN --completed/--canceled将任务标记为完成或取消达到软删除效果。Agent 在规划删除操作时应优先选择--completed路线并向用户说明无法硬删除的限制。源码级运行机制门控、环境注入与安装器理解该技能在 OpenClaw 中的运行机制有助于排查技能为什么没被加载类问题。加载时门控requires.binsmetadata.openclaw.requires.bins在技能加载时于主机上检查见 docs/tools/skills.md 的门控一节。对things-mac而言就是检查things是否在PATH中。元数据解析实现在 src/agents/skills/frontmatter.ts其中resolveOpenclawMetadata会解析单行 JSON 的metadata字段并规范化requires.bins列表支持数组或逗号分隔字符串。两点注意若代理运行在沙盒中things二进制还必须存在于容器内部否则技能虽可加载、调用却可能失败——对 macOS 主机上的 Things 这类场景一般建议直接在本机运行而非沙盒内技能快照在会话开始时生成对技能或配置的改动要等到下一个新会话才生效除非启用技能监视器热重载。配置覆盖与环境注入可以在~/.openclaw/openclaw.json中按技能名覆盖配置并注入环境变量例如为things-mac预置THINGS_AUTH_TOKEN{ skills: { entries: { things-mac: { enabled: true, env: { THINGS_AUTH_TOKEN: your-token-here } } } } }OpenClaw 会在每次代理运行开始时将skills.entries.key.env注入process.env运行结束后恢复原环境作用域限定在单次代理运行内不会污染全局 shell。注意env仅在变量尚未在进程中被设置时才注入。安装器实现go类型安装器的命令构造位于 src/agents/skills-install.ts对应执行go install module同文件第 643-680 行负责在缺少go时通过 Homebrew 安装、并尽量将GOBIN指向 Homebrew 的 bin 目录——这与技能文档推荐的GOBIN/opt/homebrew/bin go install ...完全一致。安装器还会在安装前对技能文件夹做安全扫描scanDirectoryWithSummary见同文件第 11 行的引用。远程 macOS 节点Linux 网关如果 OpenClaw 网关运行在 Linux 上但已连接一个允许system.run的 macOS 节点且该节点上存在things二进制那么仅 macOS 技能仍可能被视为符合条件代理通过nodes工具通常是nodes.run在远程节点上执行命令。此时要注意若 macOS 节点离线技能虽仍可见但调用可能失败直到节点重新连接。常见问题与最佳实践数据库读取失败先检查是否已给调用方Terminal 或 Clawdbot.app授予完全磁盘访问权限并重启应用数据库路径非默认设置THINGSDB或使用--db指向ThingsData-*目录更新操作报鉴权错误确认已设置THINGS_AUTH_TOKEN或在命令中传入--auth-token拿不到 UUID先用things search 关键词 --limit 5定位任务再取其 UUID 列任何写操作前先 dry-run--dry-run只打印 URL 不打开 Things是避免误操作的最简单防线删除任务things3-cli 暂不支持硬删除改用--completed/--canceled或 Things 界面。小结things-mac技能把 Things 3 的本地数据库读取与 URL scheme 写入能力封装成一组简洁的things命令覆盖了从查看收件箱/今日/即将到期到添加带备注、清单、标签的待办再到按 UUID 更新标题、备注、标签与状态的完整闭环。配合 OpenClaw 的技能门控osrequires.bins、环境变量注入THINGS_AUTH_TOKEN与 Go 安装器用户只需确保things可用并授予磁盘访问权限即可让 Clawdbot 成为自己 Things 3 的高效命令行助手。更多技能加载、优先级与配置规则可参考 docs/tools/skills.md。赞分享人工智能AI Agent即时通讯后端本地部署语音【免费下载链接】openclaw-cn中文社区版OpenClaw同原版保持定期更新已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。项目地址https://gitcode.com/gh_mirrors/op/openclaw-cn点击查看免费下载相关推荐openagent 技能实战通过 things3-cli 让 Agent 在 macOS 上读写 Things 3 任务openagent 技能实战通过 things3 cli 让 Agent 在 macOS 上读写 Things 3 任务 导读 本文以 openagent人工智能大模型AI 应用AI AgentRAGMCP Clients交互助手浏览器控制代码智能体GUI 自动化AI 技能后端前端本地部署OpenClaw Apple Notes 技能实战使用 memo CLI 在 macOS 上全流程管理 Apple 备忘录OpenClaw Apple Notes 技能实战使用 memo CLI 在 macOS 上全流程管理 Apple 备忘录 在 OpenClaw 中技能SAI 应用AI Agent交互助手后端即时通讯网关用 Raycast Script Commands 掌控 Things 待办四个实用脚本的源码级解析用 Raycast Script Commands 掌控 Things 待办四个实用脚本的源码级解析 这篇技术指南围绕 Things 应用脚本集合 https开发工具桌面应用上一篇探索D-Zone一款高效、开源的代码托管平台下一篇探索时间转换神器Google的cctz库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考