🫠

Claude CodeのTasks機能について調べてみた

に公開

1.はじめに

Claude Codeのv2.1.16から追加されたTasks機能が話題だったので調べてみました。

一言でいうと、既存のTodos機能がTasks機能に置き換わった機能とのことです。
特徴としては下記のようなものがあります。

  • 作業フローに応じたタスクリストをClaude Code側が自動作成(ユーザが手動作成はできない模様)
  • タスクリストをセッション/サブエージェント間で共有できる
  • /taskコマンドでタスクの確認が可能(進行中のタスクのみ?)
  • 制約としてタスクリストは現状10個まで

2.Tasks機能を使ってみる

Claude Codeで次のようなプロンプトでTasks機能を使ってみました。
簡単なVueの画面をタスク管理しながら作ってもらうプロンプトです。

src\vue\Components\Buttonコンポーネントの動作検証用ページを作成してください
src\viewsにページを追加して、src\router\index.tsで参照すれば使えるはずです
Tasks機能でタスク管理しながら実装してください 

■ セッション間でタスクリストを共有するための事前準備

settings.jsonに次のような環境変数を追記します

json
{
  "env": {
    ・・・
    "CLAUDE_CODE_TASK_LIST_ID": "任意のフォルダ名",
    ・・・
  },
  ・・・
}

または環境変数を指定してClaude Codeを起動します。

CLAUDE_CODE_TASK_LIST_ID=任意のフォルダ名 claude

■ 実行結果

実行すると下記のようにタスクリストを作って作業を始めてくれました。
また、進行中のステータス管理もClaude Codeが自動でやってくれるようです。

■ 「/tasks」コマンドについて

タスクが進行中のセッションとは別のClaude Codeセッションを起動します。
別のセッションで/tasksを実行すると、下記のように進行中のタスクが表示されます。
このようにセッションを超えて進行中のタスクの確認ができることが特徴です。

■ 「/tasks」で表示されるタスクの実態について

「/tasks」コマンドで表示されるタスクの実態について調べてみました。

タスク進行中に、次のフォルダ配下を見に行くとタスク状況を管理するためのJSONファイルが格納されていました。

~/.claude/tasks/環境変数で指定したフォルダ名
タスク番号.json
{
  "id": "タスク番号",
  "subject": "タスク名",
  "description": "タスク概要",
  "activeForm": "タスクの進行状況の概要",
  "status": "タスクステータス(in_progress/pendding/completed)",
  "blocks": [],
  "blockedBy": []
}

仕組みとしては、タスク番号毎にタスク番号.jsonが作成され、進行状況を管理しているようです。
「/tasks」コマンドで表示されるタスクリストは、上記JSONファイルを参照して表示しているようですね。

■ タスクは完了後に削除される

先ほど紹介したJSONファイルはタスクがすべて完了すると削除されるようです。(2026/1時点)
したがって、このJSONファイルがない状態で「/tasks」を実行してもタスクリストは表示されません
(完了済みのタスクの管理ができないのは若干不便な気がしますね。。Hooksとか使えばJSONファイルを別フォルダに退避とかはできそうですが)

Discussion