Todoist
Scanned@mattjefferson
npx machina-cli add skill @mattjefferson/todoist-td --openclawTodoist 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:
- 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.
Overview
TD lets you read and manage Todoist tasks from the terminal. It supports listing agenda items (today, upcoming, overdue), inbox, projects, and labels, as well as adding and updating tasks with natural language and JSON output for automation.
How This Skill Works
Install the td Todoist CLI, then use td commands to read, add, and edit tasks. For listing and viewing, use --json or --ndjson to get parseable output, and use td task update for edits such as content, due date, priority, and labels. Destructive actions should be confirmed to prevent accidental loss of data.
When to Use It
- View today, overdue, or upcoming tasks in JSON for quick planning
- List inbox, tasks, projects, or labels to understand your Todoist structure
- Add a new task using natural language in the terminal
- Update, complete, delete, or move a task including due dates, priorities, and labels
- Perform actions with safety prompts and disambiguation when multiple tasks match
Quick Start
- Step 1: Install the td Todoist CLI from the repo and verify with td --help
- Step 2: List tasks with JSON output, e.g., td today --json or td inbox --json
- Step 3: Add or modify a task using natural language or explicit fields, for example td add Call dentist tomorrow 10am p2 #Personal
Best Practices
- Use --json or --ndjson for consistent, machine-friendly output
- Reference tasks by id when updating to avoid editing the wrong item
- Put extra details like phone numbers in the description by default
- If multiple tasks match a description, ask for clarification or show candidates
- Always confirm before destructive actions like delete
Example Use Cases
- td today --json to see today tasks
- td inbox --json to view inbox tasks
- td add Call dentist tomorrow 10am p2 #Personal
- td task update id:6WcqCcR4wF7XW5m6 --due tomorrow 3pm
- td task delete id:abcdef --yes