Get the FREE Ultimate OpenClaw Setup Guide →
m

Todoist

Scanned

@mattjefferson

npx machina-cli add skill @mattjefferson/todoist-td --openclaw
Files (1)
SKILL.md
2.8 KB

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.

Source

git clone https://clawhub.ai/mattjefferson/todoist-tdView on GitHub

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

  1. Step 1: Install the td Todoist CLI from the repo and verify with td --help
  2. Step 2: List tasks with JSON output, e.g., td today --json or td inbox --json
  3. 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

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers