Cover image for I built a memory engine for AI agents. No cloud required.

Anaz S. Aji

---cover_image: https://cdn.codecora.dev/2026/07/uteke_thumbnail_compressed.png---Every AI agent I've used has the same problem: it forgets everything between sessions.You explain your architecture, your trade-offs, your team conventions. Next conversation? Blank slate. You're re-explaining the same things to a model that has zero memory.This isn't a prompt engineering problem. It's an infrastructure gap.## So I built oneUteke is a local-first semantic memory engine written in Rust. Single binary, no Docker required (optional if you want it), no API keys, no cloud account.Install it, store memories, retrieve them in ~45ms. That's the whole loop.## How it works (the short version)When you store a memory, two things happen in parallel:- Vector search using a local embedding model (188MB, downloads once, no API calls)- Full-text search via SQLite FTS5 for exact keyword matchesAt query time, both indexes fire simultaneously and Reciprocal Rank Fusion merges the results. You get semantic matches (ask "authentication" → finds "login flow") and exact hits in one ranked list.Your data stays at ~/.codecora/uteke/. Nothing leaves your machine.## The numbers- 58 days since first commit- v0.10.1, 40+ releases- 148 stars, 16 forks on GitHub- ~5ms vector recall at 10K entries, ~45ms full pipeline- Apache 2.0 licensed## Install

bash# fastestcurl -sSL codecora.dev/install | sh# homebrewbrew install codecoradev/tap/uteke# from sourcecargo install uteke-cli

First run downloads the embedding model (~188MB). After that, everything is local.## Why local-first matters for AI memoryCloud memory solutions work until they don't. Your API key gets rotated, the service goes down, your data lives in someone else's database, and you're paying per query for something that should be fast and private.Uteke runs the same on your laptop, a CI runner, or a server. No network latency. No vendor lock-in. No per-query pricing.---I wrote a deep-dive on the architecture, embedding pipeline, and benchmark details on our blog. If you want the technical breakdown, read it here.