本文へスキップ
claudemods

Where Am I:プロンプト上に Claude Code セッション要約を表示

Claude Code のプロンプトの上に、セッションの目標・現在の作業・あなた待ちの項目・次の一手を表示します。

権限

  • ファイルを読み取るお使いのマシン上のファイルの読み取りやディレクトリの一覧取得ができます($.fs.read / list / stat / exists)。
  • モデルを呼び出す(利用枠を消費)独自に Claude へリクエストを送信でき、その分はプランの利用量にカウントされます($.model.* / $.agent.spawn)。
  • ツール呼び出しを傍受Claude が行うすべてのツール呼び出しを参照でき(tool.call / tool.check)、ブロックや変更も可能です。
  • プロンプトを読み取る入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
  • UI を変更Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
  • コマンド・ツールを追加あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。
検証バージョン
v2.1.303
最終検証日
必要バージョン
Claude Code ≥ 2.1.287
表示先
プロンプト上部

Claude Code 内でインストール:

/plugin install where-am-i --marketplace hamzafer/claude-code-mods
すべてのインストール方法 ↓

このModでできること

Where Am I は、Hamza Zafar(hamzafer)による claude-code-mods コレクションの一つで、Claude Code セッション要約をプロンプトの上に表示するコミュニティ Mod です。長い回答のあとや、席を離れて戻ったときに、顔を上げるだけで今どこにいるのかが分かります。バンドには、セッションの目標、今起きていること、Claude があなたに待っていること、次の一手が表示されます。作者は流れを見失いやすい人のために作っており、背後のシステムプロンプトは平易な言葉を使うよう求めています。

バンドは最大 3 行です。◆ Goal: は全体の目標で、はっきり変わらない限り前の目標を保つようモデルに指示されています。now: の行は Claude の作業をリアルタイムで追い、reading src/index.js のようなラベルになり、next: は同じ行に並びます。黄色の waiting on you: の行は、Claude があなたに何かを求めているときだけ現れます。各フィールドは 1 文、最大 70 文字に切り詰められます。

要約は、各ターンの終了後に小さなモデル呼び出しで書かれます。/where は求めに応じて長めの要約を作ります。会話の直近 12 件のメッセージから、最大 6 項目の箇条書きです。複数のバンド系 Mod を使っている場合、Where Am I は共有のバンド順ファイルを使ってそれらと並び順を調整し、作者のテストがこの動作をカバーしています。

デモ

録画では、小さなデモプロジェクトでこの Mod を読み込んだ Claude Code を起動し、README.md を読んでプロジェクトを一文で説明するよう Claude に頼みます。Claude が作業している間、プロンプトの上のバンドはまだ空です。ターンが終わると Claude の回答と done の行が現れ、数秒後に要約がプロンプトの上に表示されます。デモアプリを理解するという内容の Goal: の行、README を読んだことを示す now: の行、そして next: の行です。そのあと Ctrl+C でクリップが終わります。

インストール

インストール欄のどの方法でも使えます。いずれも作者自身のマーケットプレイスから直接インストールします。バンドは最初のターンが終わると現れ、/where はセッション開始時に登録されます。

$ install where-am-i

Claude Code 2.1.287 以上が必要

作者のマーケットプレイスからインストール: hamzafer/claude-code-mods

  1. 1.Claude Code 内で1行

    /plugin install where-am-i --marketplace hamzafer/claude-code-mods

    実行中のセッション(v2.1.275 以降)に貼り付けます。最初に Claude Code がマーケットプレイスの追加を確認します。

  2. 2.シェルから

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install where-am-i@claude-code-mods

    その後、すでに開いているセッションでは /reload-plugins を実行してください。

  3. 3.インストールせずに試す

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/where-am-i

    その1セッションだけ Mod を読み込みます。設定には何も追加されません。

仕組み

要約はホストが保持する $.state のアトムに入るので、ホットリロードしても残ります。要約を書くモデル呼び出しは turn.complete から実行され、待機されないため、ターンはすぐに終わります。hooks/register.tsx より:

on('turn.complete', async ($, e, next) => {
  const r = await next(e)
  if (!e.agentId) {
    await update($, live, () => '')
    void summarize($, prompt, log, e.answer).catch(() => {}) // in the background, so the turn ends at once
  }
  return r
})

summarize は haiku モデルで $.model.complete を呼びます。送るのは、前回の要約、あなたの最新メッセージ(先頭 1500 文字)、このターンのツール呼び出しのラベル、Claude の回答の先頭 2500 文字で、goal、now、waiting、next を持つ JSON を求めます。parseRecap は JSON を囲むコードフェンスを許容し、フィールドを整え、長いダッシュを置き換えます。tool.call フックは now のラベルを書き込み、次の要約のために直近 20 件のラベルを保持します。観察するだけで、呼び出しはそのまま返します。サブエージェントのターンはスキップされ、ほかの Mod による呼び出しは next.origin を確認して無視されます。バンドは AbovePrompt の描画位置に描かれ、アンケートが開いている間は消えます。

カスタマイズ

/config にオプションはなく、コマンドは /where だけです。見た目や動作を変えるには register.tsx を編集します。MODEL は要約に使うモデル、MAX_LOG は保持するツール呼び出しラベルの数、clip は 70 文字の上限を決め、summarize と longRecap の 2 つのシステムプロンプトが口調を決めます。ほかのバンド系 Mod の中での並び順は、設定フォルダーの bands.json からセッションごとに一度だけ読まれるため、変更を反映するには Claude Code を再起動してください。

権限と安全性

何かを実行する前に、プラグインが実行できるすべてのファイルを読みました。hooks/hooks.json、hooks/register.tsx、hooks/bands.ts、型宣言、テストです。package.json、インストールスクリプト、バイナリ、バンドルされたコードはなく、隠し文字、eval、動的 import も見つかりませんでした。MIT ライセンスはリポジトリのルートにあります。

  • モデル呼び出し。 $.model.complete は、メインエージェントの各ターンのあとと /where で実行されます。あなたのプロンプト、ツールのラベル、Claude の回答(/where では直近 12 件のメッセージ)を Claude Code 経由で haiku モデルに送るため、プランまたは API の使用量を消費します。Mod 自身にネットワークのコードはなく、ほかのホストへは何も送られません。
  • 環境変数とファイル。 CLAUDE_CONFIG_DIR と HOME を読み、存在すれば 1 つのファイル <config dir>/claude-code-mods/bands.json を読んでバンドの順序を得ます。ファイルは書き込まず、要約は $.state にあります。
  • フック。 prompt.submit と tool.call は観察するだけで、すべてをそのまま通します。validate は、どちらにも .catch がないと注記しています。Mod は何もブロックも書き換えもしません。/where を追加し、プロンプトの上の UI を変更します。
  • 存在しないもの。 プロセス、シェルコマンド、デーモン、テレメトリ、シークレット、設定の変更はなく、2 つの要約プロンプト以外にモデルへの指示もありません。

claude plugin validate はエラーも警告も報告せず、作者の 7 件のテストは Claude Code 2.1.303 の claude plugin test で全件合格しました。

ファイルを読み取る
お使いのマシン上のファイルの読み取りやディレクトリの一覧取得ができます($.fs.read / list / stat / exists)。
モデルを呼び出す(利用枠を消費)
独自に Claude へリクエストを送信でき、その分はプランの利用量にカウントされます($.model.* / $.agent.spawn)。
ツール呼び出しを傍受
Claude が行うすべてのツール呼び出しを参照でき(tool.call / tool.check)、ブロックや変更も可能です。
プロンプトを読み取る
入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
UI を変更
Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
コマンド・ツールを追加
あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。

互換性とトラブルシューティング

macOS 上の Claude Code 2.1.303 で確認しました(validate、テスト、録画)。バンドが表示されないときは:

  • まず 1 ターンを完了させてください。要約はその後に書かれ、モデル呼び出しが失敗したり解析できない返答だったりすると、バンドは空のままです。
  • 入力欄の上でアンケートが開いている間は非表示で、閉じると戻ります。
  • /where が不明なコマンドになる場合、Claude Code に同名のコマンドがすでにあり、Mod はそのコマンドなしで起動します。
  • /where が「Could not build a recap right now」と返す場合は、モデル呼び出しに応答がありませんでした。もう一度試してください。

バンドは next-steps の状態を読むため、その Mod が一覧を表示している間は、自分の next の部分を隠します。

よくある質問

Where Am I はトークンを消費しますか?
はい、少しだけ消費します。メインエージェントのターンが終わるたびに、Claude Code を通じて haiku モデルへ 1 回バックグラウンドで呼び出し、要約を書かせます。出力は最大 300 トークンです。/where を実行すると、さらに 1 回(出力は最大 500 トークン)呼び出します。Mod 自身がネットワークリクエストを送ることはありません。
要約には何が入りますか?
短い 4 つのフィールドで、それぞれ 1 文・約 70 文字に切り詰められます。goal はセッションの狙い、now は直前に終わった作業、waiting は Claude があなたに求めていること(空なら非表示)、next は次の一手です。
Claude の作業中、“now” の行はどう更新されますか?
Claude がツールを呼ぶたびにフックが、「reading src/login.js」や「running npm test」のような平易なラベルに置き換えます。ほかの Mod がバックグラウンドで行う呼び出しは無視され、ターンが終わるとモデルが書いた要約に戻ります。
最初のプロンプトのあとに要約が出ないのはなぜですか?
要約はターン終了後にバックグラウンドのモデル呼び出しで書かれます。最初の回答から数秒後に現れ、それまでバンドは非表示のままです。
next-steps Mod も使うとどうなりますか?
next-steps が次のプロンプトの一覧を表示している間は、Where Am I は自分の「next」の部分を省き、内容が重ならないようにします。
Claude Code で動作中の Next Stepsおすすめ

Next Steps

各ターンの後、Claude Code の入力欄の上に次に送りそうなプロンプトを 2〜3 件表示します。1、2、3 で下書き入力。

  • プロンプト上部
  • モデルを呼び出す(利用枠を消費)
  • プロンプトを読み取る
  • UI を変更

v2.1.291 で検証済み

Claude Code で動作中の Context Barおすすめ

Context Bar

Claude Code のコンテキストウィンドウを、カテゴリごとに色分けした 1 本の積み上げバーとしてプロンプトの上に表示します。トークン数付き。

  • プロンプト上部
  • UI を変更
  • コマンド・ツールを追加
  • データを保存

v2.1.291 で検証済み

Claude Code で動作中の Mission Controlおすすめ

Mission Control

Claude Code のメインエージェント、サブエージェント、すべてのツール呼び出しをライブで表示するペイン。触れたファイルのコードマップ付き。

  • ペイン
  • プロンプト上部
  • ファイルを読み取る
  • ファイルを書き込む
  • コマンドを実行
  • モデルを呼び出す(利用枠を消費)
  • ツール呼び出しを傍受
  • UI を変更
  • コマンド・ツールを追加

v2.1.296 で検証済み

同じカテゴリの Mod: タイマー、ToDo、スタンドアップ、スラッシュコマンド。