todoist-rs について
Todoist REST API を通じて Todoist を管理する Rust クライアントスキルです。タスクやプロジェクトの操作、フィルター、リマインダー、ラベル、活動統計を扱い、タスク管理の自動化に使えます。
主な機能
- 01タスクの作成・取得・更新・削除
- 02プロジェクトとラベルの管理
- 03フィルターによるタスク検索
- 04期限とリマインダーの設定
- 05Karma と活動統計の取得
活用シーン
- 01依頼に応じたタスクの追加
- 02定期的な期限超過タスクの確認
- 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 などの入力値を検証してください。
具体的な使用例
- ラベル付きでタスクを追加:ユーザーが「買い物のタスクを追加して」と言った場合、このスキルを使って「Shopping」プロジェクトにタスクを作成します。クライアントを初期化し、
client.add_task("Buy groceries", Some("Shopping")).awaitを呼び出してから、ユーザーに確認します。 - 期限切れのタスクを検索:毎日のリマインダーとして、期限切れのタスクを取得します。
client.get_tasks(&[("filter", "overdue")]).awaitを使い、結果をループしてタスクの詳細をユーザーに通知します。
グラフ上の関係
- 関連:生産性(例:GTD スキル)、タスク管理(例:他の ToDo アプリ)、API クライアント(例:REST API ラッパー)。
- 接続先:自動化のための IFTTT/Zapier 統合、コラボレーションツール向けのコミュニティクラスターのスキル。