Skip to main content
Glama

FIMemory

接続して指示すれば、あなたの AI ツールが読み取れるローカルストア。

FIMemory(FI Memory、Future Industries 製)は、メモを自分のコンピュータに保存し、AI ツールをそこに接続することで、セッションのたびに同じプロジェクトを説明し直す必要をなくします。ストアは自分のファイルが入った普通のフォルダです。独自フォーマットも、サーバーも、アカウントも、どこへのアップロードもありません。新しいストアはデフォルトで保存時に暗号化されます。パスフレーズを選ぶと、24語の回復フレーズが一度だけ表示され、ファイルはどこへ移動しても非公開のままです。git ホスト、クラウドバックアップ、USB メモリのどこでも。テキストエディタで直接開けるファイルが好みですか?セットアップ時にプレーンテキストを明示的に選択するだけです。また、暗号化されたストアは、いつでも読み取り可能な Markdown にエクスポートでき、あなたの鍵だけで保護されています。

ここから始める

2つのコマンドです。

npm i -g fimemory
fimemory setup

最初のコマンドが EACCES: permission denied で失敗した場合(macOS では npm のデフォルトのグローバルフォルダが root 所有のためよく発生します)、npm に自分所有のフォルダを指定して再試行してください。sudo は不要です:

npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
npm i -g fimemory

その後、すでに実行中の AI ツールがあれば閉じて開き直してください。起動時に設定を読み込むためです。

インストールはこれだけです。setup は、ストアがない場合は作成し、このマシンで見つけたすべての AI ツールを接続してから、自身の作業を確認し、成功したものとしなかったものを出力します。再実行しても安全で、特に何も起きません。すでに配置済みのものはすべて unchanged と報告され、何も書き換えられません。うまくいったか不明なときは、もう一度実行してください。

ターミナルでストアを作成する場合、setup は暗号化の手順を案内します。パスフレーズを選ぶか(または --plaintext で1キー押すだけでオプトアウト)、24語の回復フレーズが一度だけ表示され、書き留めたことを確認するよう求められます。その後、このマシンでは約8時間ストアがロック解除されたままになります。スクリプトや CI ではプロンプトは表示されません。--passphrase "..." を渡すか、GESTALT_PASSPHRASE を設定するか、--plaintext を指定してください。どれも指定しない場合は、推測せずにきれいに拒否します。パスフレーズと24語のフレーズの両方を失うと、データは意図的に失われます。それが「あなたの鍵、私たちのサーバーではない」の代償であり、ガイド付き実行では、それが静かに起こることはありません。

setup が代わりに完了できない唯一のステップは、独自の設定ファイルを管理する Claude Code です。setup は、このマシンに claude コマンドが存在するかどうかを確認します。存在する場合は、貼り付け用の claude mcp add の1行を出力します。存在しない場合(VSCode 拡張機能とデスクトップアプリはコマンドラインをインストールしません)、代わりに正確な JSON ブロックと、それを配置するファイルを出力します。どちらの場合も、「Next steps」の下に表示され、スクロールして過ぎ去ることはありません。

ステップが失敗しても、実行は継続し、失敗はそれぞれの行に表示されます。その行を修正して fimemory setup を再実行すれば、すでに成功したステップはそのまま残ります。

後で必要になる3つのコマンド:

  • fimemory onboard は、セットアップ後のガイド付き最初のステップです。最初の提案された編集の承認を案内し、作業方法について3つの質問をして、回答をストアに書き込み、自分の事実で答える検索を表示します。接続済みで自分に関する情報が何もないストアは、実際には問題がなくても壊れているように感じられます。これを乗り越える最短の方法がこれです。

  • fimemory doctor はセットアップ全体を読み返し、何が欠けているか、どう対処すべきかを平易な言葉で伝えます。インストールが中途半端に終わっているのが、これがうまくいかない最も一般的な原因です。

  • fimemory setup --plaintext は、暗号化されていないストアで同じインストールを行います。フォルダにアクセスできるあらゆる人やプログラムが、すべてのファイルをテキストエディタで読むことができます。これは隠されたダウングレードではなく、明確に示された現実的な選択肢です。プレーンテキストで開始したストアは、後で fimemory encrypt で暗号化を導入できます(実際のコンテンツが蓄積される前が最も安価です)。

以前は、正常なインストールと失敗したインストールは同じように見えました。今は、インストール時にどちらであるかがわかります。

Related MCP server: Munin Memory

正直な期待

  • Windows、macOS、Linux で実在の人間がインストールし、使用した実績。 実行ランナーでの主張ではありません。実際のマシンに手動でインストールし、その後実際の作業で使用しました。2つの異なる AI ツールが1つのストアを数か月間毎日読み書きしています。Windows マシンと Mac はそれぞれ Claude Code と Grok をこれに対して実行し、Linux マシンはヘッドレスで実行します。さらに CI は、プッシュのたびに Linux と macOS のランナーでパッケージのビルド、型チェック、テスト、グローバルインストールを実行します。それでもカバーされないのは、多様なホストアプリです。ランナーにはデスクトップセッションがないため、後述以外のクライアントでは、setup が書き込んだ設定が実際に読み込まれるのを確認していません。Linux ではクリップボードコマンドに xclip が必要で、Wayland では wl-clipboard が必要ですが、どちらもデフォルトではインストールされていません。何かおかしい場合は fimemory doctor を実行し、報告してください。

  • 覚えないより安いわけではない。 小さな上乗せ分に見合う正確さですが、すべてを貼り付けるよりははるかに安価です。

  • エージェントは接続され指示されたときに読み取る。 setup が MCP 設定、ルールテキスト、取得フックを書き込みますが、メモリ製品がホストに対して毎ターン指示なしで参照するよう強制することはできません。

  • 自動同期は同梱されていない。 複数マシンでの利用は、自分のアカウントの下で、自分の git リモート経由で機能します。Sync サービスはまだ存在しないため、自分でリモートを設定しない限り、書いたものがマシンの外に出ることはありません。

  • 同梱の範囲は自分のマシンと複数のエージェント。 2台のマシンを1つのプライベート git リモートに向けます。2台目のマシンで fimemory join <url> を実行し、セッションの前後に fimemory pull を実行します。同じノートへの編集が暗黙にマージされることはなく、負けた側はレビュー待ちの提案になります。自分のリモートを超えたチーム機能は含まれていません。

setup が実際に実行すること

この順序で5つのステップ:

  1. init。~/.fimemory にストアがない場合のみ実行します(以前のインストールによる既存の ~/.gestalt は検出され、保持されます)。すでに存在する場合はスキップされ、上書きされることはありません。

  2. install-mcp。見つけた各ホストの設定ファイルに MCP サーバーエントリを書き込みます。これにより、アシスタントがストアを読み取れるようになります。

  3. install-hooks。Claude Code の取得フックを ~/.claude/settings.json に書き込みます。~/.claude が存在しない場合はスキップされます。

  4. install-rules。メモリのルールブロックを各ホストのルールファイルに書き込みます。これにより、アシスタントが実際にストアを使用するようになります。

  5. doctor。すべてを読み返して報告します。

フックは意図的にルールより先に実行されます。shim ルールテキストは、関連するノートが取得フックによってすでにターンに挿入されている可能性があることをモデルに伝えます。その文はフックがインストールされて初めて真になります。そのためフックが先に実行され、その結果によって文言が選ばれます。フックがインストールされていれば Claude Code は shim 文言を受け取り、フックがスキップされればすべてのホストが検索優先の文言を受け取ります。これは無条件に真です。フックなしで shim 文言を書くと、決して届かない挿入と引き換えにモデルに検索をやめるよう指示することになり、何もしないより悪い結果になります。

各ステップはラップされており、失敗した場合はそのステップの行になり、実行は継続します。書き込めないルールファイルのために MCP 登録を失うことは決してあってはならず、どちらも、どれが成功したかを示す doctor の判定を失う原因になってはなりません。setup はロックされた暗号化ストアでも実行できます。これは2台目のマシンでは通常のケースであり、doctor がロックを報告できます。

個々の動詞も引き続き存在し、単独で機能します: init、install-mcp、install-hooks、install-rules、doctor。

どのツールが何を受け取るか

ツール

MCP 設定

ルールブロック

取得フック

Claude Code

コマンドを表示(ファイルは書き込まない)

~/.claude/CLAUDE.md

あり、~/.claude/settings.json

Codex CLI

~/.codex/config.toml

~/.codex/AGENTS.md

なし(下記参照)

Gemini CLI

~/.gemini/settings.json

~/.gemini/GEMINI.md

なし(下記参照)

Grok CLI

~/.grok/config.toml

~/.grok/AGENTS.md

なし(下記参照)

Windsurf

~/.codeium/windsurf/mcp_config.json *

~/.codeium/windsurf/memories/global_rules.md *

なし(下記参照)

Cursor

~/.cursor/mcp.json *

書き込まない(下記参照)

なし(下記参照)

Claude Desktop

claude_desktop_config.json *

書き込まない(下記参照)

なし(下記参照)

* ベンダーが文書化しているが、ディスク上では未検証。 Windsurf、Cursor、Claude Desktop は確認したどのマシンにもインストールされていないため、これらのパスが存在するのを見たことがありません。いずれかが setup が installed と表示した後にストアを無視する場合、最初に疑うべきはこれです。アプリ自身の設定で実際にルールを保存している場所を確認し、fimemory install-rules --file <path> を再実行してください。表の他のすべての行は、ディスク上で確認されています。

  • Claude Code は、install-mcp が書き込まない唯一のホストです。Claude Code CLI が ~/.claude.json のスキーマを所有しているため、代わりに claude mcp add fimemory -s user -- ... を表示します。ルールブロックとフックは、代わりに書き込まれます。

  • Cursor: 私たちは Cursor のルールファイルを書き込みません。Cursor がユーザーレベルのルールをどこに保存するか、また ~/.cursor/rules を読み込むかどうかは未検証です。Cursor は確認したどのマシンにもインストールされておらず、このディスクには Cursor のドキュメントもありません。このページの以前のバージョンでは、これらの制限を事実として記載していました。それらはソースから読み取られたことがなく、後述の ~/.grok/GROK.md と同じ誤りだったため、削除されました。第三者の証拠は別の方向を示しています。Grok 自身の 12-project-rules.md は、スキャンするルールディレクトリとして ~/.cursor/rules/ を挙げています。Cursor が読み取るファイルをご存知の場合は、install-rules --file <path> で同じブロックをそこに書き込めます。

  • Claude Desktop: 私たちは Claude Desktop のルールファイルを書き込みません。ディスク上のルールファイルがそもそも存在するかどうかは未検証です。確認したどのマシンにもインストールされていません。MCP 設定は書き込まれます。

  • Gemini CLI は、~/.gemini/settings.json の contextFileName でコンテキストファイルの名前を変更できます。install-rules はそれを読み取って尊重するため、ブロックは Gemini が実際に読み取るファイルに配置されます。

  • その他すべて、聞いたことのないホストを含む場合: install-mcp は、そのクライアント自身の設定に貼り付ける汎用 JSON スニペットを表示します。

人がエンドツーエンドで検証済み: Windows 11 と macOS 上の Claude Code と Grok。 これらは、共有ストアに対して実際の作業で毎日インストールして使用された組み合わせです。表の他のすべてのホストには、設定とルールが書き込まれます。正直なホスト別マトリクスは、測定済みのものだけを出荷し、未測定のものを先に出荷することはありません。

ホストが通常とは異なる場所にある場合: install-rules、install-mcp、doctor はすべて、CODEX_HOME、GEMINI_CLI_HOME、GROK_HOME が設定されている場合はそれに従うため、これら3つすべてがホストの所在について一致します。Claude Desktop の設定パスはプラットフォームによって異なります(Windows では APPDATA)。残りのパス(Cursor と Windsurf)は固定です。

フック、正確には

install-hooks が書き込むのは正確に1つのファイル: Claude Code の ~/.claude/settings.json です。これはこのソフトウェアについての記述です。他のツールにフックがないという主張ではありません。その主張を含んでいたこの文の版は 2026-07-31 に検証され、誤りであることが判明しました。

Grok CLI は、ディスク上の grok 0.2.117 に対して直接検証済み(2026-07-31時点)。Grok はデフォルトで ~/.claude/settings.json をフックのスキャン対象とする([compat.claude] hooks = true。~/.grok/docs/user-guide/05-configuration.md に文書化されており、10-hooks.md のフック配置表にはそのファイルがグローバルな常時信頼ソースとして記載されている)。Grok は当社の2つのハンドラを読み込む。しかし、独立した2つの理由によりインジェクションを配信することはできない:

  1. Grok はフックの stdout を破棄する。 これが重要であり、回避不可能である。当社は測定済みだ:4種類の出力形式(Claude の hookSpecificOutput、トップレベルの additionalContext、プレーンテキスト、systemMessage)それぞれについて、マーカーファイルの書き込みで実際に発火したことを確認し、それぞれインジェクトされたコンテキストを一切生成しなかった。一方、ハーネスがインジェクトされたコンテキストを表面化できることを証明する陽性対照も確認した。ヘッドレス -p モードで測定。対話型 TUI は未測定。Grok 自身のドキュメントでは決着しない。10-hooks.md は PreToolUse と停止イベントのみが決定権を持ち、「その他のイベントはすべて受動的」と述べ、受動的フックの節では「SessionStart や PostToolUse のようなイベントでは」stdout が無視されると述べているが、UserPromptSubmit を名指しせず例を挙げているにすぎない。そのため、ここでの権威はドキュメントではなく実験である。

  2. ハンドラ形式に args フィールドがない。 10-hooks.md のキーフィールド表には type、command、url、timeout、env が列挙されており、当社の呼び出しはすべて args に含まれている。Grok はインタープリタを引数なしで起動するため、そのプロセスは即座に終了する。これは修正可能に見える。command がインラインシェルコマンドを受け入れるからだ。しかし修正してもフックが実行されるようになるだけで、(1) の理由により依然として何もインジェクトされない。

いずれにせよブロックはされない。Grok はフェイルオープンである。しかし「フェイルオープン」は「無音」ではない。10-hooks.md によれば、すべてのフック失敗は UI スクロールバックに記録される ため、Grok のプロンプトのたびにフック失敗の行が表示される。それを消したい場合は、~/.grok/config.toml で [compat.claude] hooks = false を設定せよ。~/.claude/settings.json からハンドラを削除してはいけない。それは Claude Code が実際に使用するファイルであり、そこから削除するとフックが機能する唯一のホストが無効になる。

Grok は ~/.claude/CLAUDE.md も読み取る。 ルールファイルは、そのファイルが置かれているディレクトリのホスト専用ではない。Grok の 12-project-rules.md によれば、Claude 互換モードが有効(デフォルト)の場合、ホームレベルの ~/.claude/ を CLAUDE.md などを含めてスキャンする。実際のマシンでの grok inspect --json は、まさにそのファイルを列挙した。したがって、Claude Code + Grok が共存するマシンでは、「Claude Code 用に」書かれたシムの文言は Grok にも届いていた。現在はそうではない。フックを実行できない検出ホストがルールファイルを共有する場合、そのファイルには名目上の所有者に関係なく検索優先の文言が付けられる。fimemory doctor は、ブロックが存在することだけでなく、各ルールファイルがどの本文を持つかを報告する。

Codex CLI にはフックがある。出荷済みバイナリ @openai/codex 0.145.0(2026-08-01時点)で確認:イベントセットには user_prompt_submit、session_start、pre_tool_use、stop が含まれる。バイナリには hooks/src/events/ のソースパスと hooks/hooks.json ローダーが含まれる。当社は Codex のフック設定を一切書かないため、当社のフックはそこで実行されない。当社のハンドラが Codex で機能するか、つまりハンドラスキーマと user_prompt_submit フックの stdout がインジェクトされるかは未検証であり、いずれの方向の主張も行われない。

Gemini CLI にはフックがあり、当社が書くまさにそのファイルのファーストパーティ製インポートを同梱している。@google/gemini-cli 0.52.0(2026-08-01時点)で確認:UserPromptSubmit は Gemini の BeforeAgent イベントにマッピングされ、gemini hooks migrate は <cwd>/.claude/settings.json を読み取り、そのフックをインポートする。そのコマンドを使用する場合の警告が1つ:そのインポーターは command、type、timeout のみをコピーし、Grok とまったく同様に args を落とす。当社のハンドラが含まれる .claude/settings.json があるディレクトリで実行すると、プロンプトのたびに失敗する node プロセスが生じる。当社は Gemini のフック設定を書かないため、これは自分でマイグレーションを実行した場合にのみ発生する。

Windsurf および Claude Desktop:そもそもフックをサポートしているかは未検証である。当社が確認したどのマシンにもインストールされていない。両者に対して当社はフック設定を書いておらず、それ以上の制限は主張しない。

Cursor:Grok のドキュメントには Cursor のフックファイル(~/.cursor/hooks.json)が記録されている。当社はそれを書いておらず、当社のハンドラをそれに対してテストもしていない。

fimemory install-rules --list-hosts は、これをすべてあなたのマシンについて出力する:どのホストが検出されるか、各ホストがルールファイルをどこに置くか、ホストごとのフック理由とその出典。

ルールブロックが重要である理由

install-mcp はアシスタントにストアを読み取る能力を与える。install-rules --mode shim は、関連ノートをプロンプトの先頭にインジェクトすることで、聞かれずにストアを読み取らせるものである。当社の測定では、そのコストはアシスタントにツール呼び出しでストアを検索させる場合のコストのほんの一部である。これがない場合、ツールは存在するがほぼアイドル状態である。

シムの文言は、取得フックが実際に実行されるホストのみが排他的に読み取るファイルにのみ書かれる。現在のところ、それは Grok CLI のないマシン上の Claude Code を意味する。他のすべてのファイルには検索優先ブロックが付けられる。これは、それらのアシスタントに fimemory_search を自分で呼び出すよう指示する文言であり、彼らには何もインジェクトされないからだ。Grok CLI をインストールすると、~/.claude/CLAUDE.md は次の setup で検索優先の文言に戻る。Grok もそのファイルを読み取るからだ。

何かがおかしいと思ったとき

fimemory doctor は、ストアモード、キーソース、各ホスト設定の MCP 登録、ルールブロック、取得フック、カタログインデックス、ストアが最後に読み取られた日時をチェックする。何が欠けているかと、それにどう対処すべきかを名前付きで示し、実際に何かが壊れている場合は非ゼロで終了する。インデックスが欠落している、またはディスク上のノートをリストしていないストアは、警告ではなく失敗である。検索はインデックスを読み取るため、盲目的なインデックスはアシスタントが静かに何も見つけないことを意味する。

保存時の暗号化(デフォルト)

新しいストアは、Argon2id パスフレーズによって保護された XChaCha20-Poly1305 で封印され、24語の復元フレーズが作成時に一度だけ表示される(fimemory encrypt は以前の、または --plaintext のストアを同じ状態にする)。パスフレーズとそのフレーズの両方を失うと、データは消える。これは設計によるものだ。アカウントもリセットもない。まさにそれがそのフレーズが重要である理由だ。

ツールは GESTALT_PASSPHRASE でストアを開く。自分のシェルが望む方法で設定せよ:

$env:GESTALT_PASSPHRASE = 'your passphrase here'          # PowerShell
set "GESTALT_PASSPHRASE=your passphrase here"             # cmd.exe
GESTALT_PASSPHRASE='your passphrase here' fimemory list   # macOS, Linux

一度のロック解除で約8時間コマンドが高速に保たれる(sessionKeyCacheTtlHours、0で無効になる)。fimemory lock で早期に終了する。

2日目の真実、不意を突かれないように:そのウィンドウが期限切れになり環境にパスフレーズがない場合、CLI コマンドは再び尋ね、MCP ツールはすべての呼び出しに、修正方法を明示した「ストアはロックされています」という明確なエラーで応答する(ツールが実行される場所で GESTALT_PASSPHRASE を設定するか、任意のターミナルで fimemory unlock を実行する。実行中のサーバーは再起動不要で、次の呼び出しでロック解除を認識する)。プロンプトごとの取得フックは、プロンプトをブロックせず沈黙を保つ。fimemory doctor こそが、まさにその状態を声に出して名指しするものである。GUI アプリ(Claude Desktop など)はシェルプロファイルではなく OS のユーザー環境を読み取るため、デスクトップセッションがその変数を認識できる場所に置くこと。

境界線についての正直な説明:ストアのロックが解除されると、接続された MCP クライアントはファイルシステムツールと同等の読み取りアクセスを持つ。これはすべてのメモリ MCP に当てはまる。当社はそれを明確に述べる。

アンインストール

レイヤーごとに1コマンド。各コマンドはインストーラーが書いたものだけに触れる:

fimemory uninstall-mcp      # remove the MCP entry from every host config
fimemory uninstall-rules    # remove the memory rule block, nothing else in the file
fimemory uninstall-hooks    # remove our two handlers from Claude Code's settings

まだ単一のティアダウンコマンドはないため、uninstall-mcp は他の2つのコマンドを出力し、ロールバック全体が1画面に収まる。

uninstall-mcp は、空の置換を伴う install-mcp と同じスキャンである:同じホスト、同じファイル、ホストの設定ディレクトリがインストールされているかどうかを決定するという同じルール。当社のエントリを削除するだけで、それ以外は何もしない。解析できない設定は拒否され、書き換えられることなくバイト単位で同一のまま残される。拒否は終了コード1であるため、fimemory uninstall-mcp && rm -rf ~/.fimemory は続行せず停止する。当社のものが何もないホストは成功であり、終了コード0で終了する。

Claude Code はインストールと対称的である:当社は claude mcp remove fimemory -s user を出力し、~/.claude.json を読み取り専用で読み取る。これは、エントリがそこに登録されているかどうかを知らせるためだけだ。

パスフレーズの順序、何かを削除する前に

install-mcp --env-passthrough GESTALT_PASSPHRASE を実行したことがあれば、暗号化されたストアへのパスフレーズがホスト設定ファイルに平文で置かれている。当社のエントリを削除すると、エントリとともにそれが削除される。そして一部の人にとって、その設定ファイルが唯一のコピーである。したがって、順序は両方向で重要だ:

  • ストアを保持する場合: 何かを削除する前に、覚えているパスフレーズまたは24語の復元フレーズでストアをまだ開けることを確認せよ。最初に fimemory uninstall-mcp --dry-run を実行せよ。これは削除する環境変数を名前で示すが、値は決して示さず、何も書き込まない。

  • ストアを破棄する場合: 最初に設定を削除し、次にストアフォルダを削除せよ。その順序が正しい順序であり、設定ファイルにパスフレーズが残らない。

  • Claude Code 自身のバイナリは、claude mcp remove が env 変数とヘッダーを含むサーバー設定を完全に削除すると述べているため、出力されたコマンドもそれらの値を一緒に削除する。

ストア自体はあなたのフォルダであるため、削除はディレクトリの削除である:~/.fimemory(リネーム前のインストールでは ~/.gestalt)、または --home で指定した場所。ノートを保持したい場合は、先にエクスポートせよ。

あなたのファイル、あなたの出口

fimemory export --plaintext <dir> は、すべてのノート、ログ、提案された編集をプレーンな Markdown としてストアの外に書き出す。脱出ハッチは実在し、初日から機能する。

命名に関する注記

ユーザー向けのものはすべて fimemory である:コマンド、MCP サーバーキー、ツール ID(fimemory_search、fimemory_get、...)。リネーム前のインストールは引き続き機能する:~/.gestalt のストア、GESTALT_* 環境変数、古い gestalt MCP エントリはすべて引き続き検出され、尊重される。

ライセンス

FSL-1.1-ALv2 の下でソース利用可能(LICENSE.md を参照)。自由に使用・修正できる。販売や競合サービスとしての運営はできない。各バージョンはリリースから2年後に Apache-2.0 になる。

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides persistent local memory functionality for AI assistants, enabling them to store, retrieve, and search contextual information across conversations with SQLite-based full-text search. All data stays private on your machine while dramatically improving context retention and personalized assistance.
    3
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI assistants with persistent memory across sessions using local SQLite and keyword search, allowing storage and retrieval of user preferences, project context, and decisions.
    22 npm
    9
    MIT