Todoist CLI Skill

v1.0.5

Manage tasks and projects in Todoist using the Official Todoist CLI tool (https://github.com/Doist/todoist-cli). Use when user asks about tasks, to-dos, remi...

1· 166·0 current·0 all-time
byFelipe Leão@leaofelipe
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (Todoist CLI) match the declared requirements: the skill needs the `td` binary and TODOIST_API_TOKEN to operate. Nothing requested (binaries, env) is unrelated to managing Todoist.
Instruction Scope
SKILL.md contains concrete td commands for tasks, projects, labels, reminders, comments, and activity. It does not instruct reading unrelated files or exfiltrating data to arbitrary endpoints; activity is limited to running the `td` CLI which communicates with Todoist using the provided token.
Install Mechanism
This is an instruction-only skill (no install spec). The README suggests installing the official npm package `@doist/todoist-cli`, which is expected and not unusual. No downloads from unknown hosts are embedded in the skill itself.
Credentials
Only TODOIST_API_TOKEN is required. That is proportional and necessary for API access. The token grants access to the user's Todoist account—normal for this integration, but worth the usual caution.
Persistence & Privilege
The skill is not always-included and uses default autonomous invocation behavior. It does not request elevated agent-wide persistence or modify other skills/configs.
Assessment
This skill is coherent and appears to do what it says: translate user requests into the official `td` CLI commands. Before installing, ensure you: (1) install the official `@doist/todoist-cli` package from npm (or otherwise obtain a trusted `td` binary); (2) only provide a Todoist API token you trust the agent with (the token grants access to your Todoist account—rotate/revoke it if needed); (3) avoid placing the token in globally readable places on shared systems; and (4) confirm you want the agent to run local binaries autonomously (the skill will execute `td` commands that interact with Todoist). If you need stricter isolation, consider creating a limited-access Todoist integration token if Todoist supports it, or run the CLI in a restricted environment.

Like a lobster shell, security has layers — review code before you run it.

latestvk97f00x99da0xqrdysf328m8q183110v

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

Clawdis
Binstd
EnvTODOIST_API_TOKEN

SKILL.md

Todoist CLI (td)

Uses the Official Todoist CLI tool for task management.

AI/LLM note (from the CLI itself): Use td task add (not td add) for structured task creation. Use --json or --ndjson for parseable output.

Installation

npm install -g @doist/todoist-cli

Setup

Get your API token at: https://todoist.com/app/settings/integrations/developer

td auth token "your-token"
# or
export TODOIST_API_TOKEN="your-token"

Viewing Tasks

td today                          # Today + overdue
td upcoming                       # Next 7 days
td upcoming 14                    # Next N days
td inbox                          # Inbox tasks
td completed                      # Completed today
td completed --since 2026-01-01   # Completed since date

Adding Tasks

Prefer td task add with structured flags for reliability:

td task add "Review PR" --due "today" --priority p1 --project "Work"
td task add "Call mom" --due "sunday" --labels "family"
td task add "Prep slides" --project "Work" --section "Q1" --order 0  # 0 = top
td task add "Subtask" --parent <ref>
td task add "Meeting" --due "tomorrow 10am" --duration 1h

Quick add (natural language, for humans — avoid in automation):

td add "Buy milk tomorrow p1 #Shopping @errands"

Listing & Viewing Tasks

td task list                          # All tasks
td task list --project "Work"         # By project
td task list --priority p1            # By priority
td task list --label "urgent"         # By label
td task list --due today              # Due today
td task list --filter "p1 & today"    # Raw Todoist filter query
td task list --json                   # JSON output
td task view <ref>                    # Task details
td view <todoist-url>                 # View any entity by URL

Managing Tasks

td task complete <ref>                # Complete task
td task complete <ref> --forever      # Complete recurring task permanently
td task uncomplete id:<id>            # Reopen task (requires id:xxx)
td task update <ref> --due "next week" --priority p2
td task update <ref> --content "New title"
td task update <ref> --labels "a,b"   # Replaces existing labels
td task move <ref> --project "Personal"
td task reschedule <ref> "next monday" # Preserves recurrence
td task delete <ref>

Projects

td project list
td project create --name "New Project"
td project view <ref>
td project update <ref> --name "Renamed"
td project archive <ref>
td project delete <ref>               # Must have no uncompleted tasks

Sections

td section list <project>
td section create --project "Work" --name "Q2"
td section update <id> --name "Renamed"
td section delete <id>

Labels

td label list
td label create --name "urgent"
td label update <ref> --name "renamed"
td label delete <name>
td label view <ref>                   # View label + its tasks

Comments

td comment list <task-ref>
td comment add <task-ref> "Note about this task"
td comment add <task-ref> --project   # Comment on project instead
td comment update <id> "Updated text"
td comment delete <id>

Reminders

td reminder list <task-ref>
td reminder add <task-ref> --due "tomorrow 9am"
td reminder update <id> --due "friday 10am"
td reminder delete <id>

Activity & Stats

td activity                           # Recent activity log
td activity --type task --event completed --since 2026-03-01
td stats                              # Karma + productivity stats

Usage Examples

User: "What do I have today?"

td today

User: "Add 'buy milk' to my tasks"

td task add "Buy milk" --due "today"

User: "Remind me to call the dentist tomorrow"

td task add "Call the dentist" --due "tomorrow"

User: "Mark the grocery task as done"

td task list --filter "search: grocery" --json   # Find ref
td task complete <ref>

User: "What's on my work project?"

td task list --project "Work"

User: "Show my high priority tasks"

td task list --priority p1

User: "What did I complete this week?"

td completed --since 2026-03-10

Notes

  • <ref> can be a task name (fuzzy match), URL, or id:xxx
  • --order 0 = top of list (differs from mjrussell's --order top)
  • Priority: p1 = highest, p4 = lowest
  • Due dates support natural language ("tomorrow", "next monday", "jan 15")
  • --json / --ndjson recommended for any programmatic parsing
  • --full adds all fields to JSON output
  • --accessible / TD_ACCESSIBLE=1 adds text labels to color-coded output (useful in non-TTY contexts)

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…