Manage your Todoist from the terminal. Pretty tables when you're at the keyboard, structured JSON when your scripts and AI agents are driving.
pip install git+https://github.com/craigmccaskill/todoist-cli.git
td init
td completions installRequires Python 3.10+.
td # what needs your attention (today + overdue)
td tomorrow # plan ahead
td upcoming # next 7 days
td overdue # just the overdue piletd add call dentist tomorrow
td add review Q3 roadmap draft Friday p1
td add buy birthday present for mom this weekendNo flags needed. Todoist's NLP parses dates, priorities, and projects from natural language. When you need precision:
td add "Deploy v2.1" --project Releases --priority 1 --due 2026-04-15Row numbers from td work everywhere. No IDs to copy.
td done 2 # complete task #2
td done 2 4 5 # batch complete
td done buy milk # fuzzy match by nameMade a mistake? td undo 2.
td project add "Q3 Planning"
td section add "In Progress" -p Work
td label add urgent
td comment 2 "Picked up 2%, not whole"Each entity group has add, edit, delete, and list. The flat
shortcuts you'd expect work too: td projects, td sections, td labels.
td focus Work # just Work's tasks
td overdue Work # overdue in Work only
td completed Work 7d # what you finished this weektd tells you what happened and what to try:
Error: Task "ljasdf" not found.
Suggestion: Use a row number from `td ls`, a task name, or a task ID.
Ambiguous match? td asks you to pick. No arguments? td launches a picker.
td doctorOne command to verify Python, config, auth, and connectivity.
# ~/.config/td/config.toml
[settings]
default_command = "today" # what `td` with no args runs
default_sort = "due" # priority, due, project, created
cache_ttl_results = 300 # how long row numbers stay validOutput adapts automatically. Pipe td and you get JSON:
td ls | jq '.data[].content'Agents can self-discover everything:
td schema # full command manifest as JSON
td skill install # install command reference for Claude CodeIdempotent operations, structured error codes, --json and --plain flags
on every command. See the examples guide for more.
Run td --help or see the documentation site.
See CONTRIBUTING.md for development setup and guidelines.
