todoist-api by intellectronica/agent-skills
npx skills add https://github.com/intellectronica/agent-skills --skill todoist-api此技能提供使用 td CLI 工具处理 Todoist 的程序性指导。
必须安装并认证 td CLI。通过以下命令验证:
td auth status
如果 td 未安装或未认证:
npm install -g @doist/todoist-cli 安装td auth login 通过 OAuth 进行认证对于机器可读的输出,请使用以下标志:
--json - 输出为 JSON 数组--ndjson - 输出为换行符分隔的 JSON(每行一个对象)广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
--full - 在 JSON 输出中包含所有字段(默认仅显示基本字段)在执行任何破坏性操作之前,始终使用 AskUserQuestion 或类似工具向用户请求确认。 对于一组逻辑相关的操作,一次确认即可。
破坏性操作包括:
只读操作不需要确认。
| 命令 | 描述 |
|---|---|
td add "文本" | 使用自然语言解析快速添加 |
td today | 今天到期和逾期的任务 |
td upcoming [天数] | 未来 N 天内到期的任务(默认:7) |
td inbox | 收件箱中的任务 |
td completed | 最近完成的任务 |
td add "Buy milk tomorrow p1 #Shopping"
td add "Call dentist every monday @health"
td add "Review PR #Work /Code Review"
快速添加解析器支持:
tomorrow、next monday、Jan 15p1(紧急)到 p4(普通)#ProjectName/SectionName@label1 @label2td task list [选项]
过滤器:
--project <名称> - 按项目名称或 id:xxx 过滤--label <名称> - 按标签过滤(多个用逗号分隔)--priority <p1-p4> - 按优先级过滤--due <日期> - 按截止日期过滤(today、overdue 或 YYYY-MM-DD)--filter <查询> - 原始 Todoist 过滤器查询--assignee <引用> - 按分配人过滤(me 或 id:xxx)--workspace <名称> - 过滤到工作区--personal - 仅过滤个人项目输出:
td task list --json # JSON 数组
td task list --project "Work" --json # 过滤后的 JSON
td task list --all --json # 所有任务(无限制)
td task view <引用> # 人类可读格式
td task view <引用> --json # JSON 输出
引用可以是任务名称、部分匹配或 id:xxx。
快速添加(自然语言):
td add "Task text with #Project @label tomorrow p2"
显式标志:
td task add --content "Task text" \
--project "Work" \
--due "tomorrow" \
--priority p2 \
--labels "urgent,review" \
--description "Additional details"
选项:
--content <文本> - 任务内容(必需)--due <日期> - 截止日期(自然语言或 YYYY-MM-DD)--deadline <日期> - 截止日期(YYYY-MM-DD)--priority <p1-p4> - 优先级级别--project <名称> - 项目名称或 id:xxx--section <id> - 分区 ID--labels <a,b> - 逗号分隔的标签--parent <引用> - 子任务的父任务--description <文本> - 任务描述--assignee <引用> - 分配给用户(名称、邮箱、id:xxx 或 "me")--duration <时间> - 持续时间(例如:30m、1h、2h15m)td task update <引用> --content "New content" --due "next week"
选项:
--content <文本> - 新内容--due <日期> - 新截止日期--deadline <日期> - 截止日期--no-deadline - 移除截止日期--priority <p1-p4> - 新优先级--labels <a,b> - 替换标签--description <文本> - 新描述--assignee <引用> - 分配给用户--unassign - 移除分配人--duration <时间> - 持续时间td task complete <引用>
td task uncomplete id:xxx
注意:重新打开需要任务 ID(id:xxx 格式)。
td task delete <引用>
td task move <引用> --project "New Project"
td task move <引用> --section <分区-id>
td task move <引用> --parent <任务-引用>
td task browse <引用>
td project list # 人类可读的树状结构
td project list --json # JSON 数组
td project list --personal --json # 仅个人项目
td project view <引用>
td project view <引用> --json
td project create --name "Project Name" \
--color "blue" \
--parent "Parent Project" \
--view-style board \
--favorite
选项:
--name <名称> - 项目名称(必需)--color <颜色> - 颜色名称--parent <引用> - 用于嵌套的父项目--view-style <样式> - "list" 或 "board"--favorite - 标记为收藏td project update <引用> --name "New Name" --color "red"
td project archive <引用>
td project unarchive <引用>
td project delete <引用>
注意:项目必须没有未完成的任务。
td project collaborators <引用>
td section list <项目> # 人类可读格式
td section list <项目> --json # JSON 数组
td section create --name "Section Name" --project "Project Name"
td section update <id> --name "New Name"
td section delete <id>
td label list # 人类可读格式
td label list --json # JSON 数组
td label create --name "label-name" --color "green" --favorite
td label update <引用> --name "new-name" --color "blue"
td label delete <名称>
td comment list <任务-引用> # 任务上的评论
td comment list <项目-引用> --project # 项目上的评论
td comment add <任务-引用> --content "Comment text"
td comment add <项目-引用> --project --content "Comment text"
td comment update <id> --content "Updated text"
td comment delete <id>
td reminder list <任务-引用>
td reminder add <任务-引用> --due "tomorrow 9am"
td reminder delete <id>
td filter list --json
td filter show <过滤器-引用> --json
td filter create --name "My Filter" --query "today & p1"
td completed # 今天完成的任务
td completed --since 2024-01-01 # 自特定日期起
td completed --project "Work" --json # 过滤后的 JSON 输出
td completed --all --json # 所有已完成任务(无限制)
选项:
--since <日期> - 开始日期(YYYY-MM-DD),默认:今天--until <日期> - 结束日期(YYYY-MM-DD),默认:明天--project <名称> - 按项目过滤td activity # 最近活动
td stats # 生产力统计和 karma
对于大型结果集,使用 --all 获取所有内容,或使用游标处理分页:
# 第一页
result=$(td task list --json --limit 50)
# 如果响应中有 next_cursor,则继续
cursor=$(echo "$result" | jq -r '.[-1].id // empty')
td task list --json --limit 50 --cursor "$cursor"
命令中的 <引用> 参数接受:
id:xxx 用于精确 ID 匹配有关特定主题的详细信息,请查阅:
references/completed-tasks.md - 通过 API 获取已完成任务历史的替代方法references/filters.md - 用于 --filter 标志的 Todoist 过滤器查询语法td auth status--json 标志以获取机器可读数据--all 或带 --cursor 的分页每周安装
429
仓库
GitHub 星标
228
首次出现
2026年1月28日
安全审计
安装于
opencode379
codex373
gemini-cli368
cursor357
github-copilot355
kimi-cli338
This skill provides procedural guidance for working with Todoist using the td CLI tool.
The td CLI must be installed and authenticated. Verify with:
td auth status
If td is not installed or not authenticated:
npm install -g @doist/todoist-clitd auth login to authenticate via OAuthFor machine-readable output, use these flags:
--json - Output as JSON array--ndjson - Output as newline-delimited JSON (one object per line)--full - Include all fields in JSON output (default shows essential fields only)Before executing any destructive action, always ask the user for confirmation using AskUserQuestion or similar tool. A single confirmation suffices for a logical group of related actions.
Destructive actions include:
Read-only operations do not require confirmation.
| Command | Description |
|---|---|
td add "text" | Quick add with natural language parsing |
td today | Tasks due today and overdue |
td upcoming [days] | Tasks due in next N days (default: 7) |
td inbox | Tasks in Inbox |
td completed | Recently completed tasks |
td add "Buy milk tomorrow p1 #Shopping"
td add "Call dentist every monday @health"
td add "Review PR #Work /Code Review"
The quick add parser supports:
tomorrow, next monday, Jan 15p1 (urgent) through p4 (normal)#ProjectName/SectionName@label1 @label2td task list [options]
Filters:
--project <name> - Filter by project name or id:xxx--label <name> - Filter by label (comma-separated for multiple)--priority <p1-p4> - Filter by priority--due <date> - Filter by due date (today, overdue, or YYYY-MM-DD)--filter <query> - Raw Todoist filter query--assignee <ref> - Filter by assignee (me or id:xxx)--workspace <name> - Filter to workspace--personal - Filter to personal projects onlyOutput:
td task list --json # JSON array
td task list --project "Work" --json # Filtered JSON
td task list --all --json # All tasks (no limit)
td task view <ref> # Human-readable
td task view <ref> --json # JSON output
The ref can be a task name, partial match, or id:xxx.
Quick add (natural language):
td add "Task text with #Project @label tomorrow p2"
Explicit flags:
td task add --content "Task text" \
--project "Work" \
--due "tomorrow" \
--priority p2 \
--labels "urgent,review" \
--description "Additional details"
Options:
--content <text> - Task content (required)--due <date> - Due date (natural language or YYYY-MM-DD)--deadline <date> - Deadline date (YYYY-MM-DD)--priority <p1-p4> - Priority level--project <name> - Project name or id:xxx--section <id> - Section ID--labels <a,b> - Comma-separated labels--parent <ref> - Parent task for subtask--description <text> - Task descriptiontd task update <ref> --content "New content" --due "next week"
Options:
--content <text> - New content--due <date> - New due date--deadline <date> - Deadline date--no-deadline - Remove deadline--priority <p1-p4> - New priority--labels <a,b> - Replace labels--description <text> - New description--assignee <ref> - Assign to user--unassign - Remove assignee--duration <time> - Durationtd task complete <ref>
td task uncomplete id:xxx
Note: Uncomplete requires the task ID (id:xxx format).
td task delete <ref>
td task move <ref> --project "New Project"
td task move <ref> --section <section-id>
td task move <ref> --parent <task-ref>
td task browse <ref>
td project list # Human-readable tree
td project list --json # JSON array
td project list --personal --json # Personal projects only
td project view <ref>
td project view <ref> --json
td project create --name "Project Name" \
--color "blue" \
--parent "Parent Project" \
--view-style board \
--favorite
Options:
--name <name> - Project name (required)--color <color> - Colour name--parent <ref> - Parent project for nesting--view-style <style> - "list" or "board"--favorite - Mark as favouritetd project update <ref> --name "New Name" --color "red"
td project archive <ref>
td project unarchive <ref>
td project delete <ref>
Note: Project must have no uncompleted tasks.
td project collaborators <ref>
td section list <project> # Human-readable
td section list <project> --json # JSON array
td section create --name "Section Name" --project "Project Name"
td section update <id> --name "New Name"
td section delete <id>
td label list # Human-readable
td label list --json # JSON array
td label create --name "label-name" --color "green" --favorite
td label update <ref> --name "new-name" --color "blue"
td label delete <name>
td comment list <task-ref> # Comments on task
td comment list <project-ref> --project # Comments on project
td comment add <task-ref> --content "Comment text"
td comment add <project-ref> --project --content "Comment text"
td comment update <id> --content "Updated text"
td comment delete <id>
td reminder list <task-ref>
td reminder add <task-ref> --due "tomorrow 9am"
td reminder delete <id>
td filter list --json
td filter show <filter-ref> --json
td filter create --name "My Filter" --query "today & p1"
td completed # Today's completed tasks
td completed --since 2024-01-01 # Since specific date
td completed --project "Work" --json # Filtered JSON output
td completed --all --json # All completed (no limit)
Options:
--since <date> - Start date (YYYY-MM-DD), default: today--until <date> - End date (YYYY-MM-DD), default: tomorrow--project <name> - Filter by projecttd activity # Recent activity
td stats # Productivity stats and karma
For large result sets, use --all to fetch everything, or handle pagination with cursors:
# First page
result=$(td task list --json --limit 50)
# If there's a next_cursor in the response, continue
cursor=$(echo "$result" | jq -r '.[-1].id // empty')
td task list --json --limit 50 --cursor "$cursor"
The <ref> parameter in commands accepts:
id:xxx for exact ID matchFor detailed information on specific topics, consult:
references/completed-tasks.md - Alternative methods for completed task history via APIreferences/filters.md - Todoist filter query syntax for --filter flagtd auth status--json flag for machine-readable data--all or pagination with --cursorWeekly Installs
429
Repository
GitHub Stars
228
First Seen
Jan 28, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode379
codex373
gemini-cli368
cursor357
github-copilot355
kimi-cli338
头脑风暴技能:AI协作设计流程,将创意转化为完整规范与实施计划
77,000 周安装
--assignee <ref> - Assign to user (name, email, id:xxx, or "me")--duration <time> - Duration (e.g., 30m, 1h, 2h15m)