npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

claude-memex

v2.5.4

Published

Long-term memory for Claude Code via MCP

Readme

claude-memex

Claude Code用の長期記憶ツール。セッション終了時に会話を自動保存し、過去の記憶をMCP経由で検索できる。外部データ(会議録、Slackログ、メール等)の取り込みにも対応。

セットアップ

1. インストール

npmでグローバルにインストールします。これにより claude-memexclaude-memex-hookclaude-memex setup の3つのコマンドが使えるようになります。

npm install -g claude-memex

2. Gemini APIキーの設定

会話の要約生成に Gemini API(Flash-Lite)を使います。有料プラン(従量課金)の Gemini APIキーを用意してください(無料枠は1日20リクエストの制限があり、通常利用で上限に達します)。

以下のコマンドでAPIキーを登録します。

claude-memex setup

3. MCP登録

Claude Code が過去の記憶を検索できるように、MCPサーバーとして登録します。スコープや設定ファイルは環境に合わせてください。

# 例
claude mcp add-json claude-memex '{"type":"stdio","command":"claude-memex"}' --scope user

4. Hook登録

セッション終了時に会話を自動保存するために、Claude Code の SessionEnd Hook を登録します。スコープや設定ファイルは環境に合わせてください。

// 例: ~/.claude/settings.json
"SessionEnd": [
  {
    "type": "command",
    "command": "claude-memex-hook"
  }
]

5. 会社名・プロジェクト名の設定(任意)

記憶に会社名やプロジェクト名を付与しておくと、検索時に絞り込めます。各プロジェクトのルートに .env を作成してください。

COMPANY_NAME=あなたの会社名
PROJECT_NAME=プロジェクト名

PROJECT_NAME を省略した場合、プロジェクトのディレクトリ名が自動的に使われます。

6. CLAUDE.md への記述(推奨)

MCPツールを登録しただけでは、Claude Code が自発的に過去の記憶を検索するとは限りません。~/.claude/CLAUDE.md(グローバル)に以下の指示を追記しておくと、積極的に参照するようになります。

過去の会話や以前の決定事項に関連しそうな場合は、まずmcp(claude-memex)で検索すること

初回実行時の注意

初回のセッション終了時に、Ruri v3モデル(約1.2GB)の自動ダウンロードが発生するため時間がかかります。2回目以降はキャッシュされます。

MCPツール

search_memory

過去のClaude Codeセッションや業務コンテキストから関連する記憶を検索する。

| パラメータ | 型 | 必須 | 説明 | |-----------|-----|------|------| | query | string | ✅ | 検索クエリ | | project_name | string | - | プロジェクト名で絞り込み | | company_name | string | - | 会社名で絞り込み | | source | string | - | データソースで絞り込み(例: claude-session, meeting, slack) | | date_from | string | - | 検索対象の開始日(ISO 8601形式) | | date_to | string | - | 検索対象の終了日(ISO 8601形式) | | limit | number | - | 最大件数(デフォルト: 10) |

list_filters

検索フィルタに指定可能な値(source, company_name, project_name)の一覧を返す。search_memoryのフィルタ値が不明な場合に使う。

| パラメータ | 型 | 必須 | 説明 | |-----------|-----|------|------| | なし | - | - | - |

ingest_document

外部データ(会議録、Slackログ、メール等)を取り込む。テキストを意味単位でチャンク分割→要約→Embedding→DB保存する。

| パラメータ | 型 | 必須 | 説明 | |-----------|-----|------|------| | text | string | ✅ | 取り込むテキスト本文 | | source | string | ✅ | データの出所(例: meeting, slack, email) | | company_name | string | - | 会社名 | | project_name | string | - | プロジェクト名 | | timestamp | string | - | データの日時(ISO 8601形式、デフォルト: 現在時刻) |

データ確認

Web Viewer(推奨)

ブラウザでデータを閲覧・検索できるビューアーを起動できます。

claude-memex viewer

http://localhost:8642 でテーブル閲覧・SQLクエリ実行が可能です。

コマンドライン

sqlite3 -header -column ~/.claude-memex/memory.db "SELECT id, substr(summary, 1, 50) AS summary, substr(body, 1, 50) AS body, source, timestamp FROM memories ORDER BY id DESC LIMIT 10;"

仕組み

セッション終了 → Hook発火 → JSONL読込 → Gemini APIで要約生成 → Ruri v3でベクトル化 → SQLite保存
                                                                                                              ↓
セッション開始 → Claude Codeが質問 → MCP経由で検索 → FTS5 + ベクトル + RRF → 関連記憶を返す
                                                                                                              ↑
外部データ → ingest_document → チャンク分割(Gemini) → 要約生成 → ベクトル化 → SQLite保存
  • 要約生成: Gemini API(Flash-Lite)
  • チャンク分割: Gemini API(意味単位で再帰的に分割)
  • ベクトル化: Ruri v3(日本語特化、768次元、ローカル実行・トークン消費ゼロ)
  • 検索: キーワード検索(FTS5) + ベクトル検索(sqlite-vec) + RRF統合 + 時間減衰(半減期180日)
  • 保存先: ~/.claude-memex/memory.db(1ファイル、プロジェクト横断検索可能)

データ構造

各レコードは summary(要約)body(本文) の2つで構成されます。

  • summary: Gemini APIが抽出した要約(決定事項・技術的事実・結論など)。ベクトル検索のアンカーとして機能
  • body: 元テキスト。FTS5キーワード検索と結果表示用
  • source: データの出所(claude-session, meeting, slack, email等)

Claude Codeセッションは1セッション=1レコード、外部データはチャンク分割されて複数レコードになります。summaryだけをベクトル化することで、検索クエリとのマッチ精度を高めています。

技術スタック

| 技術 | 用途 | |------|------| | Gemini API (Flash-Lite) | 要約生成・チャンク分割 | | Ruri v3 (ONNX) | 日本語埋め込みモデル | | better-sqlite3 | SQLiteドライバ | | sqlite-vec | ベクトル検索 | | FTS5 | 全文検索 | | MCP SDK | Claude Codeとの連携 |

v1.x からのアップデート

v2.0 ではDBスキーマが変更されました(text カラム → summary + body カラム)。アップデート後、次回のDB接続時に自動でマイグレーションされます。既存データの textbody に移行され、summary は空になります(新規保存分から要約が生成されます)。

データのリセット

記憶データをすべて削除してリセットするには、データベースファイルを削除します。次回のセッション終了時に自動で再作成されます。

rm ~/.claude-memex/memory.db

トラブルシューティング

記憶の保存に失敗した場合、エラーログが ~/.claude-memex/error.log に記録されます。macOS通知で「保存に失敗しました」と表示されたときは、以下で確認できます。

cat ~/.claude-memex/error.log

直近のエラーだけ見たい場合:

tail -5 ~/.claude-memex/error.log