openeruka
Open-source knowledge state memory server for AI agents.
Self-host your memory. Single binary, SQLite backend.
The Knowledge State Invariant
Every field in openeruka carries a state. Confirmed facts cannot be overwritten by inferred guesses — this is enforced at write time, not by convention.
| State | Confidence | Meaning | Agent behaviour |
|---|---|---|---|
| CONFIRMED | 1.0 | User-verified ground truth | Use directly |
| INFERRED | 0.45–0.85 | AI-extracted, high confidence | Use with caveat |
| UNCERTAIN | 0.05–0.30 | Was confirmed, now stale | Flag as possibly outdated |
| UNKNOWN | 0.0 | Needed but missing | DO NOT fabricate |
Features
Multi-backend storage
SQLite by default — zero setup. Enable --features redb for the embedded key-value backend. Swap without changing a line of application code.
Full REST API
Compatible with the eruka.dirmacs.com managed service surface. Write once, run locally or in the cloud.
MCP-native
Connect Claude Desktop, Claude Code, Cursor, or any MCP client via eruka-mcp. Default URL is http://localhost:8080 — no extra config.
Typed Rust client
openeruka-client gives you a fully async, typed HTTP client for embedding Eruka reads/writes directly in your Rust application.
CLI included
Inspect and modify context from the shell. openeruka get / set for scripting, CI pipelines, and quick debugging.
Knowledge graph
Entity nodes and typed edges let you model relationships between things your agent knows — not just isolated key-value pairs.
Quick start
# 1. Install
cargo install openeruka # installs the `openeruka` binary
# 2. Start the server (SQLite, port 8080)
openeruka serve
# 3. Connect eruka-mcp (defaults to http://localhost:8080)
cargo install eruka-mcp
claude mcp add eruka eruka-mcp
Or use the REST API directly:
# Write a confirmed fact
curl -s http://localhost:8080/fields -X POST \
-H "Content-Type: application/json" \
-d '{"workspace_id":"default","path":"identity/company","value":"ACME","knowledge_state":"confirmed","confidence":1.0,"source":"user_input"}'
# Read it back
curl -s http://localhost:8080/fields/default/identity/company
Architecture
eruka-mcp also works with the managed eruka.dirmacs.com backend — same openeruka-compatible REST surface.