Todoist 任务可见性管理
v1.0.0基于 Todoist 的任务可见性管理。用于创建、更新和追踪任务状态(进行中🟡、等待中🟠、已完成🟢),并记录进度评论。当用户提到 Todoist 任务管理、任务状态追踪、或需要使用 Todoist API 时触发。
MIT-0
Security Scan
OpenClaw
Suspicious
high confidencePurpose & Capability
技能名与描述表明这是一个基于 Todoist 的任务可见性管理工具;包含的脚本(创建/更新任务、添加评论、通用 API 封装)与该目的直接对应,功能与声明一致。
Instruction Scope
SKILL.md 和脚本仅对 Todoist API 发起请求并在本地构建 JSON,没有读取系统中其他敏感路径或发送数据到第三方域名外的地点。需注意 SKILL.md 要求持久化环境变量并建议使用 curl 和 jq,这授予脚本访问保存在环境中的 API token 的能力(合理但需显式声明)。
Install Mechanism
没有远程下载或安装步骤(instruction-only + 本地脚本),没有从不受信任的 URL 拉取代码;这降低了安装期风险。脚本会被写入磁盘(随技能包),但没有可疑安装流程。
Credentials
注册元数据声称“无需环境变量/凭证/二进制”,但 SKILL.md 与脚本实际上需要 TODOIST_TOKEN、TODOIST_PROJECT_ID、SECTION_IN_PROGRESS/WAITING/DONE,以及运行时依赖 curl 和(在文档中)jq。TODOIST_TOKEN 应被列为 primary credential。未声明的敏感环境变量与依赖是不一致且有风险的配置错误。
Persistence & Privilege
技能没有设置 always:true,也不修改其他技能或系统范围配置;默认的自主调用权限保持不变,权限等级符合常见技能。
What to consider before installing
要点与建议:
- 不一致性:注册元数据未声明任何必需的环境变量或二进制依赖,但 SKILL.md 和脚本都需要 TODOIST_TOKEN、项目和 section ID 及命令行工具(curl,文档中也提到 jq)。在安装/启用前要求发布者更新技能元数据或在本地明确提供这些值。
- 权限与秘密管理:TODOIST_TOKEN 是敏感凭证(可访问你的 Todoist 数据)。仅在信任此技能来源时提供,并尽可能使用有限权限或专用账号/令牌,避免把长期全局 token 暴露给未知第三方。将 token 存放在安全位置(例如受限环境变量或秘密管理器),不要在共享日志或公共仓库中泄露。
- API 版本差异:脚本中 API_BASE 在不同脚本里使用了不同的路径(scripts/add_comment.sh 使用 https://api.todoist.com/rest/v2,而其他脚本使用 https://api.todoist.com/api/v1)。这可能导致兼容性或行为差异(例如 comments 接口在不同版本下的参数或路径不同)。建议在部署前测试每个脚本并让作者统一 API 版本或在文档中解释差异。
- 运行环境:脚本在本地执行(无远程安装),依赖 curl 和 (文档)jq。建议在隔离环境(非生产、或容器/VM)中先运行并观察网络请求/日志,确认行为符合预期。
- 需要发布者澄清的项:更新 registry 元数据以列出 TODOIST_TOKEN、TODOIST_PROJECT_ID、SECTION_* 为必需项并将 TODOIST_TOKEN 标示为 primary credential;明确是否需要 jq;解释为什么使用不同的 API 端点(v1 vs rest/v2)。
总体建议:脚本看起来并非恶意,但有元数据与实现的不一致和工程细节需先澄清并在安全环境中测试,确认后再在生产环境中长期使用。Like a lobster shell, security has layers — review code before you run it.
latest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
Todoist 任务可见性 Skill
基于 Todoist API 的任务管理工具,提供清晰的任务状态可视化。
功能
- 创建任务并设置状态 section
- 更新任务状态
- 添加进度评论
- 查询项目和任务
状态映射
| 状态 | Section | Emoji |
|---|---|---|
| in_progress | 进行中 | 🟡 |
| waiting | 等待中 | 🟠 |
| done | 已完成 | 🟢 |
配置
使用前需要设置环境变量:
# Todoist API Token
export TODOIST_TOKEN="your-api-token"
# 项目 ID
export TODOIST_PROJECT_ID="your-project-id"
# Section IDs(需要在 Todoist 中创建对应的 section)
export SECTION_IN_PROGRESS="section-id-for-in-progress"
export SECTION_WAITING="section-id-for-waiting"
export SECTION_DONE="section-id-for-done"
脚本使用
1. todoist_api.sh - 通用 API 封装
# 获取所有项目
./scripts/todoist_api.sh GET projects
# 获取项目的 sections
./scripts/todoist_api.sh GET "sections?project_id=123"
# 获取项目的任务
./scripts/todoist_api.sh GET "tasks?project_id=123"
# 创建任务
./scripts/todoist_api.sh POST tasks '{"content": "新任务", "project_id": "123"}'
2. sync_task.sh - 任务同步
# 创建进行中的任务
./scripts/sync_task.sh create '{
"content": "完成任务",
"description": "任务详细描述",
"status": "in_progress"
}'
# 更新任务状态为已完成
./scripts/sync_task.sh update '{"status": "done"}' 12345
# 更新任务状态为等待中
./scripts/sync_task.sh update '{"status": "waiting"}' 12345
3. add_comment.sh - 添加进度评论
# 添加进度日志
./scripts/add_comment.sh 12345 "已完成数据收集"
# 记录问题和进度
./scripts/add_comment.sh 12345 "遇到问题:API 超时,正在重试"
工作流程
对于复杂任务:
- 创建任务 - 在"进行中"状态创建任务,描述中包含完整计划
- 记录进度 - 每完成一个子步骤,调用
add_comment.sh记录 - 更新状态 - 根据需要移动任务到"等待中"或"已完成"
获取配置信息
获取 API Token
- 访问 Todoist Settings
- 复制 API Token
获取项目 ID
# 列出所有项目
./scripts/todoist_api.sh GET projects | jq '.[] | {id, name}'
创建 Sections 并获取 ID
在 Todoist 项目中创建三个 section:
- 🟡 In Progress
- 🟠 Waiting
- 🟢 Done
然后获取 section IDs:
# 列出项目的所有 sections
./scripts/todoist_api.sh GET "sections?project_id=YOUR_PROJECT_ID" | jq '.[] | {id, name}'
注意事项
- 所有脚本需要
curl和jq工具 - 环境变量需要在会话中持久化保存
- API 有速率限制,避免频繁调用
Files
5 totalSelect a file
Select a file to preview.
Comments
Loading comments…
