Claude Codeで複数の作業を裏に走らせている中級開発者向け
Ctrl+Bで裏に送った作業が3つ4つ溜まって「どれが終わってどれがまだ動いてるか分からない」状態になったときに叩く。出てきた一覧でIDと状態(実行中/終了)を見て、終わっているものだけReadツールで結果を取りに行く流れで使う場面が中心。<code>/bashes</code> と打っても同じ結果が出るので、別名で覚えている人もそのまま使える。背景送りを1つもしていないセッションで叩いても、空の一覧が返ってくるだけで意味は薄い。
Claude Code を中級以上で回しはじめると、Ctrl+B(後述)で背景送りした作業がどんどん溜まる。npm の開発サーバー、jest の監視モード、別の作業場所で回してる lint チェック。気がつくと「どれがまだ動いてて、どれが終わったんだっけ」が分からなくなる。
そこに刺さるのが /tasks です。いま開いてるこのセッションで裏に動かしてる作業を、ぱっと一覧で出すためだけのスラッシュコマンド。公式 docs には /bashes という別名も書いてあって、同じ機能を呼び出す入り口が2つ用意されています。
叩いたら何が起きるかは公式が verbatim でこう書いている。
/taskslists what's running in the background of the current session.意訳:
/tasksは、いま開いているセッションで裏に動いているものを一覧で出す。
同じ公式 commands 表に /tasks の説明として "List and manage background tasks. Also available as /bashes" とも書かれていて、別名の存在自体が公式の verbatim です。
噛み砕くと
会議室のホワイトボードを思い浮かべてください。私が議題を進めながら、隣の部屋で同僚3人にそれぞれ別の調べ物を頼んだとします。10分経ったとき「あの人は今どこまでやってる?もう終わってる?まだ続いてる?」を確認したい。/tasks は、その「いま誰に何を頼んでて、誰が終わって、誰がまだ動いてるか」のホワイトボードを、Claude Code の画面に1回出す操作です。
新しい仕事を生むコマンドじゃない。すでに自分が裏に送った作業の状況を見るだけの、確認系の操作です。
大事な前提:Claude Code には「タスク」が3種類あって、/tasks が見せるのはそのうち1つだけ
ここを混同したまま使うと、いつまでも「あれ、出てこない」になります。Claude Code で「タスク」と呼ばれるものは公式 docs 上で3種類あって、それぞれ管理場所が違う。
| 何の「タスク」か | 管理する操作 | 表示の出し方 |
|---|---|---|
| 裏で動いてる bash の作業(npm run dev 等) | Ctrl+B または「裏で動かして」と頼む | /tasks(別名 /bashes) |
| Claude 自身の作業チェックリスト(task list) | Claude が自動で作る/編集する | Ctrl+T で表示トグル(上位5件) |
| 裏で並走してる subagent(別働きの Claude) | /agents マネージャー、または Claude に依頼 |
/agents 画面で確認する(/tasks の一覧に subagent も乗るかは公式 docs 未明示) |
subagent は /agents マネージャーで管理する別系統。Ctrl+B の公式説明は "Backgrounds bash commands and agents" とあって、subagent も背景送りできること自体は確かです。ただし背景送りした subagent が /tasks の一覧に乗るかどうかは公式 docs に明示がないので、「subagent も /tasks で見える」と決めつけずに、/agents 画面で確認するのが確実です。
「Webサービス開発で背景送りが3つ溜まった」を例に、実際の手順を見る
具体場面を1つ作って、その中で /tasks を叩くタイミングを順に追います。題材は、AIで料理レシピを検索できる Webサービスを作っている途中。フロントは Next.js、テストは Jest で書いてる、よくある構成です。
ステップ1: 開発サーバーを裏で動かす
朝イチで Claude Code を開いて、まず開発サーバーを上げる。
$ claude
> npm run dev を起動して、出力が出続けるはずだから裏に送ってほしい
Claude が Bash ツールで npm run dev を実行し、すぐにバックグラウンドへ回します。応答に「Background task ID: bg-abc123」みたいなIDが付いて返ってきます。これで手元のターミナル画面は解放されて、次の指示が打てる状態に戻る。
ステップ2: テスト監視も裏で回す
続けて Jest の watch モード。これも出力が出続けるやつなので背景送り。
> 次は jest --watch を裏で動かして。失敗したテストだけ後で見せて
これも Ctrl+B 経由で裏に行きます。ID は bg-def456 みたいに別の番号が振られる。
ステップ3: 別の作業場所で lint と型チェック
worktree を使って、別ブランチの修正を並走させてる人ならここで lint と typecheck を背景送りすることもある。
> ../recipe-api-refactor のほうで npm run lint と npm run typecheck を走らせて、終わったら結果だけまとめて
これで裏で動いてる作業が3つ前後になった状態です。ここで一度、頭の中の整理が追いつかなくなる瞬間が来ます。
ステップ4: /tasks でいま動いてるものを出す
15分くらい別の作業(CLAUDE.md の修正とか)をしてから、私はこう打ちます。
> /tasks
これだけ。コマンドの後ろに何も書き足さず、そのまま叩く。/bashes と打っても同じ結果になります。
Claude Code が、いまこのセッションで裏に走らせてる作業の一覧を返してきます。出力例はこんな感じです。実機の見た目はバージョンで多少変わります。
Background tasks in this session:
bg-abc123 npm run dev [running] 3m12s
bg-def456 jest --watch [running] 2m48s
bg-ghi789 npm run lint [done] 1m04s
bg-jkl012 npm run typecheck [done] 58s
これで状況が一発で見える。lint と typecheck は終わってる、dev と jest --watch はまだ生きている。
ステップ5: 終わったものだけ Read で結果を取りに行く
背景送りした作業の出力はファイルに書き出される仕組みなので、終わったやつだけ Claude に Read させる。
> bg-ghi789 と bg-jkl012 の結果を Read で読んで、エラーがあれば要約して
これで完了したものから順に消化していけます。dev と jest --watch は当然まだ生きてるので、そのまま走らせ続ける。
ステップ6: 終わる前にやりがちな勘違い
ここで初心者がやりがちな勘違いを1つ挟みます。/tasks を叩いて出てきた一覧に、Claude が自分で立てた「作業計画」(タスクリスト)が出てくると思ってる人がいる。出てきません。あれは Ctrl+T で別に出すものです。詳しくは次の落とし穴で書きます。
つまり /tasks は何をしてくれるのか
- やってくれる: いま開いてるセッションで裏に動かしてる bash 作業の一覧を出す。それぞれのID・実行中か終わってるか・実行時間が見える。別名
/bashesで同じ結果が出る - やってくれない: Claude の作業チェックリスト(task list)の表示。あれは Ctrl+T。背景送りした作業の中身(出力ログ)の表示。あれは Read ツールでID指定して読む。
/backgroundで切り離した別セッションの状況。あれは agent-view の管理画面側で見る - 意味が薄い場面: そもそも背景送りを1つも使ってない素のセッション。空っぽの一覧が返ってくるだけ
使いどころ3シナリオ(具体題材で再現)
シナリオ1: 料理レシピ Webサービスで開発サーバー+テストを背景送りした朝
Next.js の開発サーバーと Jest の watch を Ctrl+B で裏に送って、私は CLAUDE.md の更新作業に入る。20分経った頃、Jest がコケる音(ターミナルのベル)が鳴った気がしたけど画面はもう CLAUDE.md の編集中で確認できない。こういうとき /tasks を叩くと、jest が "failed" 状態になってないかが一覧で出る。failed なら ID を指定して Read で読み、原因のテスト名だけ拾って手当てに行きます。
シナリオ2: subagent 3並走で OSS の clone 直後を分担調査してるとき
新しく触る OSS を取ってきた直後、/agents で立てた subagent 3体に「ディレクトリ構造の要約」「依存関係の整理」「テストの走らせ方の確認」をそれぞれ並走でやらせる。私はその間に README を自分で読んでる。subagent の進捗を見たくなったら、まずは /agents 画面で確認するのが確実です。/tasks 側は裏 bash の一覧として併用しつつ、subagent 状況は /agents 側に取りに行く、という二本立てが安全な使い方になります。
シナリオ3: 家計簿アプリを worktree 2つで並走してて lint+typecheck だけ自動で回すとき
main ブランチでは新機能を書いて、別 worktree では古いバグ修正の仕上げ。仕上げ側で npm run lint と npm run typecheck を背景送りしておく。新機能側の作業に夢中になってる間に、たぶん lint と typecheck は終わってる。コーヒー1杯飲んだ後に /tasks。終わってる作業のIDだけ Read で取りに行って、エラーがゼロなら別 worktree の作業はそのまま PR を出せる状態になっています。
初心者が踏みやすい落とし穴
- Ctrl+T と
/tasksを混同する。Ctrl+T は Claude が自分で立てた作業チェックリストの表示/非表示。/tasksは私が裏に送った bash 作業の一覧。両方とも「タスク」と呼ばれてるけど、見せてる対象がまったく違います /tasksと/bashesは同じコマンドの別名。公式 commands 表に "Also available as/bashes" と書かれていて、どちらを叩いても結果は同じ。情報源によって名前が違って見えるのはそのため。新しい呼び方を覚え直す必要はなく、自分が打ちやすい方を使えばよし- tmux の中で動かしてる人は Ctrl+B が2回必要。公式 verbatim で "Tmux users press twice" と明記されています。tmux の合図キーが Ctrl+B なので、1回押しただけだと tmux 側に吸い取られる。これを知らないと「Ctrl+B で裏に送ったはずなのに
/tasksに出てこない」と詰まります /backgroundと混同する。/backgroundはセッション全体を切り離して、自分のターミナル画面を解放する別物の操作。/tasksは現セッションが前面に残ったまま、その中で裏に動いてる作業を一覧表示するだけ。動作のスケールがまったく違います- 背景送りした作業の出力が 5GB を超えると勝手に止まる。公式 docs にこう書かれてます: "Background tasks are automatically terminated if output exceeds 5GB, with a note in stderr explaining why"。長時間ログを吐き続けるサーバーや、巨大なログを
tail -fで背景送りしてると、いつの間にか止まってる。/tasksで "terminated" 状態に変わってないかを定期的に見ておくと事故が減ります CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1をどこかで設定してると/tasksの前に背景送り自体ができない。これはバックグラウンド機能をまるごとオフにする設定値。チームの共有設定で勝手に入ってるケースがあるので、Ctrl+B が効かない・/tasksがいつも空っぽという症状があったら、ここを疑う- セッションを抜けると裏で動いてた作業も自動で片付く。公式 verbatim で "Background tasks are automatically cleaned up when Claude Code exits"。「裏でずっと動かしておきたい」用途なら、セッション全体を切り離す
/backgroundの方が筋。/tasks系の背景送りは「いまのセッション中だけ手元を空けておきたい」用途 - Claude のチェックリスト(task list)を複数の作業日で持ち越したいときは
CLAUDE_CODE_TASK_LIST_IDを設定する。これは task list の話であって/tasksの話ではない、というのを混同しがち。CLAUDE_CODE_TASK_LIST_ID=my-project claudeのように起動時に名前を渡すと~/.claude/tasks/my-project配下に Claude の作業計画が保存されて、次の日も続きから扱える仕組みです
書き方
/tasks
/bashes # 同じ機能の別名(公式エイリアス)
やってみるとこうなる
入力
/tasks
出力例
Background tasks in this session:
bg-abc123 npm run dev [running] 3m12s
bg-def456 jest --watch [running] 2m48s
bg-ghi789 npm run lint [done] 1m04s
bg-jkl012 npm run typecheck [done] 58s
このページに出てきた言葉
- /bashes
- <code>/tasks</code> の公式エイリアス。公式 commands 表に「Also available as /bashes」と verbatim で書かれていて、どちらを叩いても同じ一覧が出る
- バックグラウンド送り
- Ctrl+Bや「裏で動かして」の依頼で、いま実行中の作業をターミナルの裏側に回す操作。手元の入力欄が解放されて、次の指示が打てる状態に戻る
- Background task ID
- Claude Codeが裏に回した作業に自動で振る通し番号。後でこのIDを指定してReadツールで出力を読みに行く
- task list
- Claudeが複雑な作業を自分で進めるために立てる内部の作業チェックリスト。<code>Ctrl+T</code>で表示/非表示を切り替える。<code>/tasks</code>が見せる「裏で動いてる作業」とは別物
- subagent
- メインで会話しているClaudeが別の作業を任せるために起動する「もう1つのClaude」。<code>/agents</code>マネージャーで管理する。背景送りした subagent が <code>/tasks</code> の一覧に乗るかは公式 docs に明示がないので、状況確認は <code>/agents</code> 画面が確実
- tmux
- ターミナル画面を分割したり、ログアウト後も作業を残せるユーティリティ。Ctrl+Bがtmux自体の合図キーなので、Claude CodeのCtrl+Bは2回続けて押す必要がある
- worktree
- Gitの機能で、同じプロジェクトを別フォルダで同時に開けるしくみ。ブランチごとに作業フォルダを分けたいときに使う
- CLAUDE_CODE_DISABLE_BACKGROUND_TASKS
- パソコンが起動時に覚えてる設定値の1つ。<code>1</code>が入っているとClaude Codeのバックグラウンド機能が全部止まる