「ClaudeCodeのTasks機能を使ってみたいけど、使い方がよくわからない…」そんな悩みを抱えていませんか?2026年1月に新しく追加されたTasks機能は、従来のTodo機能から大幅に進化した強力なタスク管理システムです。しかし、多くの開発者が「どう使えばいいの?」と戸惑っているのが現状です。
本記事では、ClaudeCodeのTasks機能について、初心者でも今日から使える実践的な方法をわかりやすく解説します。この記事を読めば、複雑なプロジェクトでも効率的にタスク管理ができるようになります。
- ClaudeCodeのTasks機能の基本的な仕組みと従来のTodoとの違いを理解できる
- 実際の使い方を具体例とともに学べる
- WindowsやMacでの環境設定方法や活用テクニックを習得できる
ClaudeCodeのTasks機能とは?従来のTodoから何が変わったのか

AIのイメージ
2026年1月22日にリリースされたClaudeCodeバージョン2.1.16で、従来のTodo機能が大幅にアップグレードされ、Tasks機能として生まれ変わりました。この進化は単なる名前の変更ではありません。AI駆動開発における大きな転換点となる機能追加なのです。
従来のTodo機能は、セッション内でのみ有効な簡易的なチェックリストでした。ターミナルを閉じたり、コンテキストウィンドウが満杯になったりすると、せっかく作成したタスクリストは消えてしまいました。これは短時間の単純な作業には問題ありませんでしたが、数時間から数日かかる大規模なプロジェクトでは致命的な欠点でした。
Tasks機能は3つの革新的な改善によって、この問題を解決しています。まず、タスク間の依存関係を管理できる有向非巡回グラフ(DAG)構造を採用しました。これにより、「タスク1が完了しないとタスク2に着手できない」といった順序関係を明確に管理できます。次に、タスク情報をローカルファイルシステム(~/.claude/tasks)に保存することで、セッションをまたいでもタスクが消えない永続性を実現しました。さらに、CLAUDE_CODE_TASK_LIST_ID環境変数を使うことで、複数のClaudeCodeセッションや異なるサブエージェント間でタスクリストを共有できるようになりました。
これらの改善により、Tasks機能は単なるメモリ補助ツールから、本格的なプロジェクト管理システムへと進化したのです。
Tasks機能の基本的な使い方を3ステップで解説
Tasks機能を使い始めるのは驚くほど簡単です。複雑な設定は不要で、Claudeに適切な指示を出すだけで自動的にタスク管理を開始してくれます。
ステップ1タスクリストIDを設定する
まず、複数のセッションでタスクを共有したい場合は、環境変数を設定します。Macユーザーやターミナルから起動する場合は、以下のコマンドでClaudeCodeを起動します。
CLAUDE_CODE_TASK_LIST_ID=my-project claude
Windowsユーザーの場合、PowerShellでは次のように入力します。
$env:CLAUDE_CODE_TASK_LIST_ID=”my-project”; claude
コマンドプロンプトの場合は以下のコマンドを使用してください。
set CLAUDE_CODE_TASK_LIST_ID=my-project && claude
もちろん、settings.jsonファイルに記述して永続的に設定することも可能です。~/.claude/settings.jsonに以下を追加すれば、毎回環境変数を設定する手間が省けます。
ステップ2Claudeにタスク管理を依頼する
ClaudeCodeを起動したら、プロジェクトの説明と一緒に「Tasks機能でタスク管理しながら実装してください」というフレーズを含めるだけです。例えば、ToDoリストアプリを作りたい場合は、次のように指示します。
「Pythonで簡単なToDoリストアプリを作成したいです。タスクの追加、表示、削除機能を含めて、基本的なToDoアプリとして動作するようにしたいです。Tasks機能でタスク管理しながら実装してください。」
すると、Claudeは自動的にプロジェクトを分析し、以下のようなタスクリストを作成します。仕様書の作成、データモデルの設計、メイン機能の実装、テストコードの追加、ドキュメント作成など、適切な順序でタスクを分割してくれます。
ステップ3タスクの進捗を確認する
作業中にタスクの状況を確認したくなったら、/tasksコマンドを実行するだけです。ターミナル下部にタスクリストが表示され、各タスクのステータス(進行中、保留中、完了)と依存関係が一目でわかります。Ctrl+Tキーボードショートカットでも同じようにタスクリストの表示を切り替えられます。
別のターミナルタブやセッションを開いても、同じCLAUDE_CODE_TASK_LIST_IDを指定していれば、同じタスクリストにアクセスできます。これにより、複数の作業を並行して進めることが可能になります。
タスク機能の裏側の仕組みを理解しよう
Tasks機能がどのように動作しているのか、内部の仕組みを理解することで、より効果的に活用できるようになります。
Claudeは指定されたCLAUDE_CODE_TASK_LIST_IDに基づいて、~/.claude/tasks/プロジェクト名/というディレクトリを作成します。このディレクトリの中に、各タスクごとにJSONファイル(task_001.json、task_002.jsonなど)が生成されます。
各JSONファイルには、タスク番号、タスク名、詳細説明、現在の作業状況、ステータス(in_progress、pending、completed)、依存関係情報(blocksとblockedBy)などが記録されています。blocksは「このタスクが完了しないと次に進めないタスクのID」を、blockedByは「このタスクを始める前に完了させる必要があるタスクのID」を示します。
重要な特徴として、タスクが全て完了するとJSONファイルは自動的に削除されます。これは進行中のタスクだけを表示することで、画面をすっきりさせるための仕様です。ただし、完了したタスクの履歴を残したい場合は、HooksやCommandsを使ってJSONファイルを別の場所にバックアップする工夫が必要になります。
Tasks機能を活用した実践的な開発フロー
Tasks機能の真価は、大規模で複雑なプロジェクトにおいて発揮されます。ここでは、実際の開発現場で使える具体的な活用方法を紹介します。
仕様駆動開発でのTasks活用
仕様書の作成から設計、実装、テスト、ドキュメント作成まで、段階的に進める開発スタイルでは、各フェーズの依存関係が重要になります。Tasks機能を使えば、「仕様書が完成しないと設計に着手できない」「設計が終わらないと実装を始められない」といった関係性を自動で管理できます。
例えば、ログイン機能を実装する場合、Claudeに要件をヒアリングさせることで、過不足のない仕様を詰めていきます。その後、タスク分割を依頼すると、認証ロジックの実装、パスワードハッシュ化の追加、セッション管理の設定、ユニットテストの作成といった具合に、適切な順序でタスクが生成されます。
複数セッションでの並列作業
git worktreeと組み合わせることで、Tasks機能の効果は倍増します。複数のブランチに同時にチェックアウトした状態で、それぞれのターミナルタブで異なるタスクを進められるようになります。
あるタブではClaudeに機能Aの実装を任せ、別のタブでは自分で機能Bのコードレビューを行う、といった柔軟な作業分担が可能です。各セッションで/tasksを実行すれば、プロジェクト全体の進捗状況を即座に確認できるため、作業の重複や漏れを防げます。
長時間作業でのコンテキスト管理
大量のファイル生成やマイグレーション、複数モジュールにまたがるリファクタリングなど、数十分から数時間かかる作業では、途中でセッションが切れることもあります。Tasks機能があれば、別のターミナルから/tasksで進捗を確認し、必要に応じて作業を引き継ぐことができます。
コンテキストウィンドウが満杯になってきたら、/clearや/compactコマンドでコンテキストをクリアしても、タスクリストはファイルシステムに保存されているため失われません。これにより、長期プロジェクトでも安心して作業を継続できます。
トークン節約術とパフォーマンス最適化
Tasks機能を使う際、トークン消費量を抑えることは重要な課題です。特に無料プランやProプランでは、トークン上限に到達するとしばらくClaudeCodeが使えなくなってしまいます。
まず基本として、タスクを作成する際はできるだけ具体的な情報をClaudeに渡すことが重要です。「ログイン機能を作って」という曖昧な指示よりも、「JWTを使った認証機能を実装してください。ユーザー名とパスワードでログインし、トークンの有効期限は24時間です」と具体的に伝えた方が、Claudeが試行錯誤する回数が減り、トークン消費を抑えられます。
MCPサーバーとの連携も効果的です。特にSerena MCPを導入すると、プロジェクトの理解が効率化され、約60-80%のトークン削減が期待できます。SerenaはLSP(Language Server Protocol)を介してコードベースを深く理解するため、Claudeがファイルを何度も読み直す必要がなくなります。
さらに、parallelTasksCountの設定を調整することで、並列処理の数を制御できます。デフォルトは1ですが、claude config set -g parallelTasksCount 2のように設定すれば、複数のサブエージェントを同時に起動できます。ただし、並列数を増やすとトークン消費量も増加するため、バランスを考えて設定しましょう。
コピペで使える!Tasks機能の実践プロンプト集

AIのイメージ
Tasks機能を使いこなすには、適切なプロンプトの書き方を知ることが重要です。ここでは、実際の開発現場ですぐに使える実践的なプロンプト例を紹介します。
プロジェクト全体を構築するプロンプト
「RESTful APIサーバーをNode.jsとExpressで構築したいです。以下の機能が必要です。ユーザー認証(JWT)、CRUDエンドポイント(ユーザー、投稿、コメント)、入力バリデーション、エラーハンドリング、ロギング機能。Tasks機能で依存関係を管理しながら、段階的に実装してください。各タスクが完了したら次のタスクに進む前に動作確認をしてください。」
このプロンプトの優れた点は、必要な機能を具体的にリストアップし、依存関係の管理を明示的に依頼している点です。「段階的に」「動作確認」というキーワードを入れることで、Claudeは焦らず確実にタスクを進めてくれます。
既存コードのリファクタリングプロンプト
「このプロジェクトのコードをリファクタリングしたいです。まず、コード全体を分析して問題点をリストアップしてください。その後、Tasks機能を使って以下の優先順位で作業を進めてください。1. コードの重複を削除、2. 関数を適切な大きさに分割、3. 変数名を分かりやすく変更、4. コメントを追加、5. テストを追加。各タスクは独立して実行できるようにブランチを分けてください。」
リファクタリングは範囲が広がりやすいため、優先順位を明確に指定することで、作業が発散するのを防げます。
バグ修正のプロンプト
「以下のエラーメッセージが出ています。 Tasks機能を使って、1. エラーの原因を特定、2. 修正方法を提案、3. 修正を実装、4. テストで動作確認、という順序で進めてください。各ステップでファイルのバックアップを取ってください。」
バグ修正では原因の特定と修正を分けて依頼することで、Claudeが焦って間違った修正をするのを防げます。
実際に遭遇する7つの問題と解決策
Tasks機能を使い始めると、様々な問題に直面します。ここでは、実際の開発現場でよく遭遇する問題と、その体験ベースの解決策を紹介します。
問題1タスクが勝手に完了扱いになる
Claudeが「タスクを完了しました」と言っているのに、実際にはコードが動かない経験はありませんか?これは、Claudeがコードを書いただけで実行確認をしていない場合に起こります。
解決策として、プロンプトに「各タスク完了時に必ず実行して動作確認してください」という指示を加えましょう。さらに、CLAUDE.mdファイルに「タスク完了の定義コードが書けただけでなく、実行して期待通りに動作することを確認すること」と明記しておくと効果的です。
問題2複数のセッションで同じタスクを二重に実行してしまう
複数のターミナルでClaudeCodeを起動していると、異なるセッションで同じタスクに取り組んでしまい、作業が重複することがあります。
これを防ぐには、タスクを開始する前に必ず/tasksコマンドで現在の状況を確認する習慣をつけましょう。さらに、「TaskListで今のタスク一覧を出して。まだ誰もやっていない(pendingの)タスクを1つ取って、それを実行して完了にして」というプロンプトを使えば、Claudeが自動的に未着手のタスクを選んで実行してくれます。
問題3タスクの依存関係が複雑すぎて進まない
Claudeが設定した依存関係が厳しすぎて、「タスクAが終わらないとタスクBを始められない」というブロック状態が続くことがあります。特に並列で作業を進めたい場合、これは大きな問題です。
解決策は、タスク作成時に「可能な限り並列実行できるようにタスクを分割してください」と明示的に指示することです。また、既に作成されたタスクの依存関係を変更したい場合は、「タスク#3のblockedByを削除して、タスク#1と並列で実行できるようにしてください」と直接指示すれば、Claudeが依存関係を調整してくれます。
問題4タスクが途中で止まって何も進まなくなる
Claudeがタスク実行中に突然止まってしまい、何の反応もなくなることがあります。これは、コンテキストウィンドウが満杯になったり、複雑な処理で考え込んでしまったりした場合に起こります。
まず、/compactコマンドでコンテキストを圧縮してみましょう。それでも動かない場合は、新しいターミナルで同じCLAUDE_CODE_TASK_LIST_IDを指定してClaudeCodeを起動し、「現在進行中のタスクの状況を教えて。可能なら続きを実行して」と指示すれば、作業を引き継げます。
問題5エラーが出てもClaudeが無視して次に進んでしまう
テストが失敗しているのに、Claudeが「完了しました!」と次のタスクに進んでしまう経験はありませんか?これは、エラーの重要性をClaudeが理解していない場合に起こります。
CLAUDE.mdに「テストが1つでも失敗したら、そのタスクは未完了とみなし、必ず修正してから次に進むこと」というルールを明記しましょう。さらに、Hooksを使ってテスト実行を自動化し、失敗時には警告を表示する仕組みを作ると確実です。
問題6タスクが多すぎて10個制限に引っかかる
複雑なプロジェクトでは、タスクが10個を超えてしまうことがよくあります。Claudeに「もっとタスクを作って」と依頼しても、制限のため作成できません。
この問題は、タスクの粒度を調整することで解決できます。「現在のタスクを統合して、5つの大きなタスクにまとめ直してください」と指示すれば、Claudeが適切に再構成してくれます。あるいは、フェーズごとにCLAUDE_CODE_TASK_LIST_IDを変えて、「フェーズ1設計」「フェーズ2実装」といった具合に分割する方法も有効です。
問題7Windows環境で環境変数が正しく設定できない
Macでは動くコマンドがWindowsでエラーになることがよくあります。特に環境変数の設定は、シェルによって書き方が異なるため混乱しがちです。
PowerShellユーザーは$env:CLAUDE_CODE_TASK_LIST_ID=”プロジェクト名”; claude、コマンドプロンプトユーザーはset CLAUDE_CODE_TASK_LIST_ID=プロジェクト名 && claudeというシェルごとの正しい構文を使いましょう。毎回入力するのが面倒なら、settings.jsonに設定を記述するか、PowerShellプロファイルに環境変数を追加してしまうのが賢明です。
カスタムコマンドとAgentsを組み合わせた上級テクニック
Tasks機能の真の力は、カスタムコマンドやAgentsと組み合わせることで発揮されます。ここでは、実務で即使える上級テクニックを紹介します。
タスク作成専用コマンドを作る
毎回「Tasks機能で管理して」と打つのは面倒です。~/.claude/commands/create-tasks.mdというファイルを作成し、以下の内容を記述しましょう。
「ユーザーの要求を分析し、適切なタスクリストを作成してください。タスクは5-8個程度に分割し、依存関係を明確にしてください。各タスクには、目的、成果物、完了条件を含めてください。」
これで、/create-tasksと入力するだけで、Claudeが自動的に適切なタスク分割をしてくれます。
レビュー専用Agentを活用する
タスク完了時に自動的にコードレビューを行うAgentを作成すると、品質が大幅に向上します。~/.claude/agents/code-reviewer.mdを作成し、「このコードのセキュリティ問題、パフォーマンス問題、可読性の問題をチェックして、改善提案をしてください」という指示を記述します。
タスク完了時に「@code-reviewer このコードをレビューして」と呼び出せば、専門的な視点でのレビューが得られます。
GitHub Actionsとの連携で自動化を極める
2026年に追加されたClaude Code GitHub Actions機能を使えば、PRが作成された瞬間にClaudeがタスクリストを分析し、レビューコメントを自動的に追加してくれます。.github/workflows/claude-review.ymlを設定し、PRのタイトルに「@claude」とメンションするだけで、Claudeが依存関係を確認し、実装の抜け漏れを指摘してくれます。
これにより、人間のレビュアーは本質的な設計やアーキテクチャのレビューに集中できるようになります。
チームでTasks機能を活用する実践的な運用方法
個人での利用だけでなく、チームでTasks機能を活用することで、開発効率はさらに向上します。
タスクリストをGitで管理するアプローチが効果的です。~/.claude/tasks/ディレクトリをプロジェクトのリポジトリ内に移動し、シンボリックリンクを張ることで、タスクの進捗をGitで追跡できます。これにより、誰がどのタスクに取り組んでいるのか、どこまで進んでいるのかが、git logで一目瞭然になります。
朝のスタンドアップミーティングで、各メンバーが自分のCLAUDE_CODE_TASK_LIST_IDを共有し、/tasksの結果をスクリーンショットで報告する運用も有効です。「昨日はタスク#3まで完了、今日はタスク#4と#5に取り組みます」という具合に、可視化された進捗報告ができます。
さらに、タスクの命名規則をチームで統一することも重要です。「–」という形式にすれば、誰が何に取り組んでいるかが分かりやすくなります。例えば、「auth-feature-TY-20260205」のような命名です。
トラブルシューティングエラーメッセージ別対処法
Tasks機能を使っていると、様々なエラーメッセージに遭遇します。ここでは、頻出エラーと具体的な対処法をまとめました。
「Task limit reached」というエラーが出た場合、タスク数が10個を超えています。既存のタスクを統合するか、完了したタスクを明示的に削除してから新しいタスクを作成しましょう。
「Cannot access task file」というエラーは、ファイルパーミッションの問題です。chmod 755 ~/.claude/tasksでディレクトリの権限を確認し、必要に応じて修正してください。
「Task already in progress by another session」は、別のセッションで同じタスクが実行中という意味です。ps aux | grep claudeで実行中のClaudeプロセスを確認し、不要なプロセスをkillしてから再試行しましょう。
「Circular dependency detected」は、タスク間の依存関係が循環している状態です。タスク#1がタスク#2をブロックし、タスク#2がタスク#1をブロックしているような矛盾があります。/tasksで依存関係を確認し、「タスク#2のblockedByからタスク#1を削除して」と指示して循環を解消してください。
ぶっちゃけこうした方がいい!
ここまでTasks機能の使い方を詳しく解説してきましたが、正直なところ、最初から完璧を目指さなくていいんです。
実際、私も最初は「10個制限って厳しすぎる」「依存関係の管理が面倒」「環境変数の設定がわからない」と感じていました。でも、使い続けるうちに気づいたのは、Tasks機能の本質は「完璧なプロジェクト管理」ではなく「作業の見える化と継続性」にあるということです。
個人的には、こんな使い方が一番楽で効率的だと思います。まず、プロジェクト開始時は環境変数なんて設定せず、普通にClaudeCodeを起動して「Tasks機能で管理して」と一言添えるだけでOK。Claudeが勝手にタスクを作ってくれます。途中でセッションが切れたら、新しいターミナルで同じディレクトリから起動すれば、前のタスクリストが残っていることが多いです。
そして、タスクが10個を超えそうになったら、無理に細かく分割せず、「大きなタスク3つにまとめて」と大雑把に統合してしまう。細かい作業は、各タスクの中でClaudeに任せればいいんです。依存関係も、最初から厳密に設定しようとせず、「このタスクとこのタスクは順番に」と必要最小限だけ指定する。
それから、エラーが出たときは、エラーメッセージをそのままClaudeに貼り付けて「このエラーを解決して」と投げちゃえばいい。変にググって調べるより、Claudeに聞いた方が早いです。Claudeは自分のエラーメッセージを一番よく理解していますからね。
最後に、チームで使う場合も、最初から完璧な運用ルールを作ろうとしないこと。まずは興味のあるメンバー2-3人で試してみて、「これ便利だね」となったら徐々に広げていく。GitHubとの連携とか高度な機能は、基本的な使い方に慣れてからで十分です。
結局のところ、Tasks機能は「長時間の作業でも進捗を見失わないための道具」なんです。難しく考えず、気軽に使い始めてみてください。失敗してもタスクを作り直せばいいだけですから。完璧を目指すより、まずは手を動かして、自分なりの使い方を見つける方が、ずっと実りが大きいですよ。
よくある質問
Tasks機能を無効にすることはできますか?
はい、可能です。v2.1.19以降では、CLAUDE_CODE_ENABLE_TASKS環境変数をfalseに設定することで、Tasks機能を無効化できます。これにより、既存のワークフローを維持したまま、徐々にTasks機能へ移行することができます。企業チームなど、既存の開発フローを急に変更できない場合に便利です。
タスクが最大10個までという制限は厳しくないですか?
確かに10個という制限はありますが、これは意図的な設計です。タスクが多すぎるとClaudeの管理が困難になり、かえって効率が下がります。大きなプロジェクトの場合は、まず大きなタスクを10個以下に分割し、各タスクの中でさらに細かい作業を行うという階層的なアプローチが推奨されています。もしくは、Tasks機能を使わず、カスタムコマンドやスラッシュコマンドで独自のタスク管理システムを構築することも可能です。
完了したタスクの履歴を残す方法はありますか?
デフォルトでは全タスク完了時にJSONファイルが削除されますが、Hooksを活用すればタスク完了時に自動的にバックアップを取ることができます。例えば、onTaskCompleteフックを作成し、~/.claude/tasks/archive/ディレクトリにJSONファイルをコピーするスクリプトを実行させることで、履歴を保存できます。また、カスタムコマンドを使ってタスクの進捗をマークダウンファイルに記録する方法も有効です。
まとめTasks機能で開発効率を劇的に向上させよう
ClaudeCodeのTasks機能は、AI駆動開発における大きな飛躍です。従来のTodoでは不可能だった永続的なタスク管理、依存関係の明確化、複数セッション間の協調作業が実現しました。
本記事で紹介した基本的な使い方をマスターすれば、今日からでも大規模プロジェクトを効率的に進められます。環境変数の設定、Claudeへの適切な指示、/tasksコマンドでの進捗確認という3ステップを覚えるだけで、あなたの開発スタイルは大きく変わるでしょう。
さらに、git worktreeとの組み合わせ、MCPサーバーの活用、トークン節約テクニックなど、応用的な使い方を身につけることで、Tasks機能のポテンシャルを最大限に引き出せます。
複雑なプロジェクトに取り組む際、もう「どこまで進んだか分からない」「セッションが切れてタスクリストが消えた」という悩みに悩まされることはありません。Tasks機能を使いこなして、より生産的で創造的な開発体験を手に入れてください。


コメント