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:
bash
git clone https://github.com/Doist/todoist-cli cd todoist-cli npm install npm run build npm link
Then verify:
bash
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:
- •If you already have the task id, use it directly:
- •Reference format:
id:<taskId>(e.g.,id:6WcqCcR4wF7XW5m6)
- •If you only have a title/snippet, search/list then match:
- •
td task list --json(optionally filter via other list commands liketoday,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.