productivity
Todoist CLI for Shell Scripts
Use the Todoist CLI for shell scripts with headless JSON commands, schema discovery, credentials, and permission controls.
21 functions 9 read 12 write Bearer token auth
Todoist CLI for Shell Scripts
Call integration functions from shell scripts with stable JSON input and output.
Use shell scripts for small local automations that need one or more integration calls. The Todoist CLI uses the same integration registry as the TUI, Lua runtime, and MCP gateway, but returns predictable command output for automation.
Command Shape
# Todoist CLI for Shell Scripts
kosmokrator integrations:configure todoist --set access_token="$TODOIST_ACCESS_TOKEN" --enable --read allow --write ask --json
kosmo integrations:call todoist.todoist_close_task '{"id":"example_id"}' --json Discovery Before Execution
Agents and scripts can inspect Todoist docs and schemas before choosing a function.
kosmo integrations:docs todoist --json
kosmo integrations:docs todoist.todoist_close_task --json
kosmo integrations:schema todoist.todoist_close_task --json
kosmo integrations:search "Todoist" --json
kosmo integrations:list --json Useful Todoist CLI Functions
| Function | Type | Parameters | Description |
|---|---|---|---|
todoist.todoist_close_task | Write | id | Mark a task as completed (close it). The task will move to the completed view. |
todoist.todoist_create_comment | Write | task_id, project_id, content | Add a comment to a Todoist task or project. Provide either task_id or project_id along with the content. |
todoist.todoist_create_project | Write | name, parent_id, color, is_favorite, view_style | Create a new project in Todoist. Projects can be nested using parent_id. |
todoist.todoist_create_section | Write | name, project_id, order | Create a new section within a Todoist project to organize tasks into groups. |
todoist.todoist_create_task | Write | content, description, project_id, section_id, parent_id, order, priority, labels, due_string, due_date, due_lang, assignee_id | Create a new task in Todoist. |
todoist.todoist_delete_project | Write | id | Permanently delete a project and all its tasks from Todoist. This action cannot be undone. |
todoist.todoist_delete_section | Write | id | Permanently delete a section from Todoist. This action cannot be undone. |
todoist.todoist_delete_task | Write | id | Permanently delete a task from Todoist. This action cannot be undone. |
todoist.todoist_get_current_user | Read | none | Get the currently authenticated Todoist user. |
todoist.todoist_get_project | Read | id | Get detailed information about a Todoist project. |
todoist.todoist_get_section | Read | id | Retrieve a single Todoist section by its ID. |
todoist.todoist_get_task | Read | id | Get detailed information about a Todoist task. |
todoist.todoist_list_comments | Read | task_id, project_id | List comments for a Todoist task or project. Provide either task_id or project_id. |
todoist.todoist_list_labels | Read | none | List all personal labels in Todoist. |
todoist.todoist_list_projects | Read | ids | List all projects in Todoist. |
todoist.todoist_list_sections | Read | project_id | List all sections, optionally filtered by a specific project ID. |
todoist.todoist_list_tasks | Read | project_id, section_id, label, filter, lang, ids | List tasks in Todoist with optional filters. |
todoist.todoist_quick_add | Write | text, note, reminder, auto_reminder | Add a task using Todoist's natural language quick-add. Examples: "Buy milk tomorrow", "Meeting with team every Monday @Work p1". |
todoist.todoist_reopen_task | Write | id | Reopen a completed task, returning it to the active task list. |
todoist.todoist_update_project | Write | id, name, color, is_favorite, view_style | Update an existing project in Todoist. Only the fields provided will be changed. |
todoist.todoist_update_task | Write | id, content, description, labels, priority, due_date | Update an existing task in Todoist. Only the fields provided will be changed. |
Automation Notes
- Use
--jsonfor machine-readable output. - Keep credentials out of argv by using environment variables or stored KosmoKrator configuration.
- Configure read/write policy before unattended runs; use
--forceonly for trusted automation. - Use the MCP gateway instead when the agent needs dynamic tool discovery inside a conversation.