Claude Codeのrememberプラグインでセッションの記憶を引き継ぐ
rememberプラグインはセッションをHaikuで日次ログに圧縮し、次回の起動時にコンテキストへ戻します。導入、/remember、/remember:doctor、設定と注意点をまとめました。
rememberは、Claude Codeのセッションを自動で保存し、翌日以降のセッション開始時にコンテキストへ戻すプラグインです。Digital-Process-Toolsが公開しており、Claude Code標準の機能ではありません。仕組みは、フックでセッションを拾い、Haikuで要約し、日次・週次の階層ログに畳むというものです。
入れたあとに打つコマンドはほとんどありません。覚えておくのは、引き継ぎメモを書く/rememberと、動いていないときに原因を出す/remember:doctorの2つです。
rememberは何を保存し、何を次のセッションに渡すのか
保存の流れは、ツール呼び出しをきっかけにsave-session.shが走り、Pythonで会話を抽出してHaikuが要約する、という順です。要約はnow.mdに入り、1時間ごとの圧縮でtoday-YYYY-MM-DD.mdになります。日次の統合ではrecent.md(直近7日)とarchive.md(それ以前)に畳まれます。
READMEの言い方では、上の層ほど下の層を圧縮したものです。生のやり取りは1行の要約になり、日次の要約は週次の段落になります。
セッション開始時には、SessionStartフックが次のファイルをコンテキストへ入れます。
identity.md: エージェントが何者かを書いたファイル。利用者が自分で書くremember.md: 前回の/rememberで書いた引き継ぎメモnow.md: 現在のセッションのバッファtoday-*.md: 今日の圧縮済み履歴recent.md: 直近7日分archive.md: それ以前の履歴
肥大化して切り出されたarchive-YYYY-MM-DD.mdとrecent-YYYY-MM-DD.mdは、起動時に名前だけが示されます。中身は注入されず、検索の対象として残ります。コンパクション後に再注入されるのはidentity.mdだけで、残りは既に渡し済みという扱いです。
保存先は、既定ではプロジェクト内の.remember/です。外部保存モードにすると~/.remember/<slug>/に置けます。
標準の自動メモリとどこが違うか
Claude Code標準の自動メモリは、Claudeが自分でメモを書く方式です。保存先は~/.claude/projects/<project>/memory/で、索引のMEMORY.mdの先頭200行か25KBまでが毎回読み込まれます。詳細は自動メモリの保存先とオフ設定にまとめています。
rememberは書き手も形も違います。
標準の自動メモリとrememberの違い
標準の自動メモリ
Claudeが必要と判断した事実を、種類別のトピックファイルに残します。索引はMEMORY.mdで、読み込みは先頭200行か25KBまでです。
remember
フックが拾った会話をHaikuが要約し、時間軸の階層ログに畳みます。読み込み量はsession_start_max_bytesなどの設定で絞ります。
標準の自動メモリは「覚えるべき事実」を、rememberは「昨日までに何をしたか」を担う形です。両方を同時に有効にしても、保存先が別なので衝突しません。ただし、どちらも起動時にコンテキストを使う点は同じです。
導入する手順
導入は2コマンドで終わります。
rememberの導入
- 1
マーケットプレイスを追加する
READMEが案内するのは、提供元のマーケットプレイスです。
- 2
プラグインを入れる
remember@dpt-pluginsを指定します。 - 3
Claude Codeを再起動する
フックの登録はセッション開始時に読まれます。有効化したセッションの途中では、PostToolUseが発火せず、何も保存されません。エラーも出ません。
/plugin marketplace add Digital-Process-Tools/claude-marketplace
/plugin install remember@dpt-plugins更新は/plugin marketplace updateです。提供元のドキュメントには、Anthropicの公式マーケットプレイスにも載っていて、/pluginで「remember」と検索できるとあります。ただし公式側は各プラグインをコミットのshaで固定し、更新PRで進める仕組みです。新しい版が届く時期は読めません。最新の修正がすぐ欲しいなら、提供元のマーケットプレイスから入れる形になります。
動作要件
READMEの要件は次のとおりです。
| 項目 | 内容 |
|---|---|
| Python | 内容3.9以上 |
| Claude CLI | 内容claudeが使え、Haikuにアクセスできること |
| Bash | 内容3.2以上(macOS標準で足りる) |
| jqとcoreutils | 内容macOSとLinuxには標準で入っている |
| Windows | 内容Git Bash / MSYS2(jqとpython3入り)かWSLなど、POSIXシェルが必要 |
Windowsについては、スイートの多くがwin32ではスキップされると書かれています。動かない場合は、提供元のWindows向けドキュメントに既知の落とし穴がまとまっています。
4つのフックが何をするか
プラグインは4つのフックを登録します。
| フック | スクリプト | 役割 |
|---|---|---|
| SessionStart | スクリプトsession-start-hook.sh | 役割記憶の注入と、取りこぼしたセッションの復旧 |
| UserPromptSubmit | スクリプトuser-prompt-hook.sh | 役割現在時刻をプロンプトに付ける |
| PostToolUse | スクリプトpost-tool-hook.sh | 役割ツール呼び出しが一定量たまると保存 |
| SessionEnd | スクリプトsession-end-hook.sh | 役割未保存分を残らず保存 |
SessionEndは、クールダウンと最低発言数のゲートを無視して保存します。最後の機会だからです。一方で引き継ぎメモは書きません。
SessionEndにはもう一つ事情があります。Claude Codeは、このイベントに登録された全フックで1.5秒の予算を共有します。遅いマシンでは、フックの前処理だけで超えることがありました。提供元はこのフックを、標準入力を読んだあとに自分を切り離して再起動する作りへ直しています。プラグインとして入れた場合に、利用者が何かを足す必要はありません。
手動でsettings.jsonに登録した場合は、フックに"timeout": 10を宣言すれば予算が広がります。
引き継ぎメモ /rememberの使い方
セッションを閉じる前や/clearの前に/rememberを打つと、エージェントが短い引き継ぎメモを.remember/remember.mdに書きます。終わったこと、次にやること、読み取りにくい前提を残す想定です。自動の要約が「何が起きたか」を拾い、メモが「次に何が大事か」を担います。
仕様として知っておきたい点が3つあります。
- 書き込み先は
scripts/write-handoff.shが決めます。トランスクリプトから拾ったパスには書きません - 読まれても消えません。次の
/rememberで上書きされるまで残り、再配信のたびに「N回配信済み」と表示されます - gitで追跡されている
remember.mdと、シンボリックリンクのremember.mdは注入されません
最後の点は、リポジトリ側が仕込んだファイルを、利用者自身のメモとして渡さないための仕様です。
同じプロジェクトを2つのペインで開くと、既定ではremember.mdを共有します。両方で/rememberを打つと上書きし合うため、設定のhandoff_modeをper_sessionにします。この場合のファイル名はremember.<session_id>.mdです。
動かないときは /remember:doctor
メモリが現れず、理由も出ないときは/remember:doctorを打ちます。解決済みのパス、保存モード、プロジェクトごとの各フックが一度でも発火したか、最後に保存が成功した時刻を出力します。
落とし穴
フックが登録されていないと、何も起きないまま見える
まず疑うのは、有効化したあとに再起動していないことです。もう一つ、Claude Codeが作ったセッションディレクトリと、プラグインが計算したスラッグが食い違うと、保存が別の場所に向かいます。doctorはこの2つを名指しで報告する対象です。
doctorは、直近の要約が失敗しているかも見ます。失敗が続いていれば、結論の行が「キャプチャは正常」ではなく「要約の最後の試行が失敗した」になります。ログインが切れていれば、Claude Code自身のCLIでログインし直すよう案内されます。
スクリプト用にdoctor.sh --jsonもあります。ただし提供元は、このJSONの形をまだ安定した契約として扱っていません。schema_versionを確認してから使います。
費用と通信の範囲
要約と圧縮にはHaikuを使います。READMEは、1回のセッション保存が0.01ドル未満で、1日動かして数セントと説明しています。
通信の範囲も明記されています。要約は、すでに入れてログイン済みのCLIを呼ぶ形です。
REMEMBER_SUMMARIZERが提供元を選びます。claude、codex、auto(既定)がありますclaude -pはツールなし、MCPなし、フックなしで、隔離した一時ディレクトリで実行されます- 送られるのは、抽出してフィルタをかけたセッションの文字列だけで、そのCLIが元々話す相手以外には出ません
認証情報はプラグイン自身は読みません。子プロセスのclaude -pが、親の環境変数とClaude Codeのログインを引き継ぎます。別用途のAnthropic APIキーを環境に置いていると、それがログインより優先される場合があります。避けたいときは、Claude Codeを起動する側の環境でそのキーを外します。
保存したメモリの扱い
プラグインのフックは、ほかのフックと同じく自分のシェル権限で動きます。メモリには、会話に出たものがそのまま要約されて残ります。~/.remember/は~/.ssh/と同じ注意で扱う、というのが提供元の勧めです。
外部保存モードの親ディレクトリが、上流付きのgitリポジトリなら、メモリは自動でコミットとプッシュの対象になります。有効化のフラグはなく、この条件だけがトリガーです。バックアップ先は自分が所有するリポジトリにします。
設定で押さえる項目
設定は3層のディープマージです。後ろほど優先されます。
| 層 | パス |
|---|---|
| プラグイン同梱 | パス<plugin>/config.json |
| ユーザー全体 | パス~/.remember/config.json |
| プロジェクト | パス<REMEMBER_DIR>/config.json |
最初に見直す価値があるキーは次のとおりです。
| キー | 既定値 | 効果 |
|---|---|---|
data_dir | 既定値.remember | 効果メモリの保存先。絶対パスか~で外部保存になる |
cooldowns.save_seconds | 既定値120 | 効果保存の最小間隔 |
thresholds.min_human_messages | 既定値3 | 効果保存に必要な人間の発言数 |
thresholds.session_start_max_bytes | 既定値9000 | 効果起動時に注入する量の上限(バイト) |
thresholds.memory_inject_max_bytes | 既定値200000 | 効果これを超えるファイルは、注入せず名前とサイズだけ示す |
model | 既定値haiku | 効果要約に使うモデル |
handoff_mode | 既定値single | 効果per_sessionで2ペインの上書きを避ける |
features.plugin_promos | 既定値true | 効果同じ提供元の他プラグインの案内 |
prompt_stampも触れておく価値があります。UserPromptSubmitフックは、既定でプロンプトごとに時刻とコンテキストの使用率を差し込みます。stableにすると、名前だけになります。時刻や使用率はターンごとに変わる値なので、毎回の差し込みを避けたいときの選択肢です。
features.plugin_promosは、SessionStartが7日に1回ほど、同じ提供元の未導入プラグインを一行で案内する機能です。モデルには見えないチャンネルに出ます。止めるにはconfig.jsonに"features": {"plugin_promos": false}を書きます。
入れる前に確かめたいこと
rememberの価値は、毎回の手書きの引き継ぎをなくすことにあります。向くのは、数日にわたって同じリポジトリを触る場面です。
一方で、読み込み量はsession_start_max_bytesの9000バイトで頭打ちになります。長い履歴の細部まで戻ってくるわけではなく、READMEも「完全な記憶ではなく、圧縮された実用的な記憶」と書いています。細部が必要な作業では、CLAUDE.mdや標準の自動メモリのほうが確実です。
導入を決める前に、確認しておく点は3つです。
- Haikuを呼ぶ
claudeが、フック実行時にも認証済みであること - メモリに会話の内容が残ることを、チームの扱いに照らして許容できること
- 追加でコンテキストを使うこと。プラグインのコンテキスト消費はプラグイン詳細の確認手順で測れます
フック全般の仕組みはClaude Code Hooks完全ガイドで確認できます。