OmniMem

resmi

Server MCP yang dihosting sendiri yang memberikan memori persisten kepada Agen AI di seluruh sesi, proyek, dan mesin.

Apa yang bisa Anda lakukan dengan OmniMem MCP?

Berikan agen AI Anda memori persisten yang dihosting sendiri di seluruh sesi, proyek, dan mesin — minta ia untuk "memeriksa kuburan sebelum menyarankan pustaka yang sudah gagal."

  • Briefing sesi — Minta briefing untuk mendapatkan konteks proyek, statistik pengalaman, memori basi, artikel baru, dan saran keterampilan dalam satu panggilan.
  • Hindari jalan buntu masa lalu — Minta agen memeriksa kuburan sebelum menyarankan pustaka atau pola yang sebelumnya gagal.
  • Ingat keputusan masa lalu — Gunakan recall untuk memunculkan keputusan, perbaikan, dan pola dari sesi sebelumnya di berbagai proyek.
  • Catat pengalaman yang sulit didapat — Catat perbaikan dengan record_experience sehingga pelajaran yang membutuhkan usaha nyata lebih mudah muncul di lain waktu.
  • Hapus duplikat memori — Jalankan find_duplicates untuk menandai dan membersihkan secara massal memori tersimpan yang hampir identik.
  • Cadangkan memori Anda — Ekspor semuanya ke file JSON yang Anda miliki dengan dump_to_file.

Dokumentasi

Memori semantik self-hosted untuk AI Agents. Sesi persisten, penilaian pengalaman, dan kuburan untuk jalan buntu, didukung oleh pengetahuan yang diperoleh dari RSS yang Anda baca dan disimpan dalam pencarian vektor Valkey lalu diekspos sebagai server 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>omnimem.org

Security Scans Docker Build Coverage

Pengembangan dilakukan di Codeberg — silakan ajukan issue dan PR di sana.

Berhentilah menjalani sesi yang sama dua kali.

Setiap sesi Claude Code dimulai dari nol. Tidak ada memori tentang proyek Anda. Tidak ada memori tentang apa yang gagal minggu lalu. Tidak ada memori bahwa Anda menghabiskan tiga jam Selasa lalu mencari tahu mengapa onnxruntime meledak di Alpine sebelum menemukan sesuatu yang benar-benar berfungsi.

Jadi Anda menjelaskan proyeknya lagi. Claude menyarankan pustaka rusak yang sama lagi. Alarm yang sama. Lagu yang sama. Anda adalah Bill Murray dan Claude adalah Punxsutawney.

OmniMem memperbaiki itu. OmniMem adalah server MCP self-hosted yang memberikan agen AI Anda memori persisten lintas sesi, proyek, dan mesin. OmniMem berjalan di perangkat keras Anda sendiri dan gratis selamanya.

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

Peringatan itu datang dari memori, bukan keberuntungan. Kesalahan yang sudah Anda bayar tidak boleh menagih Anda dua kali.


Mulai dengan cepat

Tip

Satu perintah menjalankan seluruh stack dari image Docker Hub yang sudah dibuat:

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

Lalu arahkan agen Anda ke sana — panduan memulai memandu langkah selanjutnya, atau langsung lompat ke bagian panduan memulai yang lebih lengkap di bawah.


Apa yang diingatnya

Lima jenis memori, semuanya dicari bersamaan saat recall:

  • Episodik — keputusan yang Anda buat, bug yang Anda perbaiki, pola yang Anda temukan. Hal-hal yang membutuhkan usaha nyata untuk dipelajari dan tidak seharusnya dipelajari ulang setiap pagi.
  • Konteks proyek — stack, tujuan, dan keadaan terkini Anda. Agen tiba di setiap sesi sudah mendapat pengarahan alih-alih memulai dari nol.
  • Pengetahuan — feed RSS yang Anda konfigurasi, diambil sesuai jadwal, diringkas oleh Claude Haiku, di-embed, dan disimpan. Ketika artikel relevan tayang minggu lalu, artikel itu muncul sebagai titik awal yang layak dibaca.
  • Preferensi — aturan preskriptif tentang cara Anda ingin bekerja ("selalu perbarui README setelah fitur rilis"), diekstrak otomatis dari percakapan Anda dan dimunculkan setiap kali relevan.
  • Keterampilan — dokumen SKILL.md yang disusun dari akumulasi pengalaman Anda di suatu domain, sehingga agen bekerja dengan cara Anda sejak prompt pertama. Diturunkan dari namespace lain, tidak pernah diedit manual, dan setiap perubahan melalui tinjauan Anda. Lihat kompiler skill. Hasil pencarian teratas mungkin berupa keputusan dari enam bulan lalu pada proyek yang berbeda, solusi dari kemarin, atau artikel yang tayang Selasa malam. Tidak masalah dari mana asalnya selama itu berguna.

Apa yang membuatnya berbeda

Bukan sekadar penyimpanan key-value dengan pembungkus MCP. OmniMem memodelkan cara kerja memori yang sebenarnya: hal-hal memudar seiring waktu, kadang saling bertentangan, dan hal-hal yang diperoleh dengan susah payah akan mendapatkan tempatnya.

  • The Graveyard — setiap jalan buntu dicatat beserta apa yang Anda coba, mengapa gagal, dan berapa banyak waktu yang Anda habiskan. Agen memeriksanya sebelum menyarankan pustaka atau pola.
  • Experience scoring — sesuatu yang butuh empat kali percobaan dan solusi platform yang tidak biasa untuk dipecahkan adalah emas. Semakin sulit, semakin mudah muncul kembali di lain waktu.
  • Memory lifecycle — ACTIVE → DEPRIORITISED → ARCHIVED → DELETED. "Lupakan X" biasanya berarti berhenti mengangkatnya, bukan menghapusnya dari keberadaan. Memori yang diturunkan prioritasnya bisa naik kembali.
  • Contradiction detection — jika memori baru bertentangan dengan yang tersimpan, OmniMem menangkapnya. Heuristik cepat pada setiap penulisan, analisis lebih dalam opsional melalui Claude Haiku.
  • Semantic deduplication — memori yang hampir identik ditandai saat penulisan dan dibersihkan secara massal dengan find_duplicates().
  • One-call briefing — satu briefing() mengembalikan konteks proyek, statistik pengalaman, memori basi, artikel baru, peringatan kontradiksi, dan saran keterampilan. Tanpa pemanasan tiga langkah.
  • The skill compiler — menyaring pelajaran yang diperkuat dan jalan buntu menjadi keterampilan yang dapat dimuat, di balik gerbang usul-dan-terima sehingga pelajaran buruk tidak bisa menjadi kebijakan secara diam-diam.
  • Auto-maintenance — duplikat diarsipkan, kontradiksi ditandai, pengetahuan kedaluwarsa dibersihkan, semuanya di latar belakang.
  • Web UI — jelajahi, cari, dan kelola semuanya dari dasbor htmx, dengan telemetri dan endpoint /metrics Prometheus.

Rumus peringkat di balik setiap pencarian:

score = similarity x surface_score x recency x experience_weight

Empat faktor menentukan apa yang kembali. Kemiripan semantik saja tidak cukup — status siklus hidup, usia, dan seberapa sulit pelajaran itu dipelajari semuanya berperan.


Bekerja dengan agen MCP apa pun

Satu lapisan memori untuk semuanya: claude.ai, Claude Code, Claude Desktop, Cursor, GitHub Copilot, GitLab Duo, AWS Kiro, OpenCode, OpenAI Codex CLI, dan Open Design.


Arsitektur

Empat kontainer. Tidak ada yang meninggalkan mesin Anda. Embedding lokal melalui sentence-transformers, penyimpanan di Valkey dengan pencarian vektor, dan kedua pintu depan berbagi mesin memori yang sama.

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

Gambaran lengkap — pipeline pencarian, model penyimpanan, dan keputusan desain — ada di docs/architecture.md.


Self-hosted, open source, milik Anda

Tanpa SaaS. Tanpa vendor lock-in. Tanpa konteks yang dikirim ke server orang lain.

  • Valkey adalah fork open source dari Redis. Semua data Anda tetap berada di volume Docker bernama di mesin Anda sendiri.
  • Gambar Docker multi-arsitektur untuk amd64 dan arm64. Berjalan di Raspberry Pi, AWS Graviton, atau Apple Silicon sama baiknya dengan x86.
  • sentence-transformers menjalankan embedding secara lokal tanpa panggilan API.
  • Lisensi MIT berarti Anda bebas fork, memperluas, dan menjalankannya di mana pun Anda mau.
  • Satu perintah cadangan memanggil dump_to_file() dan mengekspor semuanya ke file JSON yang Anda miliki.

Ekspos port MCP melalui reverse proxy Anda dan setiap mesin tempat Anda bekerja berbagi memori yang sama. Satu deployment, di mana saja — lihat docs/remote-access.md.


Mulai cepat

Penginstal memeriksa Docker terpasang, menghasilkan kata sandi aman, menulis .env yang masuk akal, dan memulai semuanya dari gambar Docker Hub yang sudah dibuat:

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

Atau bangun dari sumber:

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

Lalu arahkan agen Anda ke sana — Claude Code (~/.claude.json):

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

Server mengirimkan panduan penggunaannya ke agen yang terhubung secara otomatis melalui bidang instructions MCP — tanpa file konfigurasi yang diperlukan. Dasbor web ada di http://localhost:8080.

Panduan lengkap, termasuk token autentikasi, pengaturan izin, dan agen lainnya, ada di docs/quick-start.md.


Dokumentasi

Mulai cepatPenginstal, membangun dari sumber, menghubungkan agen Anda
Fitur secara mendalamSiklus hidup, graveyard, experience scoring, dedup, kontradiksi, briefing
The skill compilerMengompilasi pengalaman menjadi keterampilan yang dapat dimuat
Referensi alat MCPSemua 30+ alat
Referensi konfigurasiSetiap variabel lingkungan
RSS & pengetahuanPenyerapan dan promosi pengetahuan pasif
Banyak mesinReverse proxy, OAuth 2.1 untuk claude.ai, pemecahan masalah
Web UIDasbor manajemen dan metrik Prometheus
ArsitekturKontainer, pipeline pencarian, keputusan desain
Spesifikasi tipe memoriModel penyimpanan, bidang demi bidang
Panduan koneksiPengaturan per agen
Panduan deploymentmacOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel

Spesifikasi penyimpanan per-namespace, jika Anda ingin tahu persis apa yang ditulis ke Valkey dan oleh siapa: ringkasan · episodik · proyek · pengetahuan · preferensi · keterampilan


Berkontribusi

Issue dan PR diterima. Pengembangan berlangsung di Codeberg — issue dan PR di sana ya. OmniMem dirancang untuk diperluas dan pipeline penilaian disusun sehingga pengali baru dapat ditambahkan tanpa menyentuh inti. Alat MCP baru, tipe namespace tambahan, dan backend embedding alternatif semuanya merupakan arah yang masuk akal.


Lisensi

MIT. Bebas digunakan, di-fork, dan dimodifikasi. Tanpa tier enterprise, tanpa versi hosted, tanpa syarat.


Dibuat oleh Ric Harvey @ SquareCows Ltd, konsultan AI dan otomasi untuk orang-orang yang lebih suka memiliki alat mereka sendiri.