openeruka

Open-source knowledge state memory server for AI agents.
Self-host your memory. Single binary, SQLite backend.

crates.io downloads CI MIT
cargo install openeruka

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.

StateConfidenceMeaningAgent 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

AI Client Claude / Cursor / … eruka-mcp MCP server openeruka REST :8080 SQLite / redb JSON-RPC HTTP

eruka-mcp also works with the managed eruka.dirmacs.com backend — same openeruka-compatible REST surface.

DIRMACS ecosystem