mcpField
T
todoist-rs

todoist-rs

github.com/alphaonedev生産性42 回インストール
リポジトリ

todoist-rs について

Todoist REST API を通じて Todoist を管理する Rust クライアントスキルです。タスクやプロジェクトの操作、フィルター、リマインダー、ラベル、活動統計を扱い、タスク管理の自動化に使えます。

主な機能

  1. 01タスクの作成・取得・更新・削除
  2. 02プロジェクトとラベルの管理
  3. 03フィルターによるタスク検索
  4. 04期限とリマインダーの設定
  5. 05Karma と活動統計の取得

活用シーン

  1. 01依頼に応じたタスクの追加
  2. 02定期的な期限超過タスクの確認
  3. 03Todoist プロジェクトと他ツールの同期

インストール

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

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill todoist-rs

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

詳細

todoist-rs

目的

このスキルを使うと、Rust ベースのクライアントを介して Todoist API を操作し、タスク、プロジェクト、ラベル、フィルター、リマインダー、カルマをプログラムから管理できます。Todoist の REST API と統合することで、生産性向上のワークフローを自動化できます。

使用するタイミング

ユーザーの問い合わせに応じたタスクの追加、他のツールとのプロジェクトの同期、API 呼び出しによるリマインダーの処理など、GTD に基づくタスク管理にこのスキルを使用します。毎日のタスク確認や、生産性アプリ向けの IFTTT/Zapier トリガーなど、自動化が必要な場面で活用してください。

主な機能

  • タスクの CRUD 操作:Todoist の API エンドポイントを使って、タスクの作成、読み取り、更新、削除を行います。
  • プロジェクトとラベルの管理:プロジェクトの追加、名前変更、アーカイブや、タスクへのラベルの割り当てを行います。
  • フィルターとリマインダーの処理:カスタムフィルターを使ってタスクを検索し、期限とリマインダーを設定します。
  • カルマと生産性統計へのアクセス:ユーザーのカルマスコアやアクティビティログを取得します。
  • API 統合:Todoist の API をイベントトリガーに利用し、Webhook 経由で IFTTT/Zapier に対応します。

使用パターン

環境変数から取得した API キーを使って Todoist クライアントを初期化し、メソッド呼び出しを連結して操作を行います。必ず最初に認証を処理してください。CLI で使う場合は Rust ライブラリをスクリプトでラップし、コードで使う場合はクレートをインポートして非同期メソッドを使用します。タスクの内容やプロジェクト ID などのパラメーターは、関数呼び出しに直接渡します。本番環境でレート制限に達しないよう、開発環境でテストしてください。

一般的なコマンド/API

todoist-rs クレートを介して Todoist API のエンドポイントを使用します。API キーは $TODOIST_API_KEY で設定します。コードの例:

  • タスクを追加:

    use todoist::Todoist;
    let client = Todoist::new(std::env::var("TODOIST_API_KEY").unwrap());
    client.add_task("Buy milk", Some("Shopping")).await;
    
  • フィルターを指定してタスクを取得:

    let tasks = client.get_tasks(&[("filter", "overdue")]).await.unwrap();
    for task in tasks { println!("{}", task.content); }
    
  • プロジェクトを更新: PUT /projects/{id} エンドポイントを使用します。コードでは次のように記述します:

    client.update_project(123, "New Project Name").await;
    
  • 一般的な CLI フラグ(ツールでラップする場合):--api-key $TODOIST_API_KEY --project-id 123 --task "Do something"。

  • 設定形式:API キーを .env ファイルに TODOIST_API_KEY=your_token として保存し、std::env::var で読み込みます。

統合に関する注意事項

Todoist の API イベント(新しいタスクの作成など)に対する Webhook を設定して、IFTTT/Zapier と統合します。このスキルの API 呼び出しを使ってアクションをトリガーします。IFTTT の場合は POST /tasks を指定し、Zapier の場合は、このスキルのメソッドを使って Zapier の Todoist アプリを利用します。タスク ID などのデータは JSON ペイロードで渡します。API キーは環境変数で安全に管理し、サンプルイベントを使って統合をテストし、データの流れを確認してください。

エラー処理

リクエストの前に $TODOIST_API_KEY を確認し、401(認証エラー)などの API エラーに対処します。コードでは指数バックオフを使って、レート制限(429 ステータスなど)に対応します。エラーを伝播するには Rust の Result 型を使用します:

match client.add_task("Task", None).await {
    Ok(_) => println!("Success"),
    Err(e) => eprintln!("Error: {}", e),
}

詳細なエラー(ネットワーク障害など)を記録し、一時的な問題が発生した場合は再試行します。404 エラーを防ぐため、プロジェクト ID などの入力値を検証してください。

具体的な使用例

  1. ラベル付きでタスクを追加:ユーザーが「買い物のタスクを追加して」と言った場合、このスキルを使って「Shopping」プロジェクトにタスクを作成します。クライアントを初期化し、client.add_task("Buy groceries", Some("Shopping")).await を呼び出してから、ユーザーに確認します。
  2. 期限切れのタスクを検索:毎日のリマインダーとして、期限切れのタスクを取得します。client.get_tasks(&[("filter", "overdue")]).await を使い、結果をループしてタスクの詳細をユーザーに通知します。

グラフ上の関係

  • 関連:生産性(例:GTD スキル)、タスク管理(例:他の ToDo アプリ)、API クライアント(例:REST API ラッパー)。
  • 接続先:自動化のための IFTTT/Zapier 統合、コラボレーションツール向けのコミュニティクラスターのスキル。

コメント