Claude Media
Claude Codeのrememberプラグインでセッションの記憶を引き継ぐ

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がメモを書く

標準の自動メモリ

Claudeが必要と判断した事実を、種類別のトピックファイルに残します。索引はMEMORY.mdで、読み込みは先頭200行か25KBまでです。

作業の経過を畳む

remember

フックが拾った会話をHaikuが要約し、時間軸の階層ログに畳みます。読み込み量はsession_start_max_bytesなどの設定で絞ります。

標準の自動メモリは「覚えるべき事実」を、rememberは「昨日までに何をしたか」を担う形です。両方を同時に有効にしても、保存先が別なので衝突しません。ただし、どちらも起動時にコンテキストを使う点は同じです。

導入する手順

導入は2コマンドで終わります。

手順

rememberの導入

  1. 1

    マーケットプレイスを追加する

    READMEが案内するのは、提供元のマーケットプレイスです。

  2. 2

    プラグインを入れる

    remember@dpt-pluginsを指定します。

  3. 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つです。

  1. Haikuを呼ぶclaudeが、フック実行時にも認証済みであること
  2. メモリに会話の内容が残ることを、チームの扱いに照らして許容できること
  3. 追加でコンテキストを使うこと。プラグインのコンテキスト消費はプラグイン詳細の確認手順で測れます

フック全般の仕組みはClaude Code Hooks完全ガイドで確認できます。

この記事を共有:XはてブLinkedIn