Getting Started

Requirements

Install the server

cargo install openeruka

Start the server

openeruka serve

Default: listens on http://0.0.0.0:8080, stores data in ./eruka.db (SQLite).

Options:

openeruka serve --port 9090          # custom port
openeruka --db /data/ctx.db serve    # custom DB path

Connect eruka-mcp

Install eruka-mcp — the MCP server that bridges openeruka to Claude Desktop, Claude Code, and any MCP client:

cargo install eruka-mcp

Claude Code (one command):

claude mcp add eruka eruka-mcp

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "eruka": {
      "command": "eruka-mcp"
    }
  }
}

eruka-mcp defaults to http://localhost:8080 — no extra config needed when running openeruka locally.

Test via CLI

# Read all context for the default workspace
eruka-mcp get "*"

# Write a field
eruka-mcp write "identity/company" "ACME Corp"

# Check health
eruka-mcp health

Use the REST API directly

# Write a field
curl -s http://localhost:8080/fields -X POST \
  -H "Content-Type: application/json" \
  -d '{"workspace_id":"default","path":"identity/name","value":"ACME","knowledge_state":"confirmed","confidence":1.0,"source":"user_input"}'

# Read it back
curl -s "http://localhost:8080/fields/default/identity/name"

Switching backends

openeruka ships two storage backends:

BackendCommandNotes
SQLite (default)openeruka serveZero setup, file-based
redbopeneruka --backend redb serveEmbedded KV, requires --features redb build

To use redb, build from source with the feature enabled:

git clone https://github.com/dirmacs/openeruka
cd openeruka
cargo build --release --features redb
./target/release/openeruka --backend redb serve

Next steps