MCPcopy Index your code
hub / github.com/codecoradev/uteke

github.com/codecoradev/uteke @v0.6.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.6.7 ↗ · + Follow
1,199 symbols 3,654 edges 82 files 454 documented · 38%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Uteke — Give your AI a memory

Uteke

Give your AI a memory that never leaves your machine.

Offline-first semantic memory engine — single binary, zero config, 30ms recall.

CI License: Apache 2.0 Rust 1.75+ v0.6.6

🇬🇧 English · 🇮🇩 Bahasa Indonesia


Quick Start

# Install (macOS, Linux, Windows)
curl -sSL codecora.dev/install | sh

# Store a memory with metadata
uteke remember "Deploy v2.1 to staging" --tags deploy,staging \
  --entity staging-server --category infrastructure

# Hybrid search (vector + FTS5, ranked by RRF)
uteke recall "when do we deploy?"

# Stats
uteke stats

That's it. No API keys. No Docker. No Python. First run downloads the embedding model (~188MB) and you're good to go.

📖 Install options · Pre-built binaries · Docker · Full docs

Docker

Listens on localhost only by default. See Docker docs for auth setup.

# One-liner (model downloads on first run, cached in volume)
docker run -d --name uteke -p 127.0.0.1:8767:8767 -v uteke-data:/data \
  ghcr.io/codecoradev/uteke:latest

# Or from Docker Hub
docker run -d --name uteke -p 127.0.0.1:8767:8767 -v uteke-data:/data \
  codecoradev/uteke:latest

# Or docker compose
docker compose up -d

📖 Docker docs · Compose file


Why Uteke?

AI agents forget everything between sessions. Uteke gives them persistent, searchable memory — entirely offline, in one binary.

Uteke Mem0 Letta Zep
Setup Single binary pip + Docker + Qdrant pip + Docker + Postgres pip + Docker + Neo4j
API keys needed ❌ None ✅ OpenAI/LLM key ✅ LLM key ✅ LLM key
Offline ✅ Fully ❌ Cloud embedding ❌ Needs LLM server ❌ Needs LLM + vector DB
Semantic search ✅ Local ONNX + FTS5 hybrid ✅ Cloud embedding ⚠️ Keyword + archival ✅ GraphRAG
Full-text search ✅ FTS5 built-in ⚠️ Keyword only
Recall speed ~30ms (library) Network round-trip Network round-trip Network round-trip
Privacy ✅ Data never leaves machine ⚠️ Data sent to LLM ⚠️ Data sent to LLM ⚠️ Data sent to LLM
License Apache 2.0 Apache 2.0 Apache 2.0 Apache 2.0

Uteke vs cloud alternatives


Key Features

  • 🧠 Hybrid Search — Vector similarity + FTS5 full-text search, merged by Reciprocal Rank Fusion (RRF)
  • 🏠 Rooms — Group memories by context (meetings, projects) with author attribution
  • Time-travel queries — Recall memories as they existed at any point in time
  • 🔌 Pluggable embeddings — Swap ONNX/OpenAI/Ollama backends via config
  • 🏷️ Metadata Enrichment — Tag, entity, category, and key:value metadata on every memory
  • 🔗 Relationship graph — Link memories with typed edges (supersedes, contradicts, references)
  • 📉 Smart decay — Composite importance scoring, pin critical memories
  • Recall cache — LRU cache eliminates redundant embedding for repeated queries
  • 📊 Benchmarks — Built-in uteke bench for perf testing + LongMemEval retrieval harness
  • 👥 Multi-Agent Namespaces — Fully isolated memory per agent, zero overhead
  • 🖥️ Server Mode — Persistent daemon with ~42ms warm recall (75x faster than CLI)
  • 🔥 Tiered Memory — Hot/Warm/Cold tracking with auto-cleanup of stale memories
  • 🔒 Fully Offline — Local ONNX embeddings (768d), no telemetry, no cloud, no API calls
  • 🔄 Embed Fallback — Gracefully falls back to cloud API if local embedder fails; MockEmbedder for testing
  • 📂 Batch Import — Import entire directories (--batch-dir) with auto-strategy routing (document vs. memory extraction)
  • 📦 Single Binary — Zero dependencies. No Docker, no database server, no Python, no API keys
  • 📥 Import/Export — JSONL-based backup and restore
  • 🧩 Memory Types — Typed categories (fact, procedure, decision, etc.) with auto-inference
  • 🔗 Backlinks — Bidirectional memory edges — references are automatically reciprocal
  • 📜 Timeline Events — Chronological audit log per memory (created, updated, superseded)
  • 📈 Salience + Recency — Dual-axis recall boost by memory type and age
  • 🌙 Dream Cycle — One-command maintenance pipeline (lint → backlinks → dedup → orphans)
  • 🔍 Orphan Detection — Find disconnected, low-importance memories for cleanup
  • 📎 Citations — Source attribution on every memory (URL, file, user, import)
  • 🔌 MCP Server — JSON-RPC over stdio + Streamable HTTP transport
  • 📝 Document Engine — Wiki/knowledge base with uteke doc create/get/list and auto-chunking

  • 🤖 Cosine Auto-Linking — Automatically creates similar_to edges between related memories

  • 🌐 Graph APIGET /graph returns nodes + edges JSON; POST /graph/edge and DELETE /graph/edge for mutation
  • 🔑 View-Only API Keys — Read-only tokens for safe GET-only access to the server
  • 📄 Markdown Chunker — Splits documents by headings, respects code blocks and token limits

🔌 MCP Server — configure with Claude Code, Cursor, Hermes

// .mcp.json (Claude Code, Cursor)
{ "mcpServers": { "uteke": { "command": "uteke-mcp" } } }

See MCP docs for Claude Desktop, Hermes, and HTTP transport.

📖 Full documentation · CLI reference · Configuration


Architecture

Uteke architecture

Hybrid search pipeline:

  • HNSW (usearch) — vector similarity, finds by meaning
  • FTS5 (SQLite) — full-text keyword search, finds by exact terms
  • Reciprocal Rank Fusion (k=60) — merges both ranked lists → best of both worlds
  • Local ONNX (EmbeddingGemma Q4, 768d) — embeddings computed on-device, no API calls

Everything runs in-process. No network. No cloud. No server required (unless you want server mode).


Development

cargo build --workspace        # Build
cargo test --workspace         # Test (327 unit tests)
cargo clippy -- -D warnings    # Lint
cargo fmt                      # Format

See CONTRIBUTING.md for the full contribution guide.


License

Apache License 2.0 — use it, fork it, ship it.


Star History

Star History Chart

Extension points exported contracts — how you extend this code

Embedder (Interface)
Trait for embedding backends. All embedding operations in uteke go through this trait, enabling different backends (ONN [6 …
crates/uteke-core/src/embed/embed_trait.rs
Stats (Interface)
(no doc)
extensions/uteke-status/index.ts

Core symbols most depended-on inside this repo

get
called by 256
crates/uteke-core/src/operations.rs
is_empty
called by 233
crates/uteke-core/src/memory/vector.rs
insert
called by 213
crates/uteke-core/src/memory/crud.rs
len
called by 120
crates/uteke-core/src/memory/vector.rs
as_str
called by 118
crates/uteke-core/src/dream.rs
error_response_for
called by 100
crates/uteke-server/src/context.rs
make_test_memory
called by 64
crates/uteke-core/src/memory/store.rs
print_json
called by 46
crates/uteke-cli/src/output.rs

Shape

Function 669
Method 373
Class 131
Enum 24
Interface 2

Languages

Rust89%
Python6%
TypeScript4%

Modules by API surface

crates/uteke-core/src/memory/store.rs85 symbols
crates/uteke-core/src/lib.rs66 symbols
crates/uteke-core/src/edges.rs61 symbols
crates/uteke-cli/src/config.rs57 symbols
crates/uteke-core/src/memory/types.rs54 symbols
crates/uteke-core/src/graph.rs48 symbols
crates/uteke-mcp/src/lib.rs43 symbols
crates/uteke-core/src/chunker.rs42 symbols
crates/uteke-core/src/memory/documents.rs34 symbols
crates/uteke-core/src/operations.rs32 symbols
crates/uteke-cli/src/commands/maintenance.rs32 symbols
examples/python_uteke.py30 symbols

Datastores touched

appDatabase · 1 repos

For agents

$ claude mcp add uteke \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact