-
v3.10.0 Stable
released this
2026-03-27 21:36:24 +00:00 | 139 commits to main since this releaseWhat's changed
Added
- Streamable HTTP transport support: MCP server now supports Streamable HTTP via
MCP_TRANSPORT=httpenv var, using FastMCP's canonical"http"transport string. Endpoint moves from/sseto/mcpwhen enabled. Community contribution from @timstoop (PR #4) MCP_TRANSPORTenv var: Controls which transport the MCP server uses. Acceptssse(default) orhttp. Existing deployments continue to work without changes
Deprecated
- SSE transport: SSE remains the default in 3.10 but will be removed in a future release. A deprecation warning is logged on startup when using SSE. All connection guides updated with migration instructions
Fixed
- Bandit B310 security finding (v3.9.5): Validate URL scheme is
httporhttpsbefore callingurllib.request.urlopenin the RSS worker page fetcher - Version string out of sync (v3.9.4):
__version__now correctly tracks the release version - Trailing code fence in reverse-proxy docs
Changed
- All connection guides updated to show SSE as default with GFM deprecation warnings and Streamable HTTP migration instructions
- Kiro guide type field corrected from
"streamable-http"to"http"for consistency with FastMCP docs
Migration
No action required for existing deployments — SSE remains the default. To opt in to Streamable HTTP early:
- Set
MCP_TRANSPORT=httpin your.env - Update your client config:
"type": "http"with URL.../mcpinstead of"type": "sse"with.../sse
See the connection guides for per-agent instructions.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Streamable HTTP transport support: MCP server now supports Streamable HTTP via
-
v3.9.5 Stable
released this
2026-03-27 20:59:07 +00:00 | 142 commits to main since this releaseWhat's changed
- Fix Bandit B310 security finding: Validate URL scheme (http/https only) before calling
urllib.request.urlopenin the RSS worker page fetcher. Added# nosec B310annotation for the scheme-validated call. - Version bump:
__version__now correctly reads3.9.5(was stuck on3.9.3in v3.9.4).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Fix Bandit B310 security finding: Validate URL scheme (http/https only) before calling
-
released this
2026-03-25 19:54:03 +00:00 | 150 commits to main since this releaseWhat's new
Multi-arch Docker images
All three images (
omnimem-mcp,omnimem-web,omnimem-rss) now build for bothlinux/amd64andlinux/arm64via docker buildx on a self-hosted runner. Docker Hub serves the correct architecture automatically — OmniMem now runs natively on Raspberry Pi, AWS Graviton, Apple Silicon, and x86.Test coverage to 76%
92 new tests across 5 new test files, up from 50.27%:
test_project.py— 29 tests for project context toolstest_briefing.py— 19 tests for briefing tool and helperstest_audit.py— 20 tests for audit toolstest_backup.py— 17 tests for backup and restoretest_contradiction_tool.py— 7 tests for contradiction detection
CI/CD improvements
- Docker workflow migrated from buildah to docker buildx
- Manual
workflow_dispatchtrigger for on-demand builds - Fixed pip-audit false positive on CVE-2026-4539 (pygments ReDoS, no upstream fix)
- Fixed coverage badge publish failing on branch checkout
- Security scans no longer trigger on version tag pushes
Docker images
docker pull richarvey/omnimem-mcp:v3.8.2 docker pull richarvey/omnimem-web:v3.8.2 docker pull richarvey/omnimem-rss:v3.8.2Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-03-24 15:04:53 +00:00 | 175 commits to main since this releaseWhat's new
Optional bearer token authentication
OmniMem now supports built-in authentication on both the MCP server and web UI, enabled via environment variables:
MCP_AUTH_TOKEN— protects the MCP SSE endpoint (port 8765) using a custom FastMCPTokenVerifiersubclassWEB_UI_AUTH_TOKEN— protects the web dashboard (port 8080) using Starlette middleware
Both are fully optional. When unset or blank, behaviour is unchanged from previous versions. No new dependencies required.
The
/metricsendpoint and/static/assets are exempt from web UI auth so Prometheus scraping continues to work without credentials.Connection guides
New
guides/directory with setup instructions for six coding agents:Agent Transport Claude Code Native SSE GitHub Copilot Native SSE Cursor SSE (known quirks) AWS Kiro Native SSE OpenCode Native SSE OpenAI Codex CLI Needs supergateway bridge Configuration
Add to your
.env:MCP_AUTH_TOKEN=your-secret-token # Protects MCP endpoint WEB_UI_AUTH_TOKEN=your-secret-token # Protects web dashboardGenerate a secure token:
python3 -c "import secrets; print(secrets.token_urlsafe(32))"Add the token to your Claude Code config:
{ "mcpServers": { "omnimem": { "type": "sse", "url": "http://localhost:8765/sse", "headers": { "Authorization": "Bearer your-secret-token" } } } }See
docs/reverse-proxy.mdfor full documentation including reverse proxy examples.Full changelog: v3.7.1...v3.8.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v3.7.1 Stable
released this
2026-03-24 13:42:56 +00:00 | 178 commits to main since this releaseFixed
- Duplicate detection in web UI showing empty clusters: The duplicates page reported the correct number of clusters but displayed "0 memories, similarity ?" for each one. Root cause was a mismatch between the
find_all_duplicates()return structure (flat list of dicts) and the Jinja2 template which expected named attributes (cluster.keys,cluster.max_similarity). Clusters are now returned as{"memories": [...], "max_similarity": float}and the template iterates correctly. Max pairwise similarity is now computed and displayed per cluster.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Duplicate detection in web UI showing empty clusters: The duplicates page reported the correct number of clusters but displayed "0 memories, similarity ?" for each one. Root cause was a mismatch between the
-
v3.7.0 Stable
released this
2026-03-19 19:52:41 +00:00 | 179 commits to main since this releaseTitle: v3: Web UI dashboard, telemetry, auto-maintenance, and MCP instructions
Description:
Summary
This is the full v3 branch, covering versions 3.0.0 through 3.7.0. The headline feature is a web UI dashboard for browsing and managing memories outside of Claude Code,
but there's a lot more in here.- Web UI dashboard (Starlette + Jinja2 + htmx) — browse memories with filters and pagination, semantic search, memory detail views, lifecycle management, create new
memories with inline duplicate detection, project management (list/detail/edit/create/delete), RSS feeds CRUD with download/upload, experience tracking and graveyard
views, duplicate scanning, contradiction detection, suppression management, and backup management with create/download/upload/delete - Telemetry and Prometheus metrics — per-memory recall_count and last_recalled counters updated on every recall, telemetry dashboard page in the web UI, and a
Prometheus-compatible /metrics endpoint for Grafana integration - Auto-maintenance — automatic deduplication and contradiction scanning triggered every N briefing() calls per project (configurable via AUTO_MAINTENANCE_INTERVAL, default
- MCP instructions injection — OmniMem now injects its own usage instructions automatically when Claude Code connects, so users no longer need to manually copy CLAUDE.md
into every project - compile_project_context tool — auto-generates project context from stored episodic memories, useful for bootstrapping context on projects that already have memories but
no explicit set_project_context() call - version() tool — returns the current OmniMem version
- RSS worker file watcher — mtime polling with configurable interval and misfire_grace_time for robustness on sleeping machines
- Reverse proxy docs — Traefik and Caddy examples covering both web UI and MCP server endpoints
- Startup index migration — compares field counts against definitions and drops stale indexes so they get recreated with new fields
Stats
- 45 new files, 73 files changed, ~5,800 lines added
- 43 commits
- New Docker service: web_ui on port 8080
- New test suites for recall counters, maintenance, and briefing maintenance
Test plan
- cd mcp_server && pytest tests/ — all existing and new tests pass
- docker compose up -d — all four containers start and stay healthy
- Web UI accessible at http://localhost:8080 — dashboard loads, navigation works
- Browse memories, search, create, view detail, lifecycle actions all functional
- RSS feeds page: list, create, edit, delete, download, upload
- Projects page: list, detail, edit, create, delete
- Telemetry page shows recall counts; /metrics returns Prometheus format
- briefing() triggers auto-maintenance after configured interval
- MCP instructions appear in Claude Code without manual CLAUDE.md setup
- Reverse proxy docs: Traefik and Caddy configs work for both endpoints
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Web UI dashboard (Starlette + Jinja2 + htmx) — browse memories with filters and pagination, semantic search, memory detail views, lifecycle management, create new