Skills todoist

Manage Todoist tasks, projects, labels, and comments via the todoist CLI wrapper. Use when a user asks to add tasks, list todos, complete items, manage projects, or interact with their Todoist account.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/andreisuslov/todoist-manager" ~/.claude/skills/openclaw-skills-todoist-441f82 && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/andreisuslov/todoist-manager" ~/.openclaw/skills/openclaw-skills-todoist-441f82 && rm -rf "$T"
manifest: skills/andreisuslov/todoist-manager/SKILL.md
source content

Todoist CLI

Manage Todoist via the REST API v2.

Setup

  1. Get API token: Todoist → Settings → Integrations → Developer → API token
  2. Set environment variable:
    export TODOIST_API_TOKEN="your_token_here"
    
  3. Make CLI executable:
    chmod +x ~/clawd/skills/todoist/scripts/todoist
    

CLI Location

~/clawd/skills/todoist/scripts/todoist

Quick Reference

Tasks

# List all tasks
todoist tasks

# List with filter
todoist tasks --filter "today"
todoist tasks --filter "overdue"
todoist tasks --filter "#Work"
todoist tasks --project PROJECT_ID

# Quick views
todoist today
todoist overdue
todoist upcoming

# Get single task
todoist task TASK_ID

# Add task
todoist add "Buy groceries"
todoist add "Call mom" --due tomorrow
todoist add "Meeting prep" --due "today 3pm" --priority 4
todoist add "Review PR" --project PROJECT_ID --labels "work,urgent"
todoist add "Write docs" --description "Include examples"

# Update task
todoist update TASK_ID --content "New title"
todoist update TASK_ID --due "next monday"
todoist update TASK_ID --priority 3

# Complete / reopen / delete
todoist complete TASK_ID
todoist reopen TASK_ID
todoist delete-task TASK_ID

Projects

# List projects
todoist projects

# Get project
todoist project PROJECT_ID

# Create project
todoist add-project "Work"
todoist add-project "Personal" --color blue --favorite

# Update project
todoist update-project PROJECT_ID --name "New Name"
todoist update-project PROJECT_ID --color red

# Delete project
todoist delete-project PROJECT_ID

Sections

# List sections
todoist sections
todoist sections PROJECT_ID

# Create section
todoist add-section --name "In Progress" --project PROJECT_ID

# Delete section
todoist delete-section SECTION_ID

Labels

# List labels
todoist labels

# Create label
todoist add-label "urgent"
todoist add-label "blocked" --color red

# Delete label
todoist delete-label LABEL_ID

Comments

# List comments
todoist comments --task TASK_ID
todoist comments --project PROJECT_ID

# Add comment
todoist add-comment "Need more info" --task TASK_ID

# Delete comment
todoist delete-comment COMMENT_ID

Filter Syntax

Todoist supports powerful filter queries:

FilterDescription
today
Due today
tomorrow
Due tomorrow
overdue
Past due
7 days
Due in next 7 days
no date
No due date
#ProjectName
In specific project
@label
Has label
p1
,
p2
,
p3
,
p4
Priority level
assigned to: me
Assigned to you
created: today
Created today

Combine with

&
(and) or
|
(or):

todoist tasks --filter "today & #Work"
todoist tasks --filter "overdue | p1"

Due Date Strings

Natural language due dates:

  • today
    ,
    tomorrow
    ,
    yesterday
  • next monday
    ,
    next week
  • in 3 days
  • every day
    ,
    every weekday
  • every monday at 9am
  • Jan 15
    ,
    2026-01-20
  • today at 3pm

Priority Levels

ValueMeaning
1Normal (default)
2Medium
3High
4Urgent

Output

All commands return JSON. Pipe to

jq
for formatting:

todoist tasks | jq '.[] | {id, content, due: .due.string}'
todoist today | jq -r '.[].content'

Notes

  • Requires
    curl
    and
    jq
  • All output is JSON for easy scripting
  • Task IDs are numeric strings (e.g., "8765432109")
  • Project IDs are also numeric strings