scarrillo/agent-plugins/tree/main/where-were-we
where-were-we
プロンプトに時刻を付け、フッターに上下のプロンプト移動を追加し、プロジェクトの前回セッションがどこで終わったかを振り返る Claude Code mod です。
この mod について
where-were-we は、トランスクリプトのプロンプトにタイムスタンプを付け、フッターで上下矢印を使ってプロンプトを移動できるようにし、/where-were-we コマンドで最近のプロンプトの一覧、ジャンプ、プロジェクトの前回セッションの終了状況と claude --resume コマンドを示す Claude Code プラグインです。起動時には、前回セッションを要約する挨拶トーストも表示します。設定(件数、順序、挨拶)は ~/.claude/ 配下の mod 専用 JSON ストアに保存されます。Claude Code 2.1.288+ と、プロンプトジャンプに必要なフルスクリーンレイアウトが必要です。/plugin marketplace add scarrillo/agent-plugins と /plugin install where-were-we@scarrillo でインストールします。Mod はローカルのセッショントランスクリプトと Claude Code のプロンプト履歴だけを読み、ネットワークには何も送信せず、settings.json も変更しません。
インストール
まず作者の README で marketplace とプラグイン名を確認してください。コマンドはリポジトリの構成によって変わる場合があります。
claude plugin marketplace add scarrillo/agent-plugins claude plugin install where-were-we
原文 / README
where-were-we
A Claude Code mod that timestamps your prompts in the transcript, lets you jump back through them, and recaps where your last session in a project left off.
Install
/plugin marketplace add scarrillo/agent-plugins
/plugin install where-were-we@scarrillo
Requirements
- Claude Code 2.1.288 or later. Mods use Claude Code's function-hooks API, which is early access and can change between releases.
- Jumping to a prompt (footer arrows, clicking a list line) needs the fullscreen layout.
Features
- Prompt rows show when you sent them:
12:21:00 ❯ my promptfor today,2026-10-02 18:04:11 ❯ …for older prompts. Wrapped lines stay aligned under the prompt text. - Footer:
↑ ↓at the end of the hint line under the prompt. ↑ and ↓ step through your prompts; while navigating it shows your position (↑ ↓ 2/7). Sending a prompt resets it. /where-were-welists your 6 most recent prompts, newest at the bottom; click a line to jump to that prompt./where-were-we count [n]shows or sets how many prompts the list shows (1–50)./where-were-we order [chron|reverse]shows or sets the list order:chronputs the newest last (the default),reverseputs it first./where-were-we up | down | neweststeps like the arrows, from the keyboard (works mid-turn)./where-were-we lastrecaps how the previous session in this project ended: its final prompts (same count and order) and theclaude --resume <id>command to pick it up. It reads Claude Code's prompt history (~/.claude/history.jsonl), skipping slash and!commands, and never reads pasted content.- Startup greeting: when you start a fresh session in a project, a toast says how the last one ended:
Last here yesterday 18:04: "run the tests" · /where-were-we last. Not on--resume/--continue,/clearor compaction, and not inclaude -p. /where-were-we greeting [on|off]shows or sets whether the startup greeting appears (on by default)./where-were-we statusprints the mod's state and recent log lines for troubleshooting.
The count, order and greeting setting are kept in the mod's own store (a JSON file of its own under ~/.claude/), not in settings.json, and last across sessions.
Prompts sent while the mod is loaded are stamped as they're stored. Prompts from before (a --resume, or the mod enabled mid-session) and prompts queued mid-turn are read from the session's transcript file.
What it reads and runs
A mod runs with your permissions, so here is everything this one touches:
- This session's transcript (
~/.claude/projects/<project>/<session>.jsonl), filtered withgrepto the lines that can be your prompts, to recover their times. - Claude Code's prompt history (
~/.claude/history.jsonl), filtered withgrepto this project's lines, for/where-were-we lastand the startup greeting. Only the prompt text (display) is read, never pasted content. - Its own store, a JSON file under
~/.claude/, for the count, order and greeting settings.
It writes nothing else, sends nothing over the network, and never changes your files or settings.json. Run claude plugin validate <path> on the mod to see every hook it registers and every API it calls.
Limitations
- Jumping scrolls the transcript only in the fullscreen layout. On the main screen the history is the terminal's own scrollback, which a mod can't move.
- A row drawn as time-only today keeps that form past midnight until it redraws.
- The prompt list matches listing lines to prompts by second and text, since a command's output row carries no ids. A line that can't be matched draws dim and isn't clickable.
