productivity
Todoist CLI for AI Agents
Use the Todoist CLI from KosmoKrator to call Todoist tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Todoist CLI Setup
Todoist can be configured headlessly with `kosmokrator integrations:configure todoist`.
# Install KosmoKrator first if it is not available on PATH.
curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash
# Configure and verify this integration.
kosmokrator integrations:configure todoist --set access_token="$TODOIST_ACCESS_TOKEN" --enable --read allow --write ask --json
kosmokrator integrations:doctor todoist --json
kosmokrator integrations:status --json Credentials
Authentication type: Bearer token bearer_token. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
access_token | TODOIST_ACCESS_TOKEN | Secret secret | yes | API Token |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call todoist.todoist_close_task '{"id":"example_id"}' --json kosmo integrations:todoist todoist_close_task '{"id":"example_id"}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities 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 Automation Contexts
The same configured command surface works in these environments. The command does not change unless the host wrapper, credentials, or permissions change.
CLI Functions
Every function below can be called headlessly. Commands are highlighted, copyable, and scroll horizontally when payloads are long.
todoist.todoist_close_task
Mark a task as completed (close it). The task will move to the completed view.
write - Parameters
- id
kosmo integrations:call todoist.todoist_close_task '{"id":"example_id"}' --json kosmo integrations:todoist todoist_close_task '{"id":"example_id"}' --json todoist.todoist_create_comment
Add a comment to a Todoist task or project. Provide either task_id or project_id along with the content.
write - Parameters
- task_id, project_id, content
kosmo integrations:call todoist.todoist_create_comment '{"task_id":"example_task_id","project_id":"example_project_id","content":"example_content"}' --json kosmo integrations:todoist todoist_create_comment '{"task_id":"example_task_id","project_id":"example_project_id","content":"example_content"}' --json todoist.todoist_create_project
Create a new project in Todoist. Projects can be nested using parent_id.
write - Parameters
- name, parent_id, color, is_favorite, view_style
kosmo integrations:call todoist.todoist_create_project '{"name":"example_name","parent_id":"example_parent_id","color":"example_color","is_favorite":true,"view_style":"example_view_style"}' --json kosmo integrations:todoist todoist_create_project '{"name":"example_name","parent_id":"example_parent_id","color":"example_color","is_favorite":true,"view_style":"example_view_style"}' --json todoist.todoist_create_section
Create a new section within a Todoist project to organize tasks into groups.
write - Parameters
- name, project_id, order
kosmo integrations:call todoist.todoist_create_section '{"name":"example_name","project_id":"example_project_id","order":1}' --json kosmo integrations:todoist todoist_create_section '{"name":"example_name","project_id":"example_project_id","order":1}' --json todoist.todoist_create_task
Create a new task in Todoist.
write - Parameters
- content, description, project_id, section_id, parent_id, order, priority, labels, due_string, due_date, due_lang, assignee_id
kosmo integrations:call todoist.todoist_create_task '{"content":"example_content","description":"example_description","project_id":"example_project_id","section_id":"example_section_id","parent_id":"example_parent_id","order":1,"priority":1,"labels":"example_labels"}' --json kosmo integrations:todoist todoist_create_task '{"content":"example_content","description":"example_description","project_id":"example_project_id","section_id":"example_section_id","parent_id":"example_parent_id","order":1,"priority":1,"labels":"example_labels"}' --json todoist.todoist_delete_project
Permanently delete a project and all its tasks from Todoist. This action cannot be undone.
write - Parameters
- id
kosmo integrations:call todoist.todoist_delete_project '{"id":"example_id"}' --json kosmo integrations:todoist todoist_delete_project '{"id":"example_id"}' --json todoist.todoist_delete_section
Permanently delete a section from Todoist. This action cannot be undone.
write - Parameters
- id
kosmo integrations:call todoist.todoist_delete_section '{"id":"example_id"}' --json kosmo integrations:todoist todoist_delete_section '{"id":"example_id"}' --json todoist.todoist_delete_task
Permanently delete a task from Todoist. This action cannot be undone.
write - Parameters
- id
kosmo integrations:call todoist.todoist_delete_task '{"id":"example_id"}' --json kosmo integrations:todoist todoist_delete_task '{"id":"example_id"}' --json todoist.todoist_get_current_user
Get the currently authenticated Todoist user.
read - Parameters
- none
kosmo integrations:call todoist.todoist_get_current_user '{}' --json kosmo integrations:todoist todoist_get_current_user '{}' --json todoist.todoist_get_project
Get detailed information about a Todoist project.
read - Parameters
- id
kosmo integrations:call todoist.todoist_get_project '{"id":"example_id"}' --json kosmo integrations:todoist todoist_get_project '{"id":"example_id"}' --json todoist.todoist_get_section
Retrieve a single Todoist section by its ID.
read - Parameters
- id
kosmo integrations:call todoist.todoist_get_section '{"id":"example_id"}' --json kosmo integrations:todoist todoist_get_section '{"id":"example_id"}' --json todoist.todoist_get_task
Get detailed information about a Todoist task.
read - Parameters
- id
kosmo integrations:call todoist.todoist_get_task '{"id":"example_id"}' --json kosmo integrations:todoist todoist_get_task '{"id":"example_id"}' --json todoist.todoist_list_comments
List comments for a Todoist task or project. Provide either task_id or project_id.
read - Parameters
- task_id, project_id
kosmo integrations:call todoist.todoist_list_comments '{"task_id":"example_task_id","project_id":"example_project_id"}' --json kosmo integrations:todoist todoist_list_comments '{"task_id":"example_task_id","project_id":"example_project_id"}' --json todoist.todoist_list_labels
List all personal labels in Todoist.
read - Parameters
- none
kosmo integrations:call todoist.todoist_list_labels '{}' --json kosmo integrations:todoist todoist_list_labels '{}' --json todoist.todoist_list_projects
List all projects in Todoist.
read - Parameters
- ids
kosmo integrations:call todoist.todoist_list_projects '{"ids":"example_ids"}' --json kosmo integrations:todoist todoist_list_projects '{"ids":"example_ids"}' --json todoist.todoist_list_sections
List all sections, optionally filtered by a specific project ID.
read - Parameters
- project_id
kosmo integrations:call todoist.todoist_list_sections '{"project_id":"example_project_id"}' --json kosmo integrations:todoist todoist_list_sections '{"project_id":"example_project_id"}' --json todoist.todoist_list_tasks
List tasks in Todoist with optional filters.
read - Parameters
- project_id, section_id, label, filter, lang, ids
kosmo integrations:call todoist.todoist_list_tasks '{"project_id":"example_project_id","section_id":"example_section_id","label":"example_label","filter":"example_filter","lang":"example_lang","ids":"example_ids"}' --json kosmo integrations:todoist todoist_list_tasks '{"project_id":"example_project_id","section_id":"example_section_id","label":"example_label","filter":"example_filter","lang":"example_lang","ids":"example_ids"}' --json todoist.todoist_quick_add
Add a task using Todoist's natural language quick-add. Examples: "Buy milk tomorrow", "Meeting with team every Monday @Work p1".
write - Parameters
- text, note, reminder, auto_reminder
kosmo integrations:call todoist.todoist_quick_add '{"text":"example_text","note":"example_note","reminder":"example_reminder","auto_reminder":true}' --json kosmo integrations:todoist todoist_quick_add '{"text":"example_text","note":"example_note","reminder":"example_reminder","auto_reminder":true}' --json todoist.todoist_reopen_task
Reopen a completed task, returning it to the active task list.
write - Parameters
- id
kosmo integrations:call todoist.todoist_reopen_task '{"id":"example_id"}' --json kosmo integrations:todoist todoist_reopen_task '{"id":"example_id"}' --json todoist.todoist_update_project
Update an existing project in Todoist. Only the fields provided will be changed.
write - Parameters
- id, name, color, is_favorite, view_style
kosmo integrations:call todoist.todoist_update_project '{"id":"example_id","name":"example_name","color":"example_color","is_favorite":true,"view_style":"example_view_style"}' --json kosmo integrations:todoist todoist_update_project '{"id":"example_id","name":"example_name","color":"example_color","is_favorite":true,"view_style":"example_view_style"}' --json todoist.todoist_update_task
Update an existing task in Todoist. Only the fields provided will be changed.
write - Parameters
- id, content, description, labels, priority, due_date
kosmo integrations:call todoist.todoist_update_task '{"id":"example_id","content":"example_content","description":"example_description","labels":"example_labels","priority":1,"due_date":"example_due_date"}' --json kosmo integrations:todoist todoist_update_task '{"id":"example_id","content":"example_content","description":"example_description","labels":"example_labels","priority":1,"due_date":"example_due_date"}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
todoist.todoist_close_task 1 parameters
kosmo integrations:schema todoist.todoist_close_task --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique ID of the task to close. |
todoist.todoist_create_comment 3 parameters
kosmo integrations:schema todoist.todoist_create_comment --json | Parameter | Type | Required | Description |
|---|---|---|---|
task_id | string | no | ID of the task to comment on (use this or project_id). |
project_id | string | no | ID of the project to comment on (use this or task_id). |
content | string | yes | The comment text. |
todoist.todoist_create_project 5 parameters
kosmo integrations:schema todoist.todoist_create_project --json | Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Name of the project. |
parent_id | string | no | ID of the parent project for nesting. |
color | string | no | Color ID or name for the project. |
is_favorite | boolean | no | Whether to mark the project as favorite. |
view_style | string | no | View style: "list" or "board". |
todoist.todoist_create_section 3 parameters
kosmo integrations:schema todoist.todoist_create_section --json | Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Name of the section. |
project_id | string | yes | ID of the project to create the section in. |
order | integer | no | Position of the section within the project (1-based). |
todoist.todoist_create_task 12 parameters
kosmo integrations:schema todoist.todoist_create_task --json | Parameter | Type | Required | Description |
|---|---|---|---|
content | string | yes | Text content of the task. |
description | string | no | Detailed description of the task (supports Markdown). |
project_id | string | no | Project ID to add the task to. |
section_id | string | no | Section ID to add the task to. |
parent_id | string | no | Parent task ID for creating a subtask. |
order | integer | no | Position among siblings or in the project. |
priority | integer | no | Priority level (1=normal, 2=medium, 3=high, 4=urgent). |
labels | array | no | Array of label names to assign. |
due_string | string | no | Human-readable due date (e.g. "every first Monday", "tomorrow"). |
due_date | string | no | Due date in YYYY-MM-DD format. |
due_lang | string | no | Language for due_string parsing (e.g. "en"). |
assignee_id | string | no | User ID to assign the task to. |
todoist.todoist_delete_project 1 parameters
kosmo integrations:schema todoist.todoist_delete_project --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique ID of the project to delete. |
todoist.todoist_delete_section 1 parameters
kosmo integrations:schema todoist.todoist_delete_section --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique ID of the section to delete. |
todoist.todoist_delete_task 1 parameters
kosmo integrations:schema todoist.todoist_delete_task --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique ID of the task to delete. |
todoist.todoist_get_current_user 0 parameters
kosmo integrations:schema todoist.todoist_get_current_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
todoist.todoist_get_project 1 parameters
kosmo integrations:schema todoist.todoist_get_project --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The project ID. |
todoist.todoist_get_section 1 parameters
kosmo integrations:schema todoist.todoist_get_section --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique ID of the section to retrieve. |
todoist.todoist_get_task 1 parameters
kosmo integrations:schema todoist.todoist_get_task --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The task ID. |
todoist.todoist_list_comments 2 parameters
kosmo integrations:schema todoist.todoist_list_comments --json | Parameter | Type | Required | Description |
|---|---|---|---|
task_id | string | no | ID of the task to list comments for. |
project_id | string | no | ID of the project to list comments for. |
todoist.todoist_list_labels 0 parameters
kosmo integrations:schema todoist.todoist_list_labels --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
todoist.todoist_list_projects 1 parameters
kosmo integrations:schema todoist.todoist_list_projects --json | Parameter | Type | Required | Description |
|---|---|---|---|
ids | array | no | Array of project IDs to fetch. |
todoist.todoist_list_sections 1 parameters
kosmo integrations:schema todoist.todoist_list_sections --json | Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | no | Filter sections by project ID. |
todoist.todoist_list_tasks 6 parameters
kosmo integrations:schema todoist.todoist_list_tasks --json | Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | no | Filter tasks by project ID. |
section_id | string | no | Filter tasks by section ID. |
label | string | no | Filter tasks by label name. |
filter | string | no | Todoist filter expression (e.g. "today", "p1 & @email"). |
lang | string | no | Language for filter evaluation (e.g. "en"). |
ids | array | no | Array of task IDs to fetch. |
todoist.todoist_quick_add 4 parameters
kosmo integrations:schema todoist.todoist_quick_add --json | Parameter | Type | Required | Description |
|---|---|---|---|
text | string | yes | Natural language task text (e.g., "Buy milk tomorrow @Groceries"). |
note | string | no | Note to attach to the task. |
reminder | string | no | Reminder in natural language (e.g., "30 minutes before"). |
auto_reminder | boolean | no | Whether to add an automatic reminder. |
todoist.todoist_reopen_task 1 parameters
kosmo integrations:schema todoist.todoist_reopen_task --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique ID of the task to reopen. |
todoist.todoist_update_project 5 parameters
kosmo integrations:schema todoist.todoist_update_project --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique ID of the project to update. |
name | string | no | New name for the project. |
color | string | no | New color ID or name. |
is_favorite | boolean | no | Whether the project is a favorite. |
view_style | string | no | View style: "list" or "board". |
todoist.todoist_update_task 6 parameters
kosmo integrations:schema todoist.todoist_update_task --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique ID of the task to update. |
content | string | no | New task content/title. |
description | string | no | New task description. |
labels | array | no | List of label names to assign. |
priority | integer | no | Task priority: 1=normal, 2=medium, 3=high, 4=urgent. |
due_date | string | no | Due date in YYYY-MM-DD format. |
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults with
integrations:configure. Add --force only for trusted automation that should bypass that policy.