mcpField
C
claudemem

claudemem

github.com/zelinewangエージェントワークフロー0247 回インストール2 週間前に更新
リポジトリ

claudemem について

claudememは、AIエージェントが会話をまたいで知識を保存・検索するためのメモリスキルです。検索可能なノートと構造化されたセッションレポートを相互に関連付け、読みやすいMarkdownファイルで保存します。

主な機能

  1. 01知識ノートの自動保存
  2. 02/wrapupによるセッションレポート作成
  3. 03/recallによるメモリ検索
  4. 04ノートとセッションの双方向リンク
  5. 05セッション開始時の最近のコンテキスト注入
  6. 06ポータブルなMarkdown形式で保存

活用シーン

  1. 01会話をまたいだプロジェクト決定の保持
  2. 02特定トピックの過去ノート検索
  3. 03構造化された作業セッション記録
  4. 04作業開始時の最近のメモリ読み込み

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/zelinewang/claudemem --skill claudemem

インストール後、Claude Code で/claudememを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

commands/
recall.md
wrapup.md
scripts/
install.sh

詳細

claudemem — AI エージェントのための永続メモリ

会話をまたいでナレッジを記録し、取得します。次の 2 つの動作があります。

  1. 自動的に作業中にナレッジノートを保存します(通知は表示されず、ユーザーの操作も不要です)
  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:ノートの保存

ノートを保存するたびに、次の手順に従ってください。

  1. 重複を検索します:note search "<key phrase>" --format json
  2. トピックが存在する場合:note append <id> "new info"
  3. 新しい場合:note add <category> --title "..." --content "..." --tags "..."
  4. まず既存のカテゴリを確認します:note categories
  5. インジケーターを表示します:[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 に適しており、ポータブルです。

コメント