
2026/06/22 6:05
セッション間でプロジェクトを再説明してトークンを無駄にしないでください。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
:** - オリジナルのサマリーは主要なメッセージと流れを適切に捉えていますが、Key Points List(コマンド、ファイルパス、具体的な設定オプションなど)に含まれる特定のアクション可能詳細が不足しています。Stage 1 のリストを高品質な Stage 2 のサマリーに変換する品質と合わせさせるためには、これらの具体性を取り込みつつ読みやすさを維持する必要があります。
Improved Summary: 「Recall は Claude Code を対象とした完全ローカルのプロジェクトメモツールであり、セッション履歴を自動的に簡潔なサマリーに圧縮することで「コールドスタート」の問題を解決します。モデルトークンを消費せず、データを外部へ送信することなく動作します。
.recall/ ディレクトリ内で history.md(プロンプトのログ)と context.md(圧縮された要約・概要)という 2 つの重要なファイルを管理します。TF-IDF と TextRank といったローカル Python アルゴリズムを用いて、外部 API 呼び出しをゼロ回とする抽出型サマライゼーションを実行し、最大限のプライバシーとセキュリティを保証します。ユーザーはプラグインコマンド(/recall:save, /recall:show, /recall:log)を通じて Recall と相互作用したり、recall.config.json を設定することで動作をカスタマイズしたりできます(例:自動保存の有効化、サマリー長の設定、機密情報の赤抜きの有効化など)。プロンプトインジェクションフェンス、機密スキャン、制限された書き込みパスを含む堅牢なセキュリティ対策を備えた Recall は、チームの共有メモとして .recall/ をコミットするか、厳格な個人プライバシーのために git-ignore するという使い分けが可能です。CLAUDE.md 指令書や完全なトランスクリプトのリプレイとは異なり、Recall はセッション活動に対する効率的で自動的な記録を提供し、外部パッケージのインストールや複雑な設定を必要とせずに既存のワークフローを補完します。」本文
🔁 Recall:Claude Code 向けの完全ローカルのプロジェクトメモリ
Recall は、Claude Code のセッションを「冷たい状態」から開始する問題を解決します。すべての処理がお使いのマシン上で完結しており、API キーや外部モデルを使用せず、データを外部に送信しません。
✅ Recall の利点(Why Recall)
- サブスクリプションに無料
- 要約にはローカルの Python アルゴリズムを使用するため、LLM への呼び出しコストは一切かかりません。
- プロジェクトの説明を毎回繰り返す手間を省きつつ、追加の課金モデルを使用しません。
- 利用クレジットを節約
- 要約生成にはゼロのモデルトークン消費です。
- 「ゼロからプロジェクトを説明」する代わりに、コンパクトな
(~1〜2K トークン)からの復帰を行うことで、セッションあたりの使用トーク数を大幅に削減できます。context.md
- データをマシン内に保持
- コードやパス、機密情報は一切 API に送信されません。
- 多くの「メモリ」ツールがコンテキストをモデルエンドポイントへパイプするのに対し、プライバシー保証を提供します。
- 設定不要(ゼロ・ファricション)
、ローカルモデルの実行、キーの設定は不要です。pip install- オフライン動作も可能であり、プラグイン読み込み直後の即時起動が可能です。
📂 ファイル構造
プロジェクトの
.recall/ ディレクトリに以下の 2 つのファイルが作成・管理されます。
| ファイル名 | 役割 | 管理方法 |
|---|---|---|
| ログ(追加専用) プロンプト、AI の返信、触れたファイル、実行されたコマンドなどを記録します。 | プロジェクト終了時に自動更新されます。 |
| 要約 ゴール、未解決タスク、進捗状況などを凝縮した情報です。 | ローカルサマライザによって上書きされます。 次のセッションで読み込まれます。 |
🆚 ビルトイン機能との比較
Claude Code に既にあるメモリ機能(CLAUDE.md など)とは目的が異なります。
| 機能名 | 目的 | メンテナンス | リアライズコスト | 形式 |
|---|---|---|---|---|
CLAUDE.md / | 「どのように働いてほしいか」を定義するルールやノート。 | マニュアル更新が必要 | 小規模(あなたの手作業) | あなたが編集するマークダウン |
| --continue / --resume | 以前の会話を再読み込みする機能。 | なし(セッション選定のみ) | 大規模(スクリプト全体の再生) | ローカルセッション状態 |
| Recall | **「前回何をし、どこで止めたか」**を提供します。 自動キャプチャと要約を行います。 | 不要(動作中書き込まれる) | ~1〜2K トークン(コンパクトなダイジェスト) | プレーンテキスト( 内) |
要約: Recall は「過去の事実」を記録し、モデルトークンの消費を抑えながらプロジェクトの文脈を保持します。
⚙️ 動作原理(How it Works)
| タイミング | 動作内容 |
|---|---|
| セッション中 | /フックがアクティビティを に追加します。キャプチャは増分的(新規ターンのみ)で完全にローカルです。 |
| セッション開始時 | フックが を提示し、再開の意思を確認します。 |
| 終了前 | コマンド実行。ローカルサマライザが を読み込み、 を再作成(または更新)します。 |
| 自動保存設定時 | に設定すると、セッション終了時に自動的に が再生成されます。 |
注意: ここには LLM への呼び出しはありません。
要約は TF-IDF + TextRank(抽出型アルゴリズム)によって生成されます。
サマライザの実装(scripts/summarizer.py
)
scripts/summarizer.py最も中心的な文をランク付けする仕組みです:
- TF-IDF 文ベクトル計算
- 文間のコサイン類似度グラフ構築
- TextRank(PageRank のパワー反復によるスコアリング)
- トップN を元の順序で保持
context.md は、上記の要約に Transcript と Git から得た事実(ゴール、ファイル変化、コマンド履歴など)を付与しています。
- インストール不要:完全実装は同梱済みです。
- NumPy オプション:ベクトル化処理で高速化する
は存在すれば使われますが、なければ純粋な Python 実装でも動作します。結果は同等です。numpy
🧩 コマンド
| コマンド | 機能 |
|---|---|
| ローカルサマライザを実行し、 を更新(または作成)します。 |
| の内容を表示します。 |
| の末尾をフォローして表示します。 |
⚙️ 構成設定(recall.config.json
)
recall.config.jsonプロジェクトルートにこれを置くことでデフォルトを上書きできます。
| キー | デフォルト | 説明 |
|---|---|---|
| | ログと要約の保存先ディレクトリ。 |
| | セッションアクティビティをログに記録するか。 |
| | 終了時に自動で要約を更新: または 。 コマンド不要になります。 |
| | 要約に含まれる文の数。 |
| | 機密情報(API キーなど)を除去するか。 |
| | やコミット履歴を追加するか。 |
| | サマライザに入力するテキストの上限。古いものから除外されます。 |
停止方法:
.recall/.capture-paused ファイルを作成すると一時停止します(削除で再開)。
🔒 プライバシーとセキュリティ
- ネットワーク呼び出しなし:API キー、外部モデル、サードパーティライブラリは使用しません。
- 永久的な認証情報なし:プラグインは API キーや
環境変数を読みません。ANTHROPIC_
Claude が「無効な API キー」を返す場合は、CLI 全体の設定(通常はサブスクリプションログイン状態)の問題です。 - 脱感(Redaction):書き込む前に機密情報(API キー、
アサインメントなど)をストリップします。.env
※これはベストエフォートであり、必ずコミット前に確認してください。 - Git セキュリティ強化:デフォルトで
や外部 diff ツールは無効化されます。core.fsmonitor
で完全に Git 機能を無視することも可能です。include_git: false - スコープされた転写:現在のプロジェクト(cwd)のみを読み取り、他プロジェクトに影響しません。
.recall/
ディレクトリのコミットについて
.recall/| コミットする場合 | git-ignore(無視)する場合 |
|---|---|
| 共有チームメモリとして使用したい場合 他のメンバーと状態を同期したい場合 | 個人のメモリとして使用したい場合 でデフォルト無視されており、安全性が高い場合 |
📦 インストールと利用方法
マーケットプレイスからインストール
このリポジトリは独自のマーケットプレイスに登録されています。
/plugin marketplace add raiyanyahya/recall /plugin install recall@recall
ローカル開発(pip 不要)
サマライザ自体が同梱されているため、特別な依存関係なしで動作します。
claude --plugin-dir /path/to/recall
新しいセッションを開くと、以前の進行状況に基づいてあなたを待ってくれます。
🛠️ 開発者向け情報
環境構築
python -m venv .venv && . .venv/bin/activate pip install pytest ruff bandit numpy # numpy はオプション
チェックとテスト
# リンタとセキュリティ解析 ruff check scripts tests benchmarks bandit -c pyproject.toml -r scripts # テスト実行(numpy 有無どちらでも OK) pytest # パフォーマンスおよび品質検証 python benchmarks/bench.py python benchmarks/bench.py --check # 品質不変性をアサート # プラグイン検証 claude plugin validate .
ファイル構成
recall/ ├── .claude-plugin/plugin.json ├── hooks/hooks.json ├── commands/ ├── scripts/ │ ├── summarizer.py # 同梱された TF-IDF + TextRank │ ├── make_context.py │ ├── capture.py │ └── ... ├── tests/ # ユニットテストスイート ├── benchmarks/bench.py ├── recall.config.json └── pyproject.toml
💡 コントリビューションおよび課題報告
- バグ報告・アイデア: Issue を作成するか、プルリクエストを提出してください。テンプレートは用意済みです。
- セキュリティ脆弱性: 公開 Issue ではなく、
の通りプライベートに報告してください。SECURITY.md - ガイドライン: 貢献前に必ず
を参照してください。CONTRIBUTING.md