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).
td CLIRepo: 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:
--json (or --ndjson) for listing/reading tasks.td task update ... for edits (content, due, description, priority, labels, etc.).td today --jsontd upcoming 7 --jsontd inbox --jsonWhen summarizing an agenda for the user:
Preferred approaches:
id:<taskId> (e.g., id:6WcqCcR4wF7XW5m6)td task list --json (optionally filter via other list commands like today, upcoming, inbox)content + due date + project.To view a single task:
td task view <ref> --jsonUpdate 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)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 "..."