Skip to main content

todoist-api

Manages Todoist tasks, projects, sections, labels, comments, completed-task reports, activity logs, ID migration, project templates, and sync workflows through Todoist API v1. Use when the user asks to capture tasks, quick-add work, triage an inbox, resolve Todoist names to IDs, bulk-close or move tasks, add repeated comments, review completed work, manage project structure, export templates, or automate Todoist workflows.

Ir a la instalación

Datos de origen

Repositorio
tristanmanchester/agent-skills
Última actividad en el origen
5 de marzo de 2026 a las 11:06
Idioma detectado de SKILL.md
inglés
Estrellas
3
Forks
2

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
9 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
todoist-api
description
Manages Todoist tasks, projects, sections, labels, comments, completed-task reports, activity logs, ID migration, project templates, and sync workflows through Todoist API v1. Use when the user asks to capture tasks, quick-add work, triage an inbox, resolve Todoist names to IDs, bulk-close or move tasks, add repeated comments, review completed work, manage project structure, export templates, or automate Todoist workflows.
license
MIT. See LICENSE.txt
compatibility
Requires HTTPS access to api.todoist.com plus Python 3.9+ or curl. Write operations require a Todoist API token or OAuth access token.
metadata
{"author":"OpenAI","version":"2.0.0","todoist_api":"v1","last_reviewed":"2026-03-05"}
# Todoist API ## When to use this skill Use this skill when work involves **Todoist data or automation**, especially: - capture or quick-add new tasks - inspect, filter, move, complete, reopen, or delete tasks - manage projects, sections, labels, or comments - resolve human names to Todoist IDs before writing - perform safer bulk edits with dry-runs - review completed work or recent activity - build Todoist scripts, agents, or integrations around the public API ## When not to use this skill Do **not** use this skill for: - editing the user’s local Todoist app UI directly - calendar-specific workflows that belong in a calendar skill - attachment upload flows that require multipart handling unless you are prepared to use `curl` or the `raw` escape hatch - non-Todoist task systems ## Safety defaults - Start **read-only** if the user’s intent is ambiguous. - Resolve names to IDs before any write. - Prefer **close** over **delete** unless the user explicitly wants permanent removal. - Run `--dry-run` first for bulk or destructive work. - Use `--confirm` for bulk closes, moves, repeated comments, and deletes. - If a command may return a large payload, set `--output FILE` so stdout stays small and predictable. ## Pick the smallest capable surface - **One object, one endpoint** → use a low-level REST wrapper such as `get-task`, `update-project`, or `get-comment`. - **Natural-language capture** → use `quick-add-task`. - **Resolve names safely** → use `resolve-project`, `resolve-section`, `resolve-label`. - **Create if missing** → use `ensure-project`, `ensure-section`, `ensure-label`. - **Many matching tasks** → use `bulk-close-tasks`, `bulk-move-tasks`, `bulk-comment-tasks`. - **Completed-work review** → use `report-completed` or `get-completed-tasks`. - **Full or incremental sync / batched writes** → use `sync`. - **Unwrapped or niche endpoint** → use `raw`. ## Output contract The main script prints structured output to stdout by default. - `--format json` returns a stable JSON envelope with fields like `action`, `ok`, `count`, `next_cursor`, `matched_count`, `changed_count`, and `resolved`. - `--format summary` returns a smaller human-readable summary. - `--output FILE` writes the full output to a file and prints a small JSON notice to stdout. This is designed for agent pipelines: stdout stays parseable, stderr carries diagnostics, and retries are built in for transient failures. ## Scripts - **`scripts/todoist_api.py`** — main non-interactive Todoist CLI - **`scripts/smoke_test.py`** — read-only connectivity check Inspect help first: ```bash python3 scripts/todoist_api.py --help python3 scripts/todoist_api.py get-tasks-by-filter --help python3 scripts/todoist_api.py bulk-move-tasks --help python3 scripts/smoke_test.py --help ``` ## Quick start Set a token: ```bash export TODOIST_API_TOKEN="YOUR_TODOIST_TOKEN" ``` Read-only smoke test: ```bash python3 scripts/smoke_test.py ``` Sanity-check access: ```bash python3 scripts/todoist_api.py get-projects --limit 5 python3 scripts/todoist_api.py get-labels --limit 10 ``` Resolve names before writes: ```bash python3 scripts/todoist_api.py resolve-project --name "Inbox" python3 scripts/todoist_api.py resolve-section --project-name "Client Alpha" --name "Next Actions" python3 scripts/todoist_api.py resolve-label --name "waiting-on" ``` ## High-value agent workflows ### Quick add ```bash python3 scripts/todoist_api.py quick-add-task \ --text "Email Chris tomorrow at 09:00 #Work @follow-up p2" ``` ### Create-if-missing section ```bash python3 scripts/todoist_api.py ensure-section \ --project-name "Client Alpha" \ --name "Next Actions" ``` ### Preview a bulk close ```bash python3 scripts/todoist_api.py bulk-close-tasks \ --filter "overdue & @errands" \ --dry-run ``` ### Execute the same bulk close ```bash python3 scripts/todoist_api.py bulk-close-tasks \ --filter "overdue & @errands" \ --confirm ``` ### Move matching tasks into a resolved section ```bash python3 scripts/todoist_api.py bulk-move-tasks \ --filter "#Inbox & !recurring" \ --target-project-name "Work" \ --target-section-name "Next Actions" \ --dry-run ``` ### Report completed work ```bash python3 scripts/todoist_api.py report-completed \ --since "2026-03-01T00:00:00Z" \ --until "2026-03-31T23:59:59Z" \ --by completion \ --output reports/march-completed.json ``` ## Recommended operating pattern 1. **Resolve or list** the target object. 2. **Read current state** with a low-level getter. 3. **Preview** the write with `--dry-run`. 4. **Execute** with `--confirm` when needed. 5. **Verify** by re-reading or by running a report command. ## Feature index - **Command catalogue and endpoint coverage** → [references/REFERENCE.md](references/REFERENCE.md) - **Task-first recipes** → [references/RECIPES.md](references/RECIPES.md) - **Todoist-specific caveats** → [references/GOTCHAS.md](references/GOTCHAS.md) ## Escape hatches Use `raw` when the public CLI surface does not yet wrap a needed endpoint: ```bash python3 scripts/todoist_api.py raw \ --method GET \ --path /projects/PROJECT_ID/full ``` Use `sync` when you need incremental sync or batched commands: ```bash python3 scripts/todoist_api.py sync \ --sync-token '*' \ --resource-types '["all"]' ```
Ver en GitHub