mcpField
J
jevmem

jevmem

ローカル
avinash-jetwani.github.ioメモリ・ナレッジ1331 週間前に更新

jevmem について

jevmemは、Claude CodeやCursorなどのコーディングツール向けに、決定事項、ルール、失敗した方法をリポジトリのJEVMEM.mdに保存し、次のセッションで関連項目を呼び戻します。保存済みルールに照らしてコマンドやファイル編集も確認するため、プロジェクトの経緯を引き継ぎたい開発者に適しています。

主な機能

  1. 01プロジェクトの決定事項とルールを自動保存
  2. 02セッションをまたいで関連記憶を呼び戻す
  3. 03バグ、タスク、失敗した方法を記録
  4. 04コマンドや編集を保存済みルールと照合
  5. 05Gitで記憶ファイルをチーム共有

活用シーン

  1. 01以前のプロジェクト決定をコーディングセッションに引き継ぐ
  2. 02ルールに反するコマンドや編集を検知
  3. 03失敗した方法と理由を記録
  4. 04既存のCLAUDE.mdを取り込む

MCP 対応

jevmemは、Cursor、Codex、Claude Desktopがプロジェクトの記憶を取得するためのMCPサーバーを提供します。これらのクライアントでは、MCP経由で記憶の保存も利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"avinash-jetwani-jevmem": {
"command": "npx",
"args": [
"-y",
"jevmem"
],
"env": {
"TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>",
"JEVMEM_ROOT": "<JEVMEM_ROOT>",
"TYPESAFE_BASE_URL": "<TYPESAFE_BASE_URL>",
"JEVMEM_CACHE": "<JEVMEM_CACHE>"
}
}
}
}
起動コマンドnpx -y jevmem
設定が必要な環境変数
TYPESAFE_API_KEYシークレットTypeSafe API key for Jev, which add_memory, search_memory and audit_memory use. If unset, the server reads it from <project>/.jevmem/.env or ~/.jevmem/env.
JEVMEM_ROOTProject root, for clients that start the server without a project working directory (Claude Desktop). One server entry serves one project.
TYPESAFE_BASE_URLSend Jev requests through a proxy or gateway instead of api.typesafe.ai.
JEVMEM_CACHE0 turns off the answer cache in .jevmem/.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmjevmem0.7.6

ツール

4

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
limitintegerいいえ
querystringはい

詳細

jevmem

一度言えば、あとはおまかせ。 jevmem は、Claude Code とのチャットで決めたこと、ルール、失敗したアプローチをリポジトリ内の JEVMEM.md に保存し、次のセッションで関連する内容を呼び戻します。Claude がコマンドを実行したりファイルを編集したりする前に、保存済みのルールに照らしてその操作を確認します。MIT ライセンスのオープンソースで、TypeSafe AI の Jev を基盤としており、Anthropic の Claude プラグインディレクトリと MCP Registry に掲載されています。0.7.4 以降は Cursor のチャットからも同様に保存し、0.7.6 以降は Cursor プラグインとして利用でき、MCP 経由で Codex や Claude Desktop とも連携します。

Anthropic の Claude プラグインディレクトリに掲載 · MCP Registry に掲載 · MIT ライセンスのオープンソース

質問ごとに 1 ページのドキュメントサイト:avinash-jetwani.github.io/jevmem

npm version license node CI M8ven Verified

https://github.com/user-attachments/assets/c8a7eced-c427-4ef6-85f2-124eb34ad291

理由

Claude Code の各セッションは新しいコンテキストで始まるため、先週決めたことは先週のチャットに残ったままです。 CLAUDE.md ファイルを最新の状態に保てば役立ちます。jevmem は、作業中に同様のファイルを自動で最新の状態に保ちます。

数字で見る

3 つの小規模なテストプロジェクトで実際に行った Claude Code のセッションを、jevmem を使った場合と使わなかった場合で比較しました。

  • Claude がプロジェクトの以前の決定に従った割合: jevmem を使った場合は 72 セッション中 66 回、使わなかった場合は 72 セッション中 28 回(約 10 回中 9 回に対し、約 10 回中 4 回)。
  • プロジェクトで禁止されている変更を試みた回数: jevmem を使った場合は 18 セッション中 0 回、使わなかった場合は 18 セッション中 10 回。
  • すでに失敗したアプローチを繰り返した回数: 15 回中 0 回に対し、15 回中 3 回。
  • 保存のコスト: メッセージ 1,000 件あたり約 18 セント、判断に約 5 分の 1 秒かかります。バックグラウンドで処理されるため、Claude は待ちません。
  • ルールを呼び戻す時間: プロンプトごとに約 3 分の 1 秒から 2 分の 1 秒かかり、Claude はその間待ちます。ファイルが大きくなるほど、時間とコストも増えます。
  • 公平を期すと: 手動で最新の状態を保った CLAUDE.md もほぼ同じ成績でした(72 回中 67 回)。また、プロンプト内で言及されていない規約については、より良い成績でした(3 回中 3 回に対し、3 回中 0 回)。jevmem は同様のファイルを自動で最新の状態に保ち、0.7.1 以降はこうしたルールを常時適用としてマークするため、すべてのセッションに反映されます。この差を検証するために作成した、学習に使っていない 6 つのタスクでは 18 回中 18 回で、0.7.0 の 18 回中 14 回を上回りました。

私自身のテストセットで、各数値は 1 回の実行によるものです。独立したベンチマークではありません。方法と結果

仕組み

いつもどおりチャットします。何かを決めると、jevmem がリポジトリ内のファイルに1行で書き込み、次のセッションで適切な行を呼び戻します。

あなたが伝え、Jev が判断し、jevmem が JEVMEM.md に1行を書き込み、次のセッションで Claude が重要な行を受け取ります。

  1. チャットで何かを決めます。「Postgres を使います。」
  2. jevmem は、確率を伴って yes/no の質問に答えるモデルである TypeSafe AI の Jev に、それを残す価値があるかを尋ねます。
  3. 残す価値があれば、jevmem はリポジトリ内の JEVMEM.md に1行を書き込みます。
  4. 次のセッションでは、プロンプトに関係する行が Claude に渡されます。

考えが変わると、古い行には取り消し線が引かれます。履歴として残りますが、Claude には送られません。チームでは git を通じて同じファイルを共有できます。

jevmem は決定事項、ルール、バグ、ToDo、行き止まり(試したものの失敗したアプローチと、その理由)を保持します。

- [superseded] We'll use SQLite as the primary store for now. → id:cuasaq
- [decision] Switch the primary store to Postgres 16.
- [constraint] Node 20 is the minimum supported version, and CI runs Node 20 and 22.
これらの行について

各行には、上記では省略した ID、時刻、信頼度を含むコメントも付いています。完全な行は次のとおりです。

- [superseded] We'll use SQLite as the primary store for now. → id:cuasaq  
- [decision] Switch the primary store to Postgres 16.  
- [constraint] Node 20 is the minimum supported version, and CI runs Node 20 and 22.  

0.5.7 のデフォルトライターによる実際の行です。0.5.8 から 0.5.10 では変更されていません(実行結果、2026-09-26)。各ターンから1文が保持されました。Postgres のターンでは「同時書き込みで SQLite がロックする」とも述べていましたが、その理由は省かれました。0.6.0 以降は、Jev が選んだ文、つまりメモリの内容を述べる文とその理由を示す文から行が作られます(新機能)。writer を設定すると、OpenAI または Anthropic のモデルがターン全体を要約します。

効果はありますか?

各構成で実際の Claude Code セッションを72回実施したところ、Claude が保存された行に従った頻度は、jevmem を使った場合も、同じ行を手書きの CLAUDE.md に記載した場合とほぼ同じでした。どちらも使わない場合は、その半分未満でした。

A/B テスト結果:プロジェクトのメモリなしでは72回中28回、jevmem では72回中66回、手書きの CLAUDE.md では72回中67回、プロジェクトの決定に従いました。

プロジェクトのメモリなしjevmemCLAUDE.md に同じ行を記載
プロジェクトの決定に従った72回中28回72回中66回72回中67回
プロジェクトで禁止されている変更を試みた18回中10回18回中0回18回中0回
すでに失敗したアプローチを繰り返した15回中3回15回中0回15回中0回

つまり、jevmem は手書きの CLAUDE.md とほぼ同等の効果があり、しかも自分で書く必要はありませんでした。 プロンプトからは分からない規約については、CLAUDE.md のほうが優れていました(3回中3回に対して0回中3回)。これは0.6で測定した結果です。このとき jevmem は、関係するプロンプトに対してのみ行を呼び戻していました。0.7.1 以降、jevmem はあらゆる変更で常に従うべきルールを常時有効としてマークし、すべてのセッションの開始時に送信します。この差を検証するために作成した未使用の6つのタスクでは、Claude が規約に従ったのは0.7.0で18回中14回、0.7.1で18回中18回でした。手動で管理する CLAUDE.md に同じ行を記載した場合と同じ結果です(新機能、制限事項)。 セッションの実施方法とすべての結果:ベンチマークのページ。

ガード

ガード:Claude がコマンドを実行しようとすると、jevmem が保存済みのルールと照合し、Claude Code が確認を求めます。

Claude がコマンドを実行したりファイルを編集したりする前に、jevmem は保存済みのルールと照合します。ルールに違反する可能性がある場合は、Claude Code が確認を求めます。

jevmem: this may break a saved rule: "Never commit .env files" (JEVMEM.md)

ガードの調整に使用していない274件のツール呼び出しでテストしたところ、ルール違反68件のうち66件を検知し、ルールに違反しなかった206件のうち3〜4件について確認を求めました(0.6.0と0.6.1でそれぞれ1回実行)。 これは最後の防波堤であり、サンドボックスではありません。ルールと呼び出しで共通する語句を調べます。0.7.0以降では、jevmem trust を使うと、手動で追加したルールで、確認を求めるだけでなくガードのブロックモードで呼び出しをブロックできます。ガードの仕組み。

サイドペイン

Claude Code のチャットの横に表示されるペインでは、jevmem が直前に行った処理を確認できます。プロンプトに対して Claude に渡したメモリの行、コマンドに対するガードの判定、ターンから保存した行が表示され、それぞれに why、wrong、forget ボタンがあります。JEVMEM.md を変更する2つの操作では、まず確認を求めます。ルールを無効にする操作はターミナルでのみ行えます。ローカルの3つのファイルを読み取りますが、情報を外部に送信することはありません。

/plugin install jevmem-pane@jevmem

これは jevmem マーケットプレイスから提供される2つ目のプラグインです(jevmem プラグイン自体には、引き続きコードは含まれていません)。Claude Code 2.1.299以降が必要です。ターミナルの幅が144列以上の場合と、デスクトップアプリの「Code」タブでは自動的に開きます。また、どこでも /jevmem を使って開閉できます。各ブロックに表示される内容と測定結果については、docs/pane.md を参照してください。

インストール

リクエストの課金先となる TypeSafe API キー と、Claude Code 2.1.273以降が必要です。

  1. Claude アプリで、プラグイン → Discover → jevmem → Add を選択します。
  2. プラグインが実行する CLI をインストールします。
    npm install -g jevmem
    
  3. プロジェクトのフォルダーで、セットアップをまとめて完了します(キーを表示せずに入力を求め、このフォルダーで jevmem を有効にして、セットアップを確認します)。
    jevmem setup
    

そのプロジェクトで Claude Code を起動してください。セットアップが完了する前に起動した場合、プラグインは残りの手順を一度だけ知らせます。jevmem doctor を実行すると、いつでもセットアップを確認できます。

その他のインストール方法:jevmem マーケットプレイス、npm、Cursor、Codex

jevmem マーケットプレイスからインストールする場合:

npm install -g jevmem
claude plugin marketplace add Avinash-jetwani/jevmem
claude plugin install jevmem@jevmem
claude plugin install jevmem-pane@jevmem   # the side pane (0.7.5), optional
cd your-project && jevmem setup

npm のみを使う場合(Cursor と Codex もセットアップされます):

npm install -g jevmem
cd your-project
jevmem init --tool claude    # or cursor, codex, claude-desktop, all

Cursor では、jevmem プラグイン(0.7.6)が、すべてのウィンドウでフック、MCP サーバー、ルールを提供します。Cursor Marketplace に掲載されたら、そこから一度インストールしてください。または、このリポジトリの cursor-plugin/ フォルダーを ~/.cursor/plugins/local/jevmem にコピーしてウィンドウを再読み込みし、各プロジェクトで jevmem setup を実行してください(手順)。

すでに CLAUDE.md がある場合は、jevmem import で追加される内容を確認できます。--apply を指定すると書き込みます。

各手順と、プラグインが CLI を見つけられない場合の対処法については、docs/install.md を参照してください。

## 対応ツール

Claude Code では自動的に保存されます。Cursor では 0.7.4 以降、Cursor のフックがエージェントの各ターンの完了時に保存します(0.7.6 以降は Cursor 用 jevmem プラグイン、または jevmem init --tool cursor が書き込むファイルを使用)。Codex では jevmem watch の実行中に保存されます。Cursor、Codex、Claude Desktop は、エージェントが要求すると、AI ツールが別のプログラムを呼び出す標準的な方法である MCP を介して jevmem に接続します。Cursor プラグインのサーバーはすべてのウィンドウで実行されますが、プロジェクト独自の .cursor/mcp.json サーバーは、一度有効にするまで起動しません(手順)。Cursor で、コード作成前に記録した保留チャット 10 件(24 ターン)を対象に評価したところ、初回の実行では 24 ターン中 21 ターンを、プロンプトと返信全体の組み合わせとして対応付けました。この実行をもとにリーダーの修正を行い、2 回目の実行では 24 ターン中 24 ターンを対応付け、そのうち 21 ターンで保存対象を特定しました(測定結果)。

保存呼び戻し
Claude Code毎ターン自動プロンプトごとに自動
Codexjevmem watch の実行中に自動エージェントが要求したとき、MCP 経由
Cursorエージェントの各ターンの完了時に自動(0.7.4、プラグインは 0.7.6 以降)エージェントが要求したとき、MCP 経由(プラグインのサーバーはすべてのウィンドウで実行されます。プロジェクト独自のサーバーは Cursor アプリで一度有効にする必要があります。手順)
Claude Desktop要求したとき、MCP 経由要求したとき、MCP 経由

MCP サーバーは、MCP Registry に io.github.Avinash-jetwani/jevmem として登録されています。クライアントの設定方法:docs/mcp.md · docs/install.md。

高速で低コスト

保留した 66 ターンでの、1 メッセージを判断するまでの中央値:jevmem は 0.24 秒、6 つの現行 LLM は 2.78~4.29 秒。

保存対象の判断には 0.24 秒かかり、メッセージあたりの費用は $0.00018 です。バックグラウンドで処理されるため、Claude は待つ必要がありません。 メッセージを保存するかどうかの判断では、jevmem の正答率は 6 つの LLM のうち最良のものと同じでした(98.5%)。ただし、そのうち 2 つは行の種類の命名でより優れていました。

コード作成前に書かれ、調整には使われていない 66 ターンを対象に、2026-10-19 に 0.7.6 を 1 回実行して測定しました(結果)。6 つの LLM は 2026-09-23 に実行しました。7 つすべての結果と、それぞれの費用および実行方法をまとめた表:ベンチマーク。

判断方法

jevmemの判断方法:秘密情報を除去し、Jevに型付きの質問をして、コード内のしきい値を適用し(言い換えただけの行は再保存しません)、1行を書き込み、古い行を置き換え、変更のたびにルールを常時適用としてマークします。

何を保存するかはプロンプトでは判断しません。Jevが確率付きの簡単なはい/いいえの質問に回答し、コード内の単純なルールがその回答に基づいて動作します。

各手順の詳細
  1. 除去します。 一般的な形式の秘密情報、メールアドレス、カード番号のような数字は、ターンがマシンの外に送信される前に取り除かれます。
  2. Jevに型付きの質問をします。 TypeSafe AIのJevは、確率付きの簡単な質問に回答します。決定事項、ルール、バグが含まれているか、雑談やインジェクションの試みか、保存済みの行と同じ内容か(0.7.0)、このプロジェクトの作業全般で従うべきルールか(0.7.1)、どの既存の行を変更するのかを尋ねます。
  3. コード内のしきい値を適用します。 これらの確率に基づく単純なルールで保存するかスキップするかを決めます。ルールはプロンプトではなく、jevmem.config.jsonにあります。保存済みの行を言い換えたメッセージは重複としてスキップされ、まったく同じ言葉で言い直したメッセージは、何も送信される前にスキップされます(0.7.0)。
  4. 1行を書き込みます。 保存する場合、jevmemはJevが選んだターン内の文(メモリの内容を述べた文と、その理由を示す文)から200文字以内の1行を書き込みます。または、jevmem.config.jsonでwriterを設定している場合は、小規模なOpenAIまたはAnthropicのモデルがターンを要約します。
  5. 古い行を置き換えます。 ターンによって既存のメモリが置き換えられる場合、その行に[superseded] … → id:newのタグが付き、ファイル内に残ります。
  6. 常時適用としてマークします(0.7.1)。 Jevが、常に従うべきルールとして読み取った保存済みのルールは、コメントにalways:1が付きます。SessionStartフックは、プロンプトの内容にかかわらず、各セッションの開始時にそのルールをClaudeの前に提示します。jevmem always <id>を使うと、行を手動でマークできます。

ティア、質問、ポリシー、矛盾、想起、監査については、docs/how-it-works.mdをご覧ください。

プライバシー

メッセージは、一般的な形式の秘密情報を先に取り除いたうえで、スコアリングのためにTypeSafeのAPIに送信されます。writerを設定しない限り、ほかの場所には送信されません。

  • jevmemは、有効にしたプロジェクト(jevmem enableまたはjevmem init)でのみ実行されます。それ以外の場所では、何も送信されません。
  • メッセージ、直前の2ターン、メモリの行は、一般的な形式の秘密情報を先に取り除いたうえで、スコアリングのためにTypeSafeのAPIに送信されます。質問をするターン、バグを報告するターン、何かを試すターンではClaudeの返信も送信されます。また、ガードでは変更対象のコマンドまたはファイルも送信されます。
  • jevmem import --from sessions(0.7.1)は、実行して件数と費用を確認した後に「はい」と回答した場合に限り、プロジェクトの過去のClaude Codeセッションを、同じ方法で内容を取り除きながらターンごとに送信します。
  • テレメトリはありません。jevmem.config.jsonでwriterを設定しない限り、OpenAIやAnthropicには何も送信されません。
  • チームメイトやプルリクエストが追加した行は、Claudeに表示される前にチェックされます。

送信、除去、チェックされる内容の詳細、第三者のプライバシーポリシー、データの削除方法については、PRIVACY.mdをご覧ください。仕込まれた行に対するチェックの対象外となる内容については、SECURITY.mdをご覧ください。

制限事項

jevmem はまだ新しいため、利用する前に知っておくべき制限事項があります。

  • 初期段階です: 2026-09-22 に初めてリリースされました。すべてのテストセットは、作者が作成したものか、jevmem 用に構築したスクラッチプロジェクトでの Claude Code セッションから取得したものです。独立したベンチマークはありません。
  • 最も正確ではありません: 行の種類を選ぶタスクでは、2 つの LLM のほうが高いスコアを記録しました。jevmem の強みは速度とコストです。
  • 回答の品質は測定していません: テストでは、適切な行が Claude に届くことを確認しますが、その回答が改善するかどうかは確認しません。
  • 自動保存は Claude Code と、0.7.4 以降の Cursor に対応しています(jevmem watch の実行中は Codex にも対応します)。Claude Desktop ではエージェントが add_memory を呼び出した場合にのみ保存され、Cursor では引き続きエージェントの判断で呼び出されます。Cursor プラグインのルールは、インストール先のすべてのプロジェクトのすべてのチャットに適用され、その長さは 588 文字です(制限事項)。
  • ガードは共有されている単語を確認します: 検出対象のコマンドから離れた表現のルールは、検出されない場合があります。
  • サイドペインは Claude Code のみ対応です(2.1.299 以降)。Cursor にはペインがなく、Claude Code for VS Code でもまだ表示されません。

数値を含むすべての制限事項については、docs/limits.md をご覧ください。

新着情報

変更点を新しい順に掲載しています。各項目の測定結果は「新着情報」ページをご覧ください。

  • 0.7.5:チャットの横にペインが表示され、jevmem の動作を確認できます。 jevmem マーケットプレイスから jevmem-pane をインストールすると、Claude Code で各プロンプトとターンについて、呼び出された行、ガードの判断、保存された内容が表示されます。また、why、wrong、forget ボタンも使えます。さらに、「このプロジェクトの決定事項:」のような先頭のラベルが保存行に含まれなくなりました(この形式で書かれた保留中のターン12件で1回実行したところ、10行中0行にラベルが残りました)。jevmem init --tool cursor は Cursor 自身の状態フォルダーを Git の追跡対象外にし、jevmem doctor は Cursor アプリがプロジェクトの MCP サーバーを起動していない場合にその旨を表示します。また、ルールに対する jevmem wrong … --should-be none は、forget と同様にターミナルで確認を求めます(新機能)。
  • 0.7.4:Cursor のチャットも Claude Code と同じように保存されます。 jevmem init --tool cursor は Cursor のフック(と、どちらもコミット可能なランチャー)を書き込みます。エージェントのターンが終了すると、stop フックが Cursor のトランスクリプトからターンを読み取り、Claude Code と同じ判断・書き込み処理を実行します。Cursor でのメモリ読み取りは、引き続きエージェントによる MCP 呼び出しです。コード作成前に Cursor 自身の CLI で取得した、保留中の Cursor チャット10件(ターン24件)では、1回目の実行で24ターン中21ターンが全体として対応付けられました。この実行からリーダーの修正が加えられ、2回目の実行では24ターンすべてが対応付けられ、保存すべき内容も24ターン中21ターンで特定されました。以前に設定したプロジェクトでは、もう一度 jevmem init --tool cursor を実行してください。詳細。
  • 0.7.3:セットアップメッセージはクラウドや Cowork のセッションには表示されません。 0.7.2 では、クラウドワークスペースで実行される claude.ai のすべてのチャットの開始時に、一度だけ表示されるはずのメッセージが表示されていましたが、その目印を保持できませんでした。今回から、自分のコンピューター上(ターミナル、デスクトップアプリ、VS Code 拡張機能、SSH セッション)でのみ表示されます。クラウドまたは Cowork のセッションには、メッセージもファイルも表示されません。変更されたのはプラグインのランチャーとドキュメントのみで、CLI のコードに変更はありません。詳細。
  • 0.7.2:1つのコマンドでセットアップを完了できます。 Claude アプリで Add をクリックすると、そのマシンでの最初のセッションで、残りの作業が一度だけ案内されます。jevmem setup を実行すると、キーの入力を求められ、フォルダー内で jevmem が有効になり、セットアップが検証されます。常時適用される行は、セッションに渡される前にポイズニングゲートを通過するようになりました。また、Jev 1.13.0 に固定しました。6つのテストセットで1.13と比較したところ、1.14 は3回の実行すべてで5件中1件の矛盾を見逃し、3回すべてで取得したセッションから保存される行き詰まりが少なく、書き込みテストセットで保持された理由も少なくなりました。詳細。
  • 0.7.1:あらゆる変更に対応するルールと、過去のセッションからのメモリ。 常時適用とマークされた行は、プロンプトの内容にかかわらず、各セッションの開始時に Claude に渡されます。規約が書かれる前に作成されたファイルを使った6つのテストタスクでは、Claude は0.7.0で18セッション中14セッション、0.7.1で18セッションすべてにおいて、その規約に従いました。これは、同じ行を手動管理の CLAUDE.md に記載した場合と同じ結果です。jevmem import --from sessions は、プロジェクトの過去の Claude Code セッションを読み取り、そこに含まれる決定事項、ルール、行き詰まりを提案します。件数と費用を表示し、確認を求めてから実行します。詳細。
  • 0.7.0:保存した内容を修正できます。 jevmem forget を使うと、古い行や誤った行を使用対象から外せます。また、ガードのブロックモードでは、jevmem trust を使うと、手動で追加したルールによってコマンドをブロックできます。確認を求めるだけではありません。保存済みの行と同じ内容の行は重複して保存されません。25件の言い換えテストでは、0.6.6は15件を新しい行として保存しましたが、0.7.0では1件でした。詳細。
  • 0.6.6:失敗した試みは決定事項ではなく、行き詰まりとして保存されます。 Claude に何かを試すよう頼み、返信で失敗したと述べられた場合、jevmem は返信を読み取ります。40件のテストターンでは、0.6.5が行き詰まりとして保存したのは12件でしたが、0.6.6では37件でした。より多くのターンで返信が送信されます(PRIVACY.md)。詳細。
  • 0.6.5:Claude の返信で結論が先に述べられ、原因が最後に示される場合でも、行き詰まりにはその理由が残ります。 この形式で書かれ、行き詰まりとして行の書き込み処理に渡された13件のテストターンでは、12件で理由が保持されました(0.6.4では13件中2件)。詳細。
  • 0.6.4:この README を短くし、図を追加しました。 詳細は docs/ 内のページに移動しました。ドキュメントのみの変更です。
  • 0.6.1~0.6.3:ガードが if [ … ] を含むコマンドをチェックするようになりました。 0.6.0ではチェックを通らずに実行されていました。また、jevmem doctor の表示も分かりやすくなりました。詳細。
  • 0.6:ガードと行き詰まり。 保存済みのルールに違反する可能性があるコマンドや編集の前に、Claude Code が確認を求めます。失敗したアプローチは理由とともに保存され、再び同じ状況になったときに「すでに試しました:…」と表示されます。プロンプトに必要な行がより多く呼び出されるようになり、バックグラウンドのサブエージェントに作業を引き継ぐターンも、作業完了時に一度だけ保存されます。詳細。 詳細と測定値:docs/whats-new.md · アップグレード:docs/upgrading.md · CHANGELOG
コマンド
jevmem init [--tool claude|cursor|codex|claude-desktop|all] [--no-hooks] [--files] [--command "<cmd>"]
jevmem init --remove-hooks                     Remove jevmem's Claude Code hooks and Cursor hooks from this project (plugin users; with the Cursor plugin, its rule and MCP entry too)
jevmem enable                                  Opt this project in (plugin users): jevmem.config.json, JEVMEM.md, .jevmem/
jevmem setup                                   Finish the setup here: the CLI and the plugin, your TypeSafe key (asked for, not shown), jevmem turned on in this folder, doctor; terminal only
jevmem disable                                 Opt this project out: jevmem does nothing here (JEVMEM.md is kept)
jevmem hook                                    Hook entrypoint; reads the Claude Code hook JSON on stdin
jevmem daemon [status|start|stop]              Warm Jev client used by the hook (auto-started, exits when idle)
jevmem watch [--replay] [--once]               Capture turns from Codex's session log for this project (Cursor saves through its hooks)
jevmem mcp [--root <dir>]                      Stdio MCP server
jevmem audit [--dry-run]                       Re-score every memory against the repo, flag [stale?]
jevmem audit --security [--ci]                 List lines that read as instructions to an AI (--ci: exit 1 if any)
jevmem search <query> [--limit N]              Rank memories by relevance
jevmem list [--all]                            Print memories (--all: with superseded and retired lines, and provenance)
jevmem add [--trust] [--always] <kind> <text>  Add a line by hand (secrets scrubbed, a leading tag dropped; no Jev check); --trust marks it verified (asks on a terminal); --always sends it to Claude in every session
jevmem always [--off] <id> [<id>…]             Mark a line always-on (in Claude's context at the start of every session), or take the mark off
jevmem always --suggest [--apply]              Ask Jev which live lines are rules for every change and propose the marks; --apply sets them
jevmem forget <id> [<id>…]                     Retire a line in place: it stays in JEVMEM.md as [retired]; a rule asks for a yes on a terminal
jevmem trust <id> [<id>…]                      Mark a line you wrote as verified, after the poisoning gate (asks on a terminal); the guard can then block on it
jevmem import [--from <sources>] [--apply]     Import CLAUDE.md, AGENTS.md, .cursor/rules/* (claude-auto-memory on request); dry run by default
jevmem import --from sessions [--since 30d] [--apply]   Read this project's past Claude Code sessions; counts and asks before anything is sent
jevmem why <id|hash>                           Every Jev answer behind a line or a skipped turn
jevmem right <id|hash>                         Label a decision as correct
jevmem wrong <id|hash> [--should-be <kind|none>]   Label a decision as wrong (--should-be none retires the line)
jevmem missed "<text>" [--kind <kind>]         Label a turn that should have been saved
jevmem fit [--dry-run] [--force]               Refit weights and thresholds from labels (needs 40+)
jevmem stats                                   Writer, latency p50/p95, cost per day, cache hit rate, escalation rate, retry queue, labels, last fit
jevmem doctor                                  Is this project enabled, where the TypeSafe key comes from, which writer is active and why
jevmem key                                     Save your TypeSafe API key to ~/.jevmem/env (asks for it without showing it)
jevmem log                                     Per-label latency, token and cost summary of .jevmem/log.jsonl
jevmem guard test "<command>" | --edit <path>  Dry run of the PreToolUse guard on one call: rules, prefilter, Jev's answer, hook output
jevmem guard log [-n 20]                       The guard's recent asks and denials in this project, with the rule and score

これらが0.7.3のコマンドです。0.5.10のコマンドに、jevmem guard(0.6.0)、forget、trust、add --trust(0.7.0)、always、add --always、import --from sessions(0.7.1)、setup(0.7.2)が加わりました。0.7.3ではコマンドの追加も変更もありません。すべてのコマンドで--helpを使用できます。JEVMEM_VERBOSE=1を設定すると、フックを実行するたびに、レイテンシとコストの概要が1行で表示されます。

リンク

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。