Use the td (Todoist CLI) to read and manage Todoist todos/to-dos/tasks from the terminal. Trigger when the user asks about their todos/tasks/agenda/checklist (today/upcoming/overdue), wants to list inbox/tasks/projects/labels, add a task/todo with natural language, or update/complete/delete/move tasks (e.g., add a phone number to a task description, change due dates, priorities, labels).

GitHub
Install command
npx skhub add sundial-org/todoist-3
Markdown
SKILL.md

Todoist via td CLI

Install / verify

Repo: https://github.com/Doist/todoist-cli

If td is not installed (e.g., command not found: td), install from the repo:

git clone https://github.com/Doist/todoist-cli
cd todoist-cli
npm install
npm run build
npm link

Then verify:

td --help

Use td for all Todoist operations. Prefer parseable output:

  • Use --json (or --ndjson) for listing/reading tasks.
  • Use td task update ... for edits (content, due, description, priority, labels, etc.).

Quick agenda

  • Today + overdue:
    • td today --json
  • Next N days:
    • td upcoming 7 --json
  • Inbox:
    • td inbox --json

When summarizing an agenda for the user:

  • Separate Overdue vs Due today (and optionally Upcoming).
  • Include priority (p1–p4) if present and any labels.

Find the right task to edit

Preferred approaches:

  1. If you already have the task id, use it directly:
  • Reference format: id:<taskId> (e.g., id:6WcqCcR4wF7XW5m6)
  1. If you only have a title/snippet, search/list then match:
  • td task list --json (optionally filter via other list commands like today, upcoming, inbox)
  • Then pick the correct item by content + due date + project.

To view a single task:

  • td task view <ref> --json

Common edits

Update description (notes):

  • td task update <ref> --description "..."

Update title/content:

  • td task update <ref> --content "New task title"

Change due date/time (natural language often works):

  • td task update <ref> --due "tomorrow 3pm"

Priority:

  • td task update <ref> --priority p1 (or p2/p3/p4)

Labels (replaces existing labels):

  • td task update <ref> --labels "Chores,Calls"

Complete / reopen:

  • td task complete <ref>
  • td task uncomplete id:<taskId>

Delete:

  • td task delete <ref> --yes (only if the user explicitly wants deletion)

Add tasks

Fast natural-language add:

  • td add "Call dentist tomorrow 10am p2 #Personal"

Or explicit add (when you need structured fields):

  • td task add --content "..." --due "..." --priority p2 --labels "..."

Safety / UX

  • Confirm before destructive actions (delete).
  • If multiple tasks match the user’s description, ask a clarifying question (or show candidates) before updating.
  • When the user asks to add info (e.g., a phone number), put it in the description unless they explicitly want it in the title.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/todoist-3

Default branch

main

Latest commit

b80cde2

Tree SHA

fc3a971