OmniMem

公式

セッション、プロジェクト、マシンを超えてAIエージェントに永続的なメモリを提供する、セルフホスト型のMCPサーバーです。

OmniMem MCPで何ができますか?

  • 永続セッションメモリ — アシスタントに重要な決定事項や教訓をrememberするよう依頼し、セッション、プロジェクト、マシンをまたいで保持させます。
  • コンテキスト付きリコール — 新しい作業を始める前に、recallを使用して類似性、新しさ、経験の重みでランク付けされた関連メモリを取得します。
  • ワンコールセッションブリーフィング — プロジェクトコンテキスト、古いメモリ、新しい記事、スキル提案を含む完全なbriefing()を1回の呼び出しで取得します。
  • 過去の行き詰まりを回避 — ライブラリやパターンを提案する前に、墓地をチェックして、すでに失敗したアプローチをスキップします。
  • 再利用可能なスキルのコンパイル — 強化された教訓を、アクティベーション前にレビューを経るロード可能なcompile_skill提案に変換します。
  • メモリのエクスポートdump_to_file()を使用して、完全に所有するJSONファイルにすべてをバックアップします。

ドキュメント

自己ホスト型のセマンティックメモリ for AIエージェント。永続セッション、経験スコアリング、行き詰まりのための墓場。読んだRSSから取得した知識を基に、Valkeyベクター検索に保存され、MCPサーバーとして公開されます。 https://omnimem.org

Ric Harvey 50fde316a1

Security Scans / Bandit SAST (push) Successful in 7s

Details

Security Scans / Dependency Audit (mcp_server) (push) Successful in 40s

Details

Security Scans / Dependency Audit (rss_worker) (push) Successful in 30s

Details

Security Scans / Dependency Audit (web_ui) (push) Successful in 27s

Details

Security Scans / Test Coverage (push) Successful in 1m23s

Details

Security Scans / Secret Scan (push) Successful in 4s

Details

Docker Build & Push / Build mcp_server (push) Successful in 17m57s

Details

Docker Build & Push / Build web_ui (push) Successful in 15m23s

Details

Docker Build & Push / Build rss_worker (push) Successful in 2m5s

Details

Merge pull request 'v6.4.x' (#25) from v6.4.x into main
2026-07-20 01:19:39 +02:00
.forgejo/workflowsci: pin buildx builds to the multiarch builder2026-07-17 15:08:57 +00:00
claude_configfeat: auto skill scan proposes drafts from cross-project lesson patterns2026-07-19 17:50:40 +00:00
docsfeat: auto skill scan proposes drafts from cross-project lesson patterns2026-07-19 17:50:40 +00:00
guideschore: drop the executable bit from the deployment guides2026-07-17 12:09:52 +00:00
mcp_serverci: silence bandit B104 on deliberate 0.0.0.0 test fixtures2026-07-19 23:15:31 +00:00
rss_workerci: silence bandit B104 on deliberate 0.0.0.0 test fixtures2026-07-19 23:15:31 +00:00
scriptsdocs: skill demo playbook — load, compile, demo, and clean up the moo-reports skill2026-07-17 12:28:05 +00:00
web_uici: silence bandit B104 on deliberate 0.0.0.0 test fixtures2026-07-19 23:15:31 +00:00
.env.exampledocs: 6.3.1 — web UI login across changelog, README, env example, dev guide2026-07-13 20:44:03 +00:00
.gitignoretest: push coverage to 99.9% across the whole codebase2026-07-19 19:20:36 +00:00
.gitleaks.tomlci: allowlist gitleaks false positive on valkey test string2026-07-19 23:17:59 +00:00
CHANGELOG.mdchore: bump version to 6.4.2, changelog for the 6.4.2 line2026-07-19 22:38:45 +00:00
CLAUDE.mdchore: bump version to 6.4.2, changelog for the 6.4.2 line2026-07-19 22:38:45 +00:00
docker-compose.hub.ymlfeat: one-line installer script using Docker Hub images2026-07-16 21:29:09 +00:00
docker-compose.test.ymlfeat: add comprehensive test suite with Docker-based test runner2026-03-12 16:44:58 +00:00
docker-compose.ymlfix(oauth+security): refresh-token grace window + harden server surface2026-07-08 10:40:53 +01:00
install.shfix: stop install.sh hanging under curl|bash and add step-by-step progress [skip ci]2026-07-17 16:13:10 +00:00
LICENSEchore: add MIT license2026-03-10 19:42:51 +00:00
OMNIMEM_BUILD_PROMPT.mdfeat: initial project scaffold2026-03-09 22:13:35 +00:00
README.mddocs: repeat the Codeberg development notice in the contributing section2026-07-17 12:10:22 +00:00
TODO.mddocs: add TODO.md with future feature ideas2026-03-17 17:46:16 +00:00

omnimem.org

Security Scans Docker Build Coverage

開発はCodebergで行われています — 問題やPRはそちらへお願いします。

同じセッションを二度と繰り返さないでください。

すべてのClaude Codeセッションはゼロから始まります。プロジェクトの記憶はありません。先週何が失敗したかの記憶もありません。先週の火曜日に、onnxruntimeがAlpineで爆発する理由を発見するのに3時間費やし、実際に動くものを見つけたという記憶もありません。

だから、あなたはプロジェクトをもう一度説明します。Claudeはまた同じ壊れたライブラリを提案します。同じ警報。同じ歌。あなたはビル・マレーで、Claudeはパンクスートーニーです。

OmniMemはそれを修正します。これは自己ホスト型のMCPサーバーで、AIエージェントにセッション、プロジェクト、マシンを超えた永続的なメモリを提供します。あなた自身のハードウェアで動作し、永遠に無料です。

claude> use onnxruntime for the embeddings

⚠ WARNING: previously abandoned approach

  onnxruntime — SIGILL crash on Alpine musl libc (effort: 4/5)
  → switched to sentence-transformers instead

その警告は運ではなく記憶から来ています。すでに代償を払った過ちが、二度請求されることはありません。


すぐに始める

ヒント

1つのコマンドで、事前ビルド済みのDocker Hubイメージからフルスタックが起動します:

curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash

その後、エージェントをそれに向けます — クイックスタートで残りの手順を説明しています。または、以下のより詳細なクイックスタートセクションにジャンプしてください。


記憶するもの

5種類のメモリがあり、呼び出し時にすべて一緒に検索されます:

  • エピソード記憶 — あなたが下した決定、修正したバグ、発見したパターン。実際の努力を要して学んだことで、毎朝再学習する必要のないもの。
  • プロジェクトコンテキスト — あなたのスタック、目標、現在の状態。エージェントは毎回のセッションで冷たい状態から始めるのではなく、すでにブリーフィングを受けた状態で到着します。
  • 知識 — 設定したRSSフィードをスケジュールで取得し、Claude Haikuで要約し、埋め込み、保存します。先週関連する記事が届いた場合、読む価値のある出発点として表示されます。
  • 好み — あなたの働き方に関する規範的なルール(「機能が完了したら必ずREADMEを更新する」など)。会話から自動的に抽出され、適用されるたびに表示されます。
  • スキル — ドメインでの蓄積された経験からコンパイルされたSKILL.mdドキュメント。最初のプロンプトからあなたのやり方でエージェントが動作します。他の名前空間から派生し、手動編集はされず、すべての変更はあなたのレビューを通過します。スキルコンパイラを参照してください。 最も上位のリコール結果は、6か月前の別プロジェクトでの判断、昨日の解決策、火曜の夜に公開された記事かもしれません。役に立つ限り、どこから来たかは問題ではありません。

何が違うのか

MCPラッパー付きのキーバリューストアではありません。OmniMemは記憶が実際に機能する仕組みをモデル化しています。物事は時間とともに薄れ、時には互いに矛盾し、苦労して得たものはその地位を獲得します。

  • The Graveyard — 行き止まりはすべて、試した内容、失敗した理由、費やした時間とともに記録されます。エージェントはライブラリやパターンを提案する前にこれを確認します。
  • Experience scoring — 4回の試行と奇妙なプラットフォーム回避策を要して解決できたものは貴重です。難しかったほど、次回はより簡単に表面化します。
  • Memory lifecycleACTIVE → DEPRIORITISED → ARCHIVED → DELETED。「Xについて忘れて」は通常、話題に出すのをやめるという意味であり、存在を消すことではありません。優先度を下げられた記憶も、再び重要性を取り戻せます。
  • Contradiction detection — 新しい記憶が保存済みの内容と矛盾する場合、OmniMemがそれを検出します。毎回の書き込みで高速ヒューリスティック、Claude Haikuによる任意の詳細分析。
  • Semantic deduplication — ほぼ同一の記憶は書き込み時にフラグが付けられ、find_duplicates()で一括クリーンアップされます。
  • One-call briefing — 単一のbriefing()で、プロジェクトコンテキスト、経験統計、古い記憶、新しい記事、矛盾警告、スキル提案が返されます。3段階のウォームアップは不要です。
  • The skill compiler — 強化された教訓と行き止まりを、ロード可能なスキルに凝縮します。提案・承認ゲートの背後にあるため、悪い教訓が静かにポリシーになることはありません。
  • Auto-maintenance — 重複のアーカイブ、矛盾のフラグ付け、期限切れ知識のクリーンアップをすべてバックグラウンドで実行。
  • Web UI — htmxダッシュボードからすべてを閲覧・検索・管理。テレメトリとPrometheus /metricsエンドポイント付き。

すべてのリコールの背後にあるランキング式:

score = similarity x surface_score x recency x experience_weight

何が返ってくるかを決めるのは4つの要素です。意味的類似性だけでは不十分で、ライフサイクル状態、経過時間、教訓を学ぶのがどれほど難しかったかがすべて影響します。


あらゆるMCPエージェントと連携

すべてに共通する単一のメモリレイヤー:claude.aiClaude CodeClaude DesktopCursorGitHub CopilotGitLab DuoAWS KiroOpenCodeOpenAI Codex CLIOpen Design


アーキテクチャ

4つのコンテナ。あなたのマシンから何も出て行きません。sentence-transformersによるローカル埋め込み、ベクトル検索付きValkeyへの保存、両方のフロントドアが同じメモリエンジンを共有します。

flowchart TB
    agent["AI agent<br/>Claude Code · claude.ai · Cursor · Copilot · ..."]
    browser["Browser"]

    agent -- "MCP · Streamable HTTP / SSE · :8765" --> mcp
    browser -- "HTTP · :8080" --> webui

    subgraph stack["Docker Compose stack"]
        mcp["MCP server<br/>Python · FastMCP<br/><i>remember · recall · briefing<br/>compile_skill · record_experience</i>"]
        webui["Web UI<br/>Starlette · htmx · Jinja2<br/><i>dashboard · search · skills<br/>projects · backups · /metrics</i>"]
        rss["RSS worker<br/>feedparser · APScheduler<br/>Claude Haiku summaries"]
        valkey[("Valkey + valkey-search<br/>HNSW vector indexes<br/><i>idx:episodic · idx:project · idx:knowledge<br/>idx:preference · idx:skill</i>")]

        mcp <--> valkey
        webui <--> valkey
        rss --> valkey
    end

全体像(リコールパイプライン、ストレージモデル、設計上の決定)はdocs/architecture.mdにあります。


セルフホスト、オープンソース、あなたのもの

SaaSなし。ベンダーロックインなし。他人のサーバーにコンテキストを送信することもありません。

  • ValkeyはオープンソースのRedisフォークです。すべてのデータは、自分のマシン上の名前付きDockerボリュームに保持されます。
  • Multi-arch Docker imagesはamd64とarm64に対応。Raspberry Pi、AWS Graviton、Apple Siliconでもx86と同様に動作します。
  • sentence-transformersはAPI呼び出しなしでローカルに埋め込みを実行します。
  • MIT licensedは、フォーク、拡張、どこでも実行が可能であることを意味します。
  • One backup commanddump_to_file()を呼び出し、すべてをあなたが所有するJSONファイルにエクスポートします。

リバースプロキシ経由でMCPポートを公開すれば、作業するすべてのマシンが同じメモリを共有します。1つのデプロイでどこでも利用可能 — docs/remote-access.mdを参照してください。


クイックスタート

インストーラーはDockerのインストールを確認し、安全なパスワードを生成し、適切な.envを書き込み、ビルド済みのDocker Hubイメージからすべてを起動します:

curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash

またはソースからビルド:

git clone https://codeberg.org/ric_harvey/omnimem.git && cd omnimem
cp .env.example .env
# Set VALKEY_PASSWORD and ANTHROPIC_API_KEY in .env
docker compose up -d

次にエージェントを接続します — Claude Code (~/.claude.json):

{
  "mcpServers": {
    "omnimem": {
      "type": "sse",
      "url": "http://localhost:8765/sse"
    }
  }
}

サーバーは接続するエージェントにMCP instructionsフィールド経由で使用ガイドを自動的に配信します — 設定ファイルは不要です。Webダッシュボードはhttp://localhost:8080にあります。

認証トークン、権限設定、その他のエージェントを含む完全なウォークスルーはdocs/quick-start.mdにあります。


ドキュメント

Quick startインストーラー、ソースからのビルド、エージェントの接続
Features in depthライフサイクル、墓場、経験スコアリング、重複排除、矛盾、ブリーフィング
The skill compiler経験をロード可能なスキルにコンパイル
MCP tool reference30以上の全ツール
Configuration referenceすべての環境変数
RSS & knowledgeパッシブな知識の取り込みと昇格
Multiple machinesリバースプロキシ、claude.ai用OAuth 2.1、トラブルシューティング
Web UI管理ダッシュボードとPrometheusメトリクス
Architectureコンテナ、リコールパイプライン、設計上の決定
Memory type specsストレージモデル、フィールドごと
Connection guidesエージェントごとのセットアップ
Deployment guidesmacOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel

Valkeyに何が誰によって書き込まれるかを正確に知りたい場合の名前空間別ストレージ仕様:overview · episodic · project · knowledge · preference · skill


コントリビューション

IssueとPRを歓迎します。開発はCodebergで行われています — IssueとPRはそちらへお願いします。OmniMemは拡張を前提に設計されており、スコアリングパイプラインはコアに触れることなく新しい乗数を追加できる構造になっています。新しいMCPツール、追加の名前空間タイプ、代替の埋め込みバックエンドはすべて合理的な方向性です。


ライセンス

MIT。自由に使用、フォーク、変更が可能です。エンタープライズ層もホスト版も、条件もありません。


Ric Harvey @ SquareCows Ltd によって構築されました。自分のツールを所有したい人向けのAI・自動化コンサルタンシーです。