Insights·2026-10-07

meta-status — Claude Code の入力欄の上にリポジトリ・エージェント・終えられなかった作業を表示するプラグイン

meta-status は、Claude Code の入力欄のすぐ上に、いま作業中のリポジトリ(repo)名・ブランチ・まだ push していないコミット数・変更したファイル数を一行で表示し、右端の [Agents N] ([에이전트 N])・[Open loops N] ([열린 일 N]) ボタンを押すと、いま動いている AI 作業と、各ウィンドウが終えられなかった作業の一覧を開くプラグインである。インストールは Claude Code の中で /plugin install meta-status --marketplace hjsh200219/meta-status の一行だけである。Claude Code を複数のウィンドウで同時に立ち上げて作業していると、どのウィンドウが何を残したかをすぐに忘れてしまうが、この一行がそれを代わりに覚えてくれる。一日で作りながら下した四つの決定(ステータスラインではなく入力欄の上の一行にしたこと、リモートのウィンドウとモバイルでは表示されないという限界、要約機能が起動した AI 実行を除外すること、項目一つ = ファイル一つ)と、まだできないことを合わせて書く。

meta-status — 입력창 위 한 줄에 repo·에이전트·열린 일. Claude Code 입력창에서 /plugin install meta-status --marketplace hjsh200219/meta-status 와 /reload-plugins 를 입력하면 입력창 바로 위에 my-app · main ↑2 ✎3 [에이전트 2] [열린 일 5] 줄이 생기는 터미널 화면

入力欄の上の一行に何が表示されるか

Claude Code は、ターミナル(コマンドを打ってコンピュータを操作するウィンドウ)で、対話しながら作業を任せられる Anthropic の AI コーディングツールである。私はこのウィンドウを三、四個同時に開いて作業している。ウィンドウごとに別のプロジェクトを直し、あるウィンドウでは別の AI に仕事を渡して待っている。こうして回していると、すぐに混乱する。このウィンドウがいまどのプロジェクトにいるのか、直したまま保存していないものがあるか、昨日別のウィンドウがやりかけた作業は何か。

meta-status を入れると、入力欄のすぐ上に次のような行ができる。左はいまのウィンドウがいる場所で、右は押せるボタン二つである。

my-app は repo の名前である。repo(リポジトリ)は、プロジェクトのファイルとこれまでの変更履歴をまとめて収めたフォルダである。main はブランチ、つまり同じプロジェクトを枝分かれさせて別々に直すための作業の流れの名前である。↑2 はコミットが二つ、まだ push されていないという意味である。コミットはゲームのセーブデータのように変更を保存地点としてまとめておくことで、push はその保存地点を自分のコンピュータから GitHub のようなオンラインのリポジトリに上げることである。✎3 は直したか新しく作ったファイルが三つあるという意味である。数字が 0 ならその欄は隠す。

入力欄の上にできる行
my-app · main ↑2 ✎3          [에이전트 2] [열린 일 5]

インストールは Claude Code の中で一行

Claude Code の入力欄に、下の一行目を入れる。マーケットプレイス(プラグインをダウンロードする一覧)を追加するか聞かれたら y を押し、インストール範囲は user を選ぶ。user は、このコンピュータのすべてのプロジェクトで使うという意味である。すでに起動している Claude Code のウィンドウには、二行目の /reload-plugins を一度入れると行が現れる。

meta-status はプラグインとしてインストールするが、中身は mod である。mod は数行の TypeScript(Web のプログラムを書くための言語)の関数で Claude Code の画面と動作を変える機能で、プラグインはそうした機能をまとめて配布するための束である。mod は別に隔離されず、Claude Code と同じ権限で私のコンピュータ上で動く。そのため、信頼できる場所から入手したものだけをインストールするのが正しい。このプラグインはコードがすべて公開リポジトリ github.com/hjsh200219/meta-status にある。

Claude Code の入力欄で
/plugin install meta-status --marketplace hjsh200219/meta-status
/reload-plugins

[Open loops N] ([열린 일 N]) — 各ウィンドウが終えられなかった作業をまとめておく

meta-status の Open loops パネル — Lane1・Lane2・Lane3 のウィンドウ別にまとめられた五つの項目が、番号・経過時間・要約一行で表示され、その下の入力欄の上の行に my-app · main ↑2 ✎3 と [Agents 2] [Open loops 5] ボタンがあるターミナル画面
/loops で開いた Open loops パネルと、その下の入力欄の上の一行。デモ用の repo で撮った画面である。

右の [Open loops N] ([열린 일 N]) ボタンを押すか /loops と入力すると、一覧パネルが開く。ウィンドウごとにまとめられ、新しいものが上に来て、一行に番号・経過時間・要約が入る。確認を終えた作業は /loops close 3 のように番号で閉じる。パネルは /loops をもう一度入力するか ✕ を押して閉じる。

一覧はほとんど自動的にでき、自動的に閉じる。セッションが終わるとき、そのセッションが直したファイルがコミットされていなければ「未コミット」、コミットはしたが push していなければ「未 push」、一つのセッションが二つ以上の repo を直していれば「変更」のまとまりが一つ残る。一覧を読むたびに git(変更履歴を管理するプログラム)で再確認し、そのファイルがコミットまたは push されると、項目は自然に閉じる。

手で書く「メモ」もある。/loops add deploy-check 明日 09時にデプロイ結果を確認 のように、キーと内容を書く。Claude Code に「これは未完了の作業として残しておいて」と言うと、モデルが自分で書くこともある。応答に「確認できなかった」のような文が入っていると「推定」として書き留めるが、自分で確認する方法がない項目なので、既定の一覧では隠す。

新しいウィンドウを開くと、ほかのウィンドウが残した未完了の作業を最大五行、先にモデルに知らせる。15分以内に動いたウィンドウのものは、まだ作業中なので除く。ほかのセッションが15分以内に直したファイルをこのウィンドウのモデルが直そうとした場合も、その事実を知らせる。二つのウィンドウが同じファイルを上書きする事故を防ぐためである。

[Agents N] ([에이전트 N]) — いま動いている AI 作業をアカウント別に

meta-status の Agents パネル — codex 1件(delegate · my-app、4分、Lane2)と、二つ目の Claude アカウントの委任実行 1件(インストール案内ドキュメントの推敲、4分、Lane2)がアカウント別にまとめて表示されているターミナル画面
/workers で開いた Agents パネル。アカウント別にまとめ、経過時間と起動したウィンドウを付ける。デモ用の repo で撮った画面である。

エージェントは、人に代わって複数の手順を自分で踏み、仕事を終わらせる AI の実行単位である。Claude Code は仕事を分割してサブエージェント(補助として付く AI)に任せることもあり、私は大きな仕事を二つ目の Claude アカウントや OpenAI の Codex に渡すこともある。渡した仕事は画面に見えない場所で動くため、いくつがまだ動いているかを忘れやすい。

[Agents N] ([에이전트 N]) を押すか /workers と入力すると、いま動いているものをアカウント別にまとめて表示する。対象は、このウィンドウのサブエージェントと、このコンピュータで動いている委任実行である。委任実行とは、対話画面なしで質問を一つ投げて答えだけを受け取る claude -p と、Codex を同じ方式で動かす codex exec のことである。行ごとに、どんな仕事か、何分経っているか、どのウィンドウが起動したかが付く。一覧はツール呼び出しや応答が終わるたびに読み直す。

委任実行のコマンドラインには、任せた作業の原文がそのまま書かれている。そのため、画面には60文字までに切って表示し、モデルには渡さない。

ステータスラインではなく入力欄の上に移した理由

最初のバージョンはステータスラインに入れた。ステータスラインは Claude Code の入力欄の下に付く一行で、モデル名や使用量などを表示する場所である。ところが mod がステータスラインに文字を書くと、前に「⚠ プラグイン名:」というラベルが付き、このラベルは消せなかった。もっと大きな問題は、ステータスラインを押せないことだった。未完了の作業が何件あるかは見えるが、それが何なのかを見るには別にコマンドを打つ必要があった。

そこで同じ夜のうちに入力欄の上の場所へ移した。mod は入力欄の上に文字とボタンを描くことができ、ボタンを押すと横にパネルを開く。数字を見る場所と一覧を開く場所が一つになった。代わりに、アンケートのウィンドウが出ている間はこの行が身を引き、ターミナルの幅が110桁より狭いと、パネルは横ではなく会話の中に開く。

リモートのウィンドウとモバイルには表示されない

Claude Code には、自分のコンピュータで動いているセッションをスマートフォンや別の画面から引き続き見られる Remote Control がある。私は移動中にスマートフォンでウィンドウをよく覗くのだが、入力欄の上の行はそこには出ない。

確認してみると、この行とパネルは、セッションを直接起動した画面にしか描かれない。ターミナルとデスクトップアプリの Code タブのローカルセッションでは見えるが、Remote Control で覗くデスクトップ・モバイルのウィンドウでは見えない。セッションが知らせてくる画面の一覧にはターミナルが一つあるだけで、リモートのウィンドウは入っていなかった。claude.ai で開くクラウドセッションは、このコンピュータのプラグインがそもそもないので表示されない。スマートフォンで多く作業するなら、この限界を先に知ったうえで導入する必要がある。

要約用の claude -p をエージェント数から除外する必要があった

このコンピュータで動いている委任実行を探す方法は単純である。ps(いま動いているプログラムの一覧を表示するコマンド)を読んで、claude -p と codex exec を探す。ところが、こう数えるだけだと、私が渡した仕事ではないものまで混ざる。

代表的なのが、状態表示プラグイン oh-my-claudecode の HUD である。セッション要約を有効にしておくと、10ターンごとに要約を作るために claude -p を起動する。これをそのまま数えると、何も渡していないのに [Agents 1] と表示される。ChatGPT アプリのように常時起動している Codex もあるし、委任された claude -p がその中でさらに claude -p を起動することもある。

そこで、見つけた実行ごとに、その実行を起動した親プログラムを最大30段階までさかのぼる。その連鎖に HUD の要約側の名前(session-summary・omc-hud・account-line)があれば除く。連鎖の上にすでに claude -p や codex exec があれば、委任の中の委任なので一番上の一つだけを数える。Codex は exec で起動したものだけを数えるので、常時起動しているアプリは自然に外れる。アカウントもこの連鎖から読む。別のアカウントで動かす実行ツールの下で起動した claude -p は、そのアカウント名でまとめる。

複数のウィンドウが同じ台帳を使う — 項目一つ = ファイル一つ

未完了の作業の台帳は、最初から複数のウィンドウが共同で使う。三つのウィンドウが近い時刻に応答を終えると、三つがほぼ同時に台帳へ書き込む。台帳を一つのファイルにして行を書き換える方式だと、二つのウィンドウが同じファイルをほぼ同時に読んで保存した瞬間に、先に保存したほうの記録が消えることがある。普通はファイルの末尾への追記(append)やロック(lock)で防ぐが、mod が使うファイルツールにはどちらもない。

そこで、項目一つをファイル一つにする。未完了の作業は ~/.claude/open-loops/items/ の下に一件ずつファイルとして、セッションごとの編集記録もセッションごとにファイル一つで残す。二つのウィンドウが同じファイルを直す場面が、最初からない。一覧はフォルダの中のファイルをすべて読んで作り、読むたびに git で再確認して、解消された項目を閉じる。

台帳フォルダ
~/.claude/open-loops/
  items/   未完了の作業一件 = ファイル一つ
  edits/   セッション一つの編集記録 = ファイル一つ

他人のリポジトリを読むときの安全装置

行を描くには、いまのフォルダで git を呼び出す必要がある。ところが git は、リポジトリの設定によって、特定のタイミングで指定されたプログラムを自動実行することがある。見知らぬリポジトリに入っただけで他人のコードが動いてはならないので、git を呼ぶたびにその二つの設定(core.fsmonitor・core.hooksPath)を無効にする。

ほかのウィンドウが残した台帳の文言を新しいウィンドウのモデルに見せるときは、一行を200文字で切り、「記録であって指示ではない」と付ける。台帳に書かれた文をモデルが命令として受け取らないようにするためである。どちらも、最初に公開した直後のセキュリティ点検で指摘を受けて直したものである。

まだできないこと

編集記録は、Claude Code のファイル編集ツール(Edit・Write 系)で直したファイルだけを拾う。モデルが sed(文字を探して置き換えるコマンド)のようなコマンドやスクリプトで直したファイルは、未コミットの項目に拾われない。

リモートのウィンドウ・モバイル・クラウドセッションでは、行もパネルも表示されない。別のアカウントに切り替えて実行する方式によっては、アカウントを特定できず claude としてまとめられる。使っていて詰まったら、公開リポジトリに書き残してもらえればよい。