Manage Todoist tasks, projects, sections, filters, and labels via the `todorust` CLI. Use when a user asks to manage their Todoist data, including creating tasks, listing projects, completing tasks, or moving tasks between sections.
Todoist CLI tool with optimized JSON output for AI agents.
cargo install --path . (from project root)todorust init --api-token YOUR_TOKEN--format json | checklist | structured# Get tasks (with optional filter)
todorust get tasks --filter "today"
# Get tasks with specific fields to save tokens
todorust get tasks --fields "id,content,priority"
# Limit results
todorust get tasks --limit 10
# Get all projects
todorust get projects
# Get all sections (optionally for a project)
todorust get sections --project-id "12345678"
Highly efficient for AI agents to perform multiple actions in one sync.
todorust batch '[
{"type": "item_add", "args": {"content": "Task 1"}},
{"type": "item_complete", "args": {"id": "12345"}}
]'
Returns JSON with the new item ID.
# Basic task
todorust add task --title "Buy milk"
# Task with description, project, due date, and priority (1-4)
todorust add task --title "Review PR" --description "Check the sync logic" --project-id "222" --due-date "tomorrow" --priority 4
# Create a project
todorust add project --name "Side Project"
# Edit a task
todorust edit task --task-id "123" --title "New Title" --priority 3
# Move a task
todorust move task --task-id "123" --project-id "456" --section-id "789"
# Complete/Reopen
todorust complete task --task-id "123"
todorust reopen task --task-id "123"
get tasks --filter)| Filter Type | Example |
|---|---|
| Keyword | todorust get tasks --filter "milk" (matches content or project) |
| Priority | todorust get tasks --filter "p:4" (1-4) |
| Status | todorust get tasks --filter "is:completed" or "active" |
json: Full JSON output (default). Mutations also return JSON.checklist: Markdown checklist (- [ ] task (Project)).structured: Markdown grouped by project with headings.# 1. Search
todorust get tasks --filter "Buy milk" --fields "id,content"
# 2. Complete using ID from JSON
todorust complete task --task-id "ID_FROM_JSON"
If a user wants to move and complete a task:
todorust batch '[
{"type": "item_move", "args": {"id": "123", "project_id": "456"}},
{"type": "item_complete", "args": {"id": "123"}}
]'