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.

インストールへ移動

ソース情報

リポジトリ
tristanmanchester/agent-skills
ソースの最終更新活動
2026年3月5日 11:06
検出された SKILL.md の言語
英語
スター
3
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
9 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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"]' ```
GitHubで見る