About Openeruka
Openeruka is an MCP server in the RAG category: self-hosted Eruka-compatible memory server — SQLite backend, REST API, MCP, and CLI. Single binary. It has been installed 0 times through Conduid.
Install
git clone https://github.com/dirmacs/openerukaThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Openeruka
Powered by Claude · Grounded in docs
Security checks
- ·README presentNot checked yet.
- ·License declaredNot checked yet.
- ·Tests presentNot checked yet.
- ·Dependencies pinnedNot checked yet.
- ·No dynamic code executionNot checked yet.
- ·Scoped permissionsNot checked yet.
README
openeruka
The open-source knowledge state memory server for AI agents.
openeruka is a fully self-contained memory server that enforces the knowledge state invariant: Confirmed facts cannot be overwritten by Inferred guesses. Run it locally, connect eruka-mcp to it, and your AI agent gets grounded, protected memory. Ships as a single binary with SQLite bundled — production-ready in one command.
# Install the server binary
cargo install openeruka
# Start it
openeruka serve # default port 8080
# Connect Claude Code / Claude Desktop via eruka-mcp
# Default ERUKA_API_URL is http://localhost:8080 — no extra config needed
The knowledge state invariant
use openeruka::KnowledgeState;
// The core contract — enforced server-side, not advisory
assert!( KnowledgeState::Confirmed.can_overwrite(&KnowledgeState::Inferred));
assert!(!KnowledgeState::Inferred.can_overwrite(&KnowledgeState::Confirmed));
When your agent tries to overwrite a Confirmed fact with an Inferred guess, the server returns 409 Conflict. LLM hallucinations cannot corrupt verified knowledge. No other memory system enforces this.
Interaction surfaces
openeruka exposes three equivalent interfaces:
| Interface | Command | Use case |
|---|---|---|
| REST API | openeruka serve |
Connect any HTTP client, agent, or openeruka-client |
| MCP server | openeruka mcp |
Claude Desktop, Claude Code, Cursor via eruka-mcp |
| CLI | openeruka get/set |
Quick reads and writes from the terminal |
All three share the same SQLite backend and enforce the same knowledge state rules.
Quick start
# Install
cargo install openeruka
# Start REST server (SQLite backend, default ./eruka.db)
openeruka serve
# Write a confirmed fact
curl -X POST http://localhost:8080/api/v1/context \
-H "Content-Type: application/json" \
-d '{"workspace_id":"my-project","path":"identity/company_name","value":"Acme Corp","knowledge_state":"CONFIRMED","confidence":1.0,"source":"user_input"}'
# Try to overwrite with an inferred guess — rejected with 409
curl -X POST http://localhost:8080/api/v1/context \
-H "Content-Type: application/json" \
-d '{"workspace_id":"my-project","path":"identity/company_name","value":"Acme AI Labs","knowledge_state":"INFERRED","confidence":0.7,"source":"agent_inference"}'
# → 409 Conflict: field is CONFIRMED, write has lower knowledge state
# Read it back — still the original
curl "http://localhost:8080/api/v1/context?workspace_id=my-project&path=identity/company_name"
Use as a library
[dependencies]
openeruka = { version = "0.2", default-features = false }
openeruka-client = "0.1"
// Embed SqliteContextStore in your own Rust agent
use openeruka::{SqliteContextStore, ContextStore, ErukaFieldWrite, KnowledgeState, SourceType};
let store = SqliteContextStore::open("./eruka.db").await?;
// Write enforces the invariant
store.write_field("my-ws", ErukaFieldWrite {
path: "identity/name".to_string(),
value: serde_json::json!("DIRMACS"),
knowledge_state: KnowledgeState::Confirmed,
confidence: 1.0,
source: SourceType::UserInput,
}).await?;
openeruka vs eruka.dirmacs.com
eruka-mcp can connect to either:
# Local openeruka (OSS, SQLite, single-tenant)
ERUKA_API_URL=http://localhost:8080 eruka-mcp
# Managed Eruka (PostgreSQL, multi-tenant, enterprise features)
ERUKA_API_URL=https://eruka.dirmacs.com ERUKA_API_KEY=sk:your-key eruka-mcp
| openeruka (OSS) | eruka.dirmacs.com | |
|---|---|---|
| Knowledge state enforcement | ✅ | ✅ |
| REST + MCP + CLI | ✅ | ✅ |
| SQLite (local) | ✅ | — |
| PostgreSQL (scalable) | — | ✅ |
| Multi-tenancy | — | ✅ |
| B6 quality scoring | — | ✅ |
| Datalog inference | — | ✅ |
| Gardener pipeline | — | ✅ |
| SLA / HIPAA / SSO | — | ✅ |
DIRMACS ecosystem
- eruka-mcp — MCP client for openeruka and eruka.dirmacs.com
- ARES — multi-agent runtime that uses Eruka for context
- pawan — CLI coding agent with Eruka memory
- deagle — code intelligence engine
- DIRMACS — the company behind this stack
Docs
License
MIT — see LICENSE
README mirrored from the source repository 4 months ago. The original is authoritative.