KosmoKrator

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, configure, and verify
# 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.

KeyEnv varTypeRequiredLabel
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.

Generic CLI call
kosmo integrations:call todoist.todoist_close_task '{"id":"example_id"}' --json
Provider shortcut
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.

Discovery commands
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 write
Parameters
id
Generic call
kosmo integrations:call todoist.todoist_close_task '{"id":"example_id"}' --json
Shortcut
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 write
Parameters
task_id, project_id, content
Generic call
kosmo integrations:call todoist.todoist_create_comment '{"task_id":"example_task_id","project_id":"example_project_id","content":"example_content"}' --json
Shortcut
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 write
Parameters
name, parent_id, color, is_favorite, view_style
Generic call
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
Shortcut
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 write
Parameters
name, project_id, order
Generic call
kosmo integrations:call todoist.todoist_create_section '{"name":"example_name","project_id":"example_project_id","order":1}' --json
Shortcut
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 write
Parameters
content, description, project_id, section_id, parent_id, order, priority, labels, due_string, due_date, due_lang, assignee_id
Generic call
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
Shortcut
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 write
Parameters
id
Generic call
kosmo integrations:call todoist.todoist_delete_project '{"id":"example_id"}' --json
Shortcut
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 write
Parameters
id
Generic call
kosmo integrations:call todoist.todoist_delete_section '{"id":"example_id"}' --json
Shortcut
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 write
Parameters
id
Generic call
kosmo integrations:call todoist.todoist_delete_task '{"id":"example_id"}' --json
Shortcut
kosmo integrations:todoist todoist_delete_task '{"id":"example_id"}' --json

todoist.todoist_get_current_user

Get the currently authenticated Todoist user.

Read read
Parameters
none
Generic call
kosmo integrations:call todoist.todoist_get_current_user '{}' --json
Shortcut
kosmo integrations:todoist todoist_get_current_user '{}' --json

todoist.todoist_get_project

Get detailed information about a Todoist project.

Read read
Parameters
id
Generic call
kosmo integrations:call todoist.todoist_get_project '{"id":"example_id"}' --json
Shortcut
kosmo integrations:todoist todoist_get_project '{"id":"example_id"}' --json

todoist.todoist_get_section

Retrieve a single Todoist section by its ID.

Read read
Parameters
id
Generic call
kosmo integrations:call todoist.todoist_get_section '{"id":"example_id"}' --json
Shortcut
kosmo integrations:todoist todoist_get_section '{"id":"example_id"}' --json

todoist.todoist_get_task

Get detailed information about a Todoist task.

Read read
Parameters
id
Generic call
kosmo integrations:call todoist.todoist_get_task '{"id":"example_id"}' --json
Shortcut
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 read
Parameters
task_id, project_id
Generic call
kosmo integrations:call todoist.todoist_list_comments '{"task_id":"example_task_id","project_id":"example_project_id"}' --json
Shortcut
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 read
Parameters
none
Generic call
kosmo integrations:call todoist.todoist_list_labels '{}' --json
Shortcut
kosmo integrations:todoist todoist_list_labels '{}' --json

todoist.todoist_list_projects

List all projects in Todoist.

Read read
Parameters
ids
Generic call
kosmo integrations:call todoist.todoist_list_projects '{"ids":"example_ids"}' --json
Shortcut
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 read
Parameters
project_id
Generic call
kosmo integrations:call todoist.todoist_list_sections '{"project_id":"example_project_id"}' --json
Shortcut
kosmo integrations:todoist todoist_list_sections '{"project_id":"example_project_id"}' --json

todoist.todoist_list_tasks

List tasks in Todoist with optional filters.

Read read
Parameters
project_id, section_id, label, filter, lang, ids
Generic call
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
Shortcut
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 write
Parameters
text, note, reminder, auto_reminder
Generic call
kosmo integrations:call todoist.todoist_quick_add '{"text":"example_text","note":"example_note","reminder":"example_reminder","auto_reminder":true}' --json
Shortcut
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 write
Parameters
id
Generic call
kosmo integrations:call todoist.todoist_reopen_task '{"id":"example_id"}' --json
Shortcut
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 write
Parameters
id, name, color, is_favorite, view_style
Generic call
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
Shortcut
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 write
Parameters
id, content, description, labels, priority, due_date
Generic call
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
Shortcut
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
Schema command
kosmo integrations:schema todoist.todoist_close_task --json
ParameterTypeRequiredDescription
id string yes The unique ID of the task to close.
todoist.todoist_create_comment 3 parameters
Schema command
kosmo integrations:schema todoist.todoist_create_comment --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema todoist.todoist_create_project --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema todoist.todoist_create_section --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema todoist.todoist_create_task --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema todoist.todoist_delete_project --json
ParameterTypeRequiredDescription
id string yes The unique ID of the project to delete.
todoist.todoist_delete_section 1 parameters
Schema command
kosmo integrations:schema todoist.todoist_delete_section --json
ParameterTypeRequiredDescription
id string yes The unique ID of the section to delete.
todoist.todoist_delete_task 1 parameters
Schema command
kosmo integrations:schema todoist.todoist_delete_task --json
ParameterTypeRequiredDescription
id string yes The unique ID of the task to delete.
todoist.todoist_get_current_user 0 parameters
Schema command
kosmo integrations:schema todoist.todoist_get_current_user --json
ParameterTypeRequiredDescription
No parameters.
todoist.todoist_get_project 1 parameters
Schema command
kosmo integrations:schema todoist.todoist_get_project --json
ParameterTypeRequiredDescription
id string yes The project ID.
todoist.todoist_get_section 1 parameters
Schema command
kosmo integrations:schema todoist.todoist_get_section --json
ParameterTypeRequiredDescription
id string yes The unique ID of the section to retrieve.
todoist.todoist_get_task 1 parameters
Schema command
kosmo integrations:schema todoist.todoist_get_task --json
ParameterTypeRequiredDescription
id string yes The task ID.
todoist.todoist_list_comments 2 parameters
Schema command
kosmo integrations:schema todoist.todoist_list_comments --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema todoist.todoist_list_labels --json
ParameterTypeRequiredDescription
No parameters.
todoist.todoist_list_projects 1 parameters
Schema command
kosmo integrations:schema todoist.todoist_list_projects --json
ParameterTypeRequiredDescription
ids array no Array of project IDs to fetch.
todoist.todoist_list_sections 1 parameters
Schema command
kosmo integrations:schema todoist.todoist_list_sections --json
ParameterTypeRequiredDescription
project_id string no Filter sections by project ID.
todoist.todoist_list_tasks 6 parameters
Schema command
kosmo integrations:schema todoist.todoist_list_tasks --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema todoist.todoist_quick_add --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema todoist.todoist_reopen_task --json
ParameterTypeRequiredDescription
id string yes The unique ID of the task to reopen.
todoist.todoist_update_project 5 parameters
Schema command
kosmo integrations:schema todoist.todoist_update_project --json
ParameterTypeRequiredDescription
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
Schema command
kosmo integrations:schema todoist.todoist_update_task --json
ParameterTypeRequiredDescription
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.