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