Sign inSign up

codecoradev/uteke

By codecoradev

•Updated 1 day ago

Persistent memory for AI agents. Fully offline: 0 LLM tokens per query, ~45 ms recall, MCP ready.

Image
0

4.7K

codecoradev/uteke repository overview

⁠uteke — Persistent memory for AI agents. Fully offline.

CI License Docker Pulls

One memory. Every agent. Zero cloud. Uteke gives your AI agents persistent memory that never leaves your machine: local embeddings, 0 LLM tokens per query, ~45 ms warm recall, CPU-only.

Recall quality98.4% recall@5 on LongMemEval-S (ICLR 2025) — full harness & raw results in the repo
Speed~45 ms warm query, flat with store size (31 ms avg @10K memories)
Privacy0 LLM tokens per query · no telemetry · zero network calls after first run
SearchFusion — vector similarity + FTS5 keyword, merged by weighted Reciprocal Rank Fusion
IntegrationMCP server (Streamable HTTP + stdio) · REST API · multi-agent Rooms

⁠Quick start

docker run -d --name uteke \
  -p 127.0.0.1:8767:8767 \
  -v uteke-data:/data \
  codecoradev/uteke:latest

# Verify it's running
curl http://localhost:8767/health

# Store a memory
curl -X POST http://localhost:8767/remember \
  -H "Content-Type: application/json" \
  -d '{"content": "Deployed v2.0 to production"}'

# Recall it back — by meaning AND by keyword
curl -X POST http://localhost:8767/recall \
  -H "Content-Type: application/json" \
  -d '{"query": "deployment"}'

The embedding model (EmbeddingGemma, 768-dim, ~200 MB) downloads once on first run and is cached in the /data volume. After that, everything runs fully offline.

⁠Docker Compose
services:
  uteke:
    image: codecoradev/uteke:latest
    ports:
      - "127.0.0.1:8767:8767"
    volumes:
      - uteke-data:/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8767/health"]
      interval: 30s
      timeout: 5s
      retries: 3

volumes:
  uteke-data:
⁠Authentication

The default config binds to localhost only. To expose the API to your network, set a bearer token:

docker run -d --name uteke \
  -p 8767:8767 \
  -v uteke-data:/data \
  -e UTEKE_AUTH_TOKEN=change-me \
  codecoradev/uteke:latest

# All requests now require:
curl -H "Authorization: Bearer change-me" http://localhost:8767/health

⁠Connect your AI agent (MCP)

The image ships uteke-mcp (stdio) and exposes Streamable HTTP at /mcp:

// Claude Code / Cursor / any MCP client — HTTP transport
{ "mcpServers": { "uteke": { "url": "http://localhost:8767/mcp" } } }
// stdio transport
{
  "mcpServers": {
    "uteke": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-v", "uteke-data:/data",
               "--entrypoint", "uteke-mcp", "codecoradev/uteke:latest"]
    }
  }
}

MCP tools include uteke_remember, uteke_recall, uteke_room_recall, uteke_doc_*, uteke_graph, and more — full list in docs/docker.md⁠.

⁠Why Uteke?

Every AI tool forgets. Context windows fill up, sessions end, and your agent starts over each time. Uteke gives it persistent memory — searchable by meaning, with author attribution, across multiple agents (Rooms) — while the data stays on your machine. Healthcare, finance, legal, internal tooling: nothing is sent anywhere.

Also built in: time-travel recall (recall --at 2025-01-15), typed memory categories, tags & entities, a document engine, and uteke_dream (one-command maintenance: lint → backlinks → dedup → orphans).

⁠Environment variables

VariableDefaultDescription
UTEKE_AUTH_TOKEN—Bearer token for API authentication
UTEKE_VECTOR_BACKENDusearchVector engine: usearch (HNSW, best latency) or vecq (4-bit, ~16× faster builds, ~3× smaller files)
UTEKE_NAMESPACEdefaultDefault namespace
UTEKE_HOME/dataData directory (set by the Dockerfile)

Switching engines never touches your data — the new index rebuilds from SQLite on next start.

⁠Image tags

TagMeaning
latestLatest stable release
0.19Latest patch of a minor line
0.19.0Exact version — pin these for stable deployments

Multi-arch: linux/amd64 + linux/arm64 (Apple Silicon, Ampere, Graviton).

Apache-2.0. Use it, fork it, ship it.

Tag summary

Content type

Image

Digest

sha256:c51ab3e56…

Size

76.9 MB

Last updated

1 day ago

docker pull codecoradev/uteke