jpskill.com
📦 その他 コミュニティ

todoist-rs

Todoist: tasks, projects, labels, filters, reminders, Karma, API, IFTTT/Zapier integration

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o todoist-rs.zip https://jpskill.com/download/22153.zip && unzip -o todoist-rs.zip && rm todoist-rs.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/22153.zip -OutFile "$d\todoist-rs.zip"; Expand-Archive "$d\todoist-rs.zip" -DestinationPath $d -Force; ri "$d\todoist-rs.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して todoist-rs.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → todoist-rs フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

todoist-rs

目的

このスキルは、Rustベースのクライアントを介してTodoist APIとの対話を可能にし、タスク、プロジェクト、ラベル、フィルター、リマインダー、およびKarmaのプログラムによる管理を可能にします。TodoistのREST APIと統合することで、生産性ワークフローを自動化するために使用します。

使用する場面

このスキルは、ユーザーのクエリに応答してタスクを追加したり、プロジェクトを他のツールと同期したり、API呼び出しを介してリマインダーを処理したりするなど、GTDベースのタスク管理に使用します。日々のタスクレビューや、生産性向上アプリのIFTTT/Zapierトリガーなど、自動化が必要なシナリオに適用してください。

主な機能

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

使用パターン

環境変数からAPIキーを使用してTodoistクライアントを初期化し、その後メソッド呼び出しをチェーンして操作を行います。常に認証を最初に行ってください。CLIでの使用には、Rustライブラリをスクリプトでラップします。コードでは、クレートをインポートし、asyncメソッドを使用します。タスクの内容やプロジェクト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を使用し、結果をループして、タスクの詳細をユーザーに通知します。

グラフの関係

  • 関連:productivity(例:gtd skills)、task-management(例:他のtodo apps)、api-clients(例:rest-api wrappers)。
  • 接続先:自動化のためのIFTTT/Zapier連携、共同作業ツール用のcommunity cluster skills。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

todoist-rs

Purpose

This skill enables interaction with the Todoist API via a Rust-based client, allowing programmatic management of tasks, projects, labels, filters, reminders, and Karma. Use it to automate productivity workflows by integrating with Todoist's REST API.

When to Use

Use this skill for GTD-based task management, such as adding tasks in response to user queries, syncing projects with other tools, or handling reminders via API calls. Apply it in scenarios requiring automation, like daily task reviews or IFTTT/Zapier triggers for productivity apps.

Key Capabilities

  • CRUD operations on tasks: Create, read, update, delete tasks using Todoist's API endpoints.
  • Manage projects and labels: Add, rename, or archive projects; assign labels to tasks.
  • Handle filters and reminders: Query tasks with custom filters; set due dates and reminders.
  • Access Karma and productivity stats: Retrieve user Karma scores and activity logs.
  • API integrations: Support for IFTTT/Zapier via webhooks, using Todoist's API for event triggers.

Usage Patterns

Initialize the Todoist client with your API key from an environment variable, then chain method calls for operations. Always handle authentication first. For CLI usage, wrap the Rust library in a script; for code, import the crate and use async methods. Pass parameters like task content or project IDs directly in function calls. Test in a development environment before production to avoid rate limits.

Common Commands/API

Use the Todoist API endpoints via the todoist-rs crate. Set the API key via $TODOIST_API_KEY. Example code snippets:

  • Add a task:

    use todoist::Todoist;
    let client = Todoist::new(std::env::var("TODOIST_API_KEY").unwrap());
    client.add_task("Buy milk", Some("Shopping")).await;
  • Get tasks with a filter:

    let tasks = client.get_tasks(&[("filter", "overdue")]).await.unwrap();
    for task in tasks { println!("{}", task.content); }
  • Update a project: Use PUT /projects/{id} endpoint; in code:

    client.update_project(123, "New Project Name").await;
  • Common CLI flags (if wrapping in a tool): --api-key $TODOIST_API_KEY --project-id 123 --task "Do something".

  • Config format: Store API key in a .env file as TODOIST_API_KEY=your_token, then load with std::env::var.

Integration Notes

Integrate with IFTTT/Zapier by setting up webhooks on Todoist's API events (e.g., new task created). Use the skill's API calls to trigger actions: for IFTTT, point to POST /tasks; for Zapier, use the Todoist app in Zapier with this skill's methods. Pass data like task IDs via JSON payloads. Ensure the API key is securely handled in env vars, and test integrations with sample events to verify data flow.

Error Handling

Check for API errors like 401 (unauthorized) by verifying the $TODOIST_API_KEY before requests. Handle rate limits (e.g., 429 status) with exponential backoff in code. Use Rust's Result types for error propagation:

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

Log detailed errors (e.g., network failures) and retry transient issues. Validate inputs like project IDs to prevent 404 errors.

Concrete Usage Examples

  1. Add a task with a label: When a user says "Add a shopping task", use the skill to create a task in the "Shopping" project: Initialize client, call client.add_task("Buy groceries", Some("Shopping")).await, then confirm with the user.
  2. Query overdue tasks: For a daily reminder, fetch overdue tasks: Use client.get_tasks(&[("filter", "overdue")]).await, loop through results, and notify the user with task details.

Graph Relationships

  • Related to: productivity (e.g., gtd skills), task-management (e.g., other todo apps), api-clients (e.g., rest-api wrappers).
  • Connects to: IFTTT/Zapier integrations for automation, community cluster skills for collaborative tools.