mcpField
T
todoist-api

todoist-api

github.com/intellectronica生産性2981.7k 回インストール27 週間前に更新
リポジトリ

todoist-api について

todoist-api は `td` CLI で Todoist を操作するためのスキルです。タスクやプロジェクトなどの管理方法を扱い、破壊的な変更の前に確認を求めるよう定めています。

主な機能

  1. 01タスクの作成と管理
  2. 02プロジェクトとセクションの整理
  3. 03ラベル、コメント、リマインダーの管理
  4. 04タスクのフィルタリングと JSON 出力
  5. 05破壊的な操作の前に確認

活用シーン

  1. 01自然言語の日付指定でタスクを追加
  2. 02期限超過と近日のタスクを確認
  3. 03プロジェクトやラベルで作業を整理
  4. 04完了タスクやアクティビティを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/intellectronica/agent-skills --skill todoist-api

インストール後、Claude Code で/todoist-apiを入力して読み込まれたか確認します。

同梱ファイルreferences/completed-tasks.mdreferences/filters.md

詳細

Todoist CLI スキル

このスキルでは、td CLI ツールを使って Todoist を操作するための手順を説明します。

前提条件

td CLI がインストールされ、認証済みである必要があります。次のコマンドで確認します。

td auth status

td がインストールされていない場合、または認証されていない場合:

  • 未インストールの場合:npm install -g @doist/todoist-cli でインストールするようユーザーに案内します。
  • 未認証の場合:OAuth で認証するため、td auth login を実行するようユーザーに案内します。

エージェント向けの出力形式

機械可読な出力には、次のフラグを使用します。

  • --json - JSON 配列として出力します
  • --ndjson - 改行区切りの JSON として出力します(1 行につき 1 オブジェクト)
  • --full - JSON 出力にすべてのフィールドを含めます(デフォルトでは必須フィールドのみを表示)

確認要件

破壊的な操作を実行する前に、必ず AskUserQuestion または同様のツールを使ってユーザーに確認してください。 関連する一連の操作については、論理的なまとまりごとに 1 回確認すれば十分です。

破壊的な操作には、次のものが含まれます。

  • タスク、プロジェクト、セクション、ラベル、コメントの削除
  • タスクの完了
  • 既存のリソースの更新
  • プロジェクトのアーカイブ

読み取り専用の操作に確認は不要です。

クイックコマンド

コマンド説明
td add "text"自然言語解析を使ったクイック追加
td today今日が期限のタスクと期限切れのタスク
td upcoming [days]今後 N 日以内が期限のタスク(デフォルト:7)
td inboxInbox 内のタスク
td completed最近完了したタスク
クイック追加の例
td add "Buy milk tomorrow p1 #Shopping"
td add "Call dentist every monday @health"
td add "Review PR #Work /Code Review"

クイック追加パーサーは次の項目に対応しています。

  • 期限:tomorrow、next monday、Jan 15
  • 優先度:p1(緊急)から p4(通常)まで
  • プロジェクト:#ProjectName
  • セクション:/SectionName
  • ラベル:@label1 @label2

タスク

タスクの一覧表示
td task list [options]

フィルター:

  • --project <name> - プロジェクト名または id:xxx で絞り込みます
  • --label <name> - ラベルで絞り込みます(複数の場合はカンマ区切り)
  • --priority <p1-p4> - 優先度で絞り込みます
  • --due <date> - 期限で絞り込みます(today、overdue、または YYYY-MM-DD)
  • --filter <query> - Todoist のフィルタークエリを指定します
  • --assignee <ref> - 担当者で絞り込みます(me または id:xxx)
  • --workspace <name> - ワークスペースで絞り込みます
  • --personal - 個人用プロジェクトのみを対象にします

出力:

td task list --json                    # JSON array
td task list --project "Work" --json   # Filtered JSON
td task list --all --json              # All tasks (no limit)
タスクの詳細表示
td task view <ref>              # Human-readable
td task view <ref> --json       # JSON output

ref には、タスク名、一致する名前の一部、または id:xxx を指定できます。

タスクの作成

クイック追加(自然言語):

td add "Task text with #Project @label tomorrow p2"

明示的なフラグ:

td task add --content "Task text" \
  --project "Work" \
  --due "tomorrow" \
  --priority p2 \
  --labels "urgent,review" \
  --description "Additional details"

オプション:

  • --content <text> - タスクの内容(必須)
  • --due <date> - 期限(自然言語または YYYY-MM-DD)
  • --deadline <date> - 締め切り日(YYYY-MM-DD)
  • --priority <p1-p4> - 優先度
  • --project <name> - プロジェクト名または id:xxx
  • --section <id> - セクション ID
  • --labels <a,b> - カンマ区切りのラベル
  • --parent <ref> - サブタスクの親タスク
  • --description <text> - タスクの説明
  • --assignee <ref> - ユーザーを割り当てます(名前、メールアドレス、id:xxx、または "me")
  • --duration <time> - 所要時間(例:30m、1h、2h15m)
タスクの更新
td task update <ref> --content "New content" --due "next week"

オプション:

  • --content <text> - 新しい内容
  • --due <date> - 新しい期限
  • --deadline <date> - 締め切り日
  • --no-deadline - 締め切りを削除
  • --priority <p1-p4> - 新しい優先度
  • --labels <a,b> - ラベルを置き換えます
  • --description <text> - 新しい説明
  • --assignee <ref> - ユーザーを割り当てます
  • --unassign - 担当者を解除します
  • --duration <time> - 所要時間
タスクの完了
td task complete <ref>
タスクの再開
td task uncomplete id:xxx

注:未完了に戻すには、タスク ID(id:xxx 形式)が必要です。

タスクの削除
td task delete <ref>
タスクの移動
td task move <ref> --project "New Project"
td task move <ref> --section <section-id>
td task move <ref> --parent <task-ref>
ブラウザーで開く
td task browse <ref>

プロジェクト

プロジェクトの一覧表示
td project list                     # Human-readable tree
td project list --json              # JSON array
td project list --personal --json   # Personal projects only
プロジェクトの表示
td project view <ref>
td project view <ref> --json
プロジェクトの作成
td project create --name "Project Name" \
  --color "blue" \
  --parent "Parent Project" \
  --view-style board \
  --favorite

オプション:

  • --name <name> - プロジェクト名(必須)
  • --color <color> - 色名
  • --parent <ref> - ネストする親プロジェクト
  • --view-style <style> - "list" または "board"
  • --favorite - お気に入りに設定します
プロジェクトの更新
td project update <ref> --name "New Name" --color "red"
プロジェクトのアーカイブ/アーカイブ解除
td project archive <ref>
td project unarchive <ref>
プロジェクトを削除
td project delete <ref>

注:プロジェクトに未完了のタスクがないことが必要です。

コラボレーターを一覧表示
td project collaborators <ref>

セクション

セクションを一覧表示
td section list <project>           # Human-readable
td section list <project> --json    # JSON array
セクションを作成
td section create --name "Section Name" --project "Project Name"
セクションを更新
td section update <id> --name "New Name"
セクションを削除
td section delete <id>

ラベル

ラベルを一覧表示
td label list              # Human-readable
td label list --json       # JSON array
ラベルを作成
td label create --name "label-name" --color "green" --favorite
ラベルを更新
td label update <ref> --name "new-name" --color "blue"
ラベルを削除
td label delete <name>

コメント

コメントを一覧表示
td comment list <task-ref>                    # Comments on task
td comment list <project-ref> --project       # Comments on project
コメントを追加
td comment add <task-ref> --content "Comment text"
td comment add <project-ref> --project --content "Comment text"
コメントを更新
td comment update <id> --content "Updated text"
コメントを削除
td comment delete <id>

リマインダー

リマインダーを一覧表示
td reminder list <task-ref>
リマインダーを追加
td reminder add <task-ref> --due "tomorrow 9am"
リマインダーを削除
td reminder delete <id>

フィルター

保存済みフィルターを一覧表示
td filter list --json
フィルターに一致するタスクを表示
td filter show <filter-ref> --json
フィルターを作成
td filter create --name "My Filter" --query "today & p1"

完了したタスク

td completed                              # Today's completed tasks
td completed --since 2024-01-01           # Since specific date
td completed --project "Work" --json      # Filtered JSON output
td completed --all --json                 # All completed (no limit)

オプション:

  • --since <date> - 開始日(YYYY-MM-DD)、デフォルト:今日
  • --until <date> - 終了日(YYYY-MM-DD)、デフォルト:明日
  • --project <name> - プロジェクトで絞り込み

アクティビティと統計

td activity                  # Recent activity
td stats                     # Productivity stats and karma

ページネーション

大量の結果を取得するには、--all を使用してすべて取得するか、カーソルを使ってページネーションを処理してください。

# First page
result=$(td task list --json --limit 50)

# If there's a next_cursor in the response, continue
cursor=$(echo "$result" | jq -r '.[-1].id // empty')
td task list --json --limit 50 --cursor "$cursor"

参照の解決

コマンドの <ref> パラメーターには、次の値を指定できます。

  • タスク/プロジェクト/ラベル名(一部一致に対応)
  • 完全一致する ID を指定する id:xxx
  • 数値 ID(id:xxx として解釈されます)

参考情報

特定のトピックの詳細については、次を参照してください。

  • references/completed-tasks.md - API を使った完了タスク履歴の別の取得方法
  • references/filters.md - --filter フラグで使用する Todoist フィルタークエリの構文

ワークフローの概要

  1. 認証を確認する - td auth status
  2. 読み取り操作 - 確認を求めずに直接実行する
  3. 書き込み操作 - 実行前に確認を求める
  4. JSON 出力を使用する - 機械可読データを取得するには --json フラグを追加する
  5. 大規模なデータセットを処理する - --all または --cursor を使ったページネーションを使用する

コメント