claudemem について
claudememは、AIエージェントが会話をまたいで知識を保存・検索するためのメモリスキルです。検索可能なノートと構造化されたセッションレポートを相互に関連付け、読みやすいMarkdownファイルで保存します。
主な機能
- 01知識ノートの自動保存
- 02/wrapupによるセッションレポート作成
- 03/recallによるメモリ検索
- 04ノートとセッションの双方向リンク
- 05セッション開始時の最近のコンテキスト注入
- 06ポータブルなMarkdown形式で保存
活用シーン
- 01会話をまたいだプロジェクト決定の保持
- 02特定トピックの過去ノート検索
- 03構造化された作業セッション記録
- 04作業開始時の最近のメモリ読み込み
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zelinewang/ claudemem --skill claudememインストール後、Claude Code で/claudememを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/recall.mdwrapup.mdscripts/install.sh詳細
claudemem — AI エージェントのための永続メモリ
会話をまたいでナレッジを記録し、取得します。次の 2 つの動作があります。
- 自動的に作業中にナレッジノートを保存します(通知は表示されず、ユーザーの操作も不要です)
- コマンドで(
/wrapup)構造化されたセッションレポートを保存し、相互リンクされたノートを作成します
スラッシュコマンド
- /wrapup [title] — セッション終了時に、ナレッジノートを抽出し、詳細なセッションレポートを保存して、すべてを相互リンクします。
- /recall [topic] — 永続メモリからトピックを検索するか、最近のアクティビティを表示します。
自然なトリガー:「これを覚えておいて」、「…について何を覚えてる?」、「まとめて」、「前回は何をした?」
セットアップ
claudemem が PATH にない場合:
curl -fsSL https://raw.githubusercontent.com/zelinewang/claudemem/main/skills/claudemem/scripts/install.sh | bash
CLI リファレンス
すべてのコマンドは、構造化出力用の --format json をサポートしています。
# Notes
claudemem note add <category> --title "..." --content "..." --tags "..." [--session-id "..."]
claudemem note search "query" [--in category] [--tag tags]
claudemem note list [category]
claudemem note get <id> [--tag X] # Supports 8-char prefix; --tag: only if tagged X
claudemem note append <id> "additional content"
claudemem note update <id> --content "..." [--title "..."] [--tags "..."] # --tags replaces all tags
claudemem note update <id> --add-tag X,Y --remove-tag Z # tags only, keeps the rest
claudemem note delete <id>
claudemem note categories
claudemem note tags
# Sessions
claudemem session save --title "..." --branch "..." --project "..." --session-id "..." [--tags "..."] [--related-notes "id:title:cat,..."]
claudemem session list [--last N] [--date today] [--date-range 7d] [--branch X] [--tag X]
claudemem session search "query" [--branch X] [--tag X]
claudemem session get <id> [--tag X]
claudemem session update <id> --add-tag X --remove-tag Y
# Search
claudemem search "query" [--type note|session] [--limit N]
claudemem search "query" --compact # IDs + titles only
claudemem search "query" --category X --tag Y # Faceted filters (whole tags, all required; --tag repeatable)
claudemem search "query" --after 2025-01-01 # Date range
claudemem search "query" --sort date # Chronological (default: relevance + recency boost)
claudemem search "query" --semantic # Force semantic even if feature flag off
# Tags
claudemem context inject --tag project-x # inject only entries carrying the tag
claudemem stats --tag project-x # the statistics of the tagged entries
claudemem tag apply --file tags.jsonl [--dry-run] # bulk: {"id","kind":"note|session","add":[],"remove":[]} per line
# Several stores
claudemem config set stores.read "~/team-memory" # reads also return ~/team-memory's entries, each naming its store
claudemem search "query" --read-stores "" # this store alone, for one call
claudemem --store ~/team-memory note append <id> "..." # writes go to --store only: write where the entry lives
claudemem move --to ~/team-memory --file ids.txt --dry-run # then without --dry-run: moves the listed ids there, keeping them
# Context
claudemem context inject [--limit N] [--project path] [--tag X] # Recent notes + sessions overview
# Code
claudemem code outline <file> # Structural symbols (Go/Python/TS/Rust)
# Knowledge Graph
claudemem graph # DOT format (pipe to Graphviz)
claudemem graph --format json # Adjacency list
# Utilities
claudemem stats [--top-accessed] # Storage stats + access tracking
claudemem reindex [--vectors] [--all] # Rebuild search/vector indexes
claudemem config set/get/list/delete | export | import | verify | repair
プロトコル(固定 — 必ず従ってください)
これらの入力と出力は予測可能です。毎回、正確に従ってください。
プロトコル 1:ノートの保存
ノートを保存するたびに、次の手順に従ってください。
- 重複を検索します:
note search "<key phrase>" --format json - トピックが存在する場合:
note append <id> "new info" - 新しい場合:
note add <category> --title "..." --content "..." --tags "..." - まず既存のカテゴリを確認します:
note categories - インジケーターを表示します:
[noted: "title" -> category]
プロトコル 2:セッションレポート(/wrapup)
セッションレポートは、明示的な /wrapup または「まとめて」の場合にのみ作成し、自動では作成しません。
すべてのセッションレポートで、次のテンプレートをそのまま使用します。
## Summary
2-3 substantial paragraphs: goal, accomplished, current state, significance.
## What Happened
Numbered paragraphs. Each phase: what, why, file paths, cause-and-effect, decisions. Minimum 3 phases.
## Key Decisions
- **Decision**: Rationale. Alternatives considered and why rejected.
## What Changed
- `path/to/file` — What changed and why
## Problems & Solutions
- **Problem**: Root cause (not just symptoms)
**Solution**: Fix and why it works
## Learning Insights
- Reusable knowledge for future sessions
## Related Notes
- `note-id` — "Title" (category)
## Next Steps
- [ ] Concrete actionable follow-up
プロトコル 3:相互参照
/wrapup 中に、ノートとセッションを相互にリンクする必要があります。
- wrapup 中に保存するノート:
--session-id "$SESSION_REF"を含めて、ノート → セッションをリンクします - セッションの保存:
--related-notes "id:title:category,..."を含めて、セッション → ノートをリンクします
これにより、任意のノートから、それを作成したセッションを確認でき、任意のセッションから、抽出されたナレッジを確認できます。
プロトコル 4:取得インジケーター
過去のナレッジが見つかり、それを使用した場合は、必ず次を表示します。
[memory: Found "TikTok Rate Limits" — 100/min per API key]
機能(柔軟 — エージェントが使用タイミングと方法を判断)
状況によって異なります。以下のトレードオフを参考に、適切に判断してください。
検索モード
| 方法 | 役立つ場面 | トークンコスト |
|---|---|---|
search "X" --compact --format json | クイックスキャン:「これについて何か知っているか?」 | 約 100 トークン |
search "X" --format json | プレビュー付きの全コンテキストが必要な場合 | 約 2000 トークン |
search "X" --category Y --tag Z | 分野がわかっており、精度の高い結果が必要な場合 | 変動 |
search "X" --semantic | 機能フラグがオフでもハイブリッド検索を強制する場合 | 約 100〜2000 |
note get <id> | 特定のノート 1 件の全内容が必要な場合 | 約 500 トークン |
context inject | セッション開始時に最近のナレッジの概要を確認する場合 | 約 1〜2KB |
stats --top-accessed | 最も頻繁に使用されるノートを確認する場合(ROI の追跡) | 約 200 トークン |
graph --format json | ノート ↔ セッションの関連構造を把握する場合 | 約 500〜2000 |
デフォルトでは、関連性に新しさの加点を加えて並べ替えます(7 日未満のエントリーは最大 20% のスコア加点を受け、30 日かけて減衰します)。時系列順に並べるには --sort date を使用します。
ハイブリッド検索は、features.semantic_search が有効な場合に自動で行われます。Ollama の埋め込み(または TF-IDF フォールバック)を、Reciprocal Rank Fusion を介して FTS5 と組み合わせます。--semantic フラグは不要です。すべての検索でセマンティックマッチングが利用されます。セットアップ:config set features.semantic_search true && reindex --vectors
コードインテリジェンス
code outline <file> は、本文を含めずに関数シグネチャ、クラス、型などの構造シンボルを抽出します。ファイル全体を読み取る場合の約 500 以上のトークンに対し、シンボルあたり約 10〜20 トークンです。
Go(精度約 95%)、Python(約 90%)、TypeScript/JS(約 80%)、Rust(約 85%)をサポートしています。未対応の言語では、空の結果が返されます。
コンテキスト注入
context inject は、最近のノート、セッション、統計情報を返します(約 1〜2KB)。自動読み込み用の SessionStart フックとして設定するか、重要な作業を開始するときに手動で実行できます。
{
"hooks": {
"SessionStart": [{
"matcher": "",
"hooks": [{ "type": "command", "command": "claudemem context inject --limit 5", "timeout": 10000 }]
}]
}
}
ドメインナレッジ(参考 — 判断材料)
保存する価値のある情報
価値が高い情報(Claude が今後のセッションで把握していない情報):
- プロジェクト固有の判断とその理由(Y ではなく X を選んだ理由、却下した代替案)
- このコードベース固有のバグの根本原因と診断パターン
- 設定上の癖、環境固有の注意点、文書化されていない API の動作
- 作業中に把握したユーザーの好み(命名規則、ワークフローの選択)
価値の低い情報(省略 — Claude がすでに知っている、または必要としていない情報):
- 一時的なデバッグ状態、一時的な出力
- 公開ドキュメントで得られる一般的なプログラミング知識
- ユーザーが明示的に一時的なものだと伝えた情報
データモデル
- メモ:カテゴリ、タグ、内容、メタデータを持つ知識の断片。正本:
~/.claudemem/notes/<category>/<title>.md - セッション:構造化されたセクションを含む作業レポート。正本:
~/.claudemem/sessions/<title>.md - 相互参照:Note.metadata.session_id → Session、Session.RelatedNotes[] → Notes
- インデックス:
~/.claudemem/.index/search.dbにある SQLite FTS5(再生成可能なキャッシュであり、正本ではありません)
すべてのデータは YAML フロントマターを含むプレーンな Markdown 形式で、人が読みやすく、Git に適しており、ポータブルです。