todoist-api
This skill provides instructions for interacting with Todoist using the td CLI tool. It covers CRUD operations for tasks/projects/sections/labels/comments, and requires confirmation before destructive actions. Use this skill when the user wants to read, create, update, or delete Todoist data.
By intellectronica · 1,673 installs
npx skills add intellectronica/agent-skills --skill todoist-api
Source repository · Upstream listing
Todoist CLI Skill
This skill provides procedural guidance for working with Todoist using the td CLI tool.
Prerequisites
The td CLI must be installed and authenticated. Verify with:
If td is not installed or not authenticated:
Not installed : Tell the user to install with npm install g @doist/todoist cli
Not authenticated : Tell the user to run td auth login to authenticate via OAuth
Output Formats for Agents
For 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)
Confirmation Requirement
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:
Deleting tasks, projects, sections, labels, or comments
Completing tasks
Updating existing resources
Archiving projects
Read only operations do not require confirmation.
Quick Commands
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
Quick Add Examples
The quick add parser supports:
Due dates: tomorrow , next monday , Jan 15
Priority: p1 (urgent) through p4 (normal)
Project: ProjectName
Section: /SectionName
Labels: @label1 @label2
Tasks
List Tasks
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 only
Output:
View Task Details
The ref can be a task name, partial match, or id:xxx .
Create Task
Quick add (natural language):
Explicit flags:
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 description
assignee <ref Assign to user (name, email, id:xxx, or "me")
duration <time Duration (e.g., 30m, 1h, 2h15m)
Update Task
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 Duration
Complete Task
Reopen Task
Note: Uncomplete requires the task ID (id:xxx format).
Delete Task
Move Task
Open in Browser
Projects
List Projects
View Project
Create Project
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 favourite
Update Project
Archive/Unarchive Project
Delete Project
Note: Project must have no uncompleted tasks.
List Collaborators
Sections
List Sections
Create Section
Update Section
Delete Section
Labels
List Labels
Create Label
Update Label
Delete Label
Comments
List Comments
Add Comment
Update Comment
Delete Comment
Reminders
List Reminders
Add Reminder
Delete Reminder
Filters
List Saved Filters
Show Tasks Matching Filter
Create Filter
Completed Tasks
Options:
since <date Start date (YYYY MM DD), default: today
until <date End date (YYYY MM DD), default: tomorrow
project <name Filter by project
Activity and Stats
Pagination
For large result sets, use all to fetch everything, or handle pagination with cursors:
Reference Resolution
The <ref parameter in commands accepts:
Task/project/label name (partial match supported)
id:xxx for exact ID match
Numeric ID (interpreted as id:xxx)
Additional Reference
For detailed information on specific topics, consult:
references/completed tasks.md Alternative methods for completed task history via API
references/filters.md Todoist filter query syntax for filter flag
Workflow Summary
1. Verify authentication td auth status
2. Read operations Execute directly without confirmation
3. Write operations Ask for confirmation before executing
4. Use JSON output Add json flag for machine readable data
5. Handle large datasets Use all or pagination with cursor