Open-source agent infrastructure

Local AI memory
for your agents.

Store facts, preferences and task state on your machine. Give your agents memory that lasts across sessions.

Runs on
Your machine
Default address
127.0.0.1:8080
Local data
.instantkv/data
License
MIT

Save once. Find it next session.

Your app chooses what to save and what to add to context. instantKV keeps the records and indexes consistent.

Save a preference

instantkv remember "Prefer Rust for local tools" --key preferences/language \
  --topic preferences

Retrieve it later

instantkv recall --topic preferences

In another terminal, run cd my-local-memory first. Credentials load automatically.

What you keep

preferences/language
Prefer Rust for local tools
Topic
preferences
Also supported
Tags, event time, custom JSON metadata
Storage
Record and indexes in one redb transaction
Read the memory contract →

For changing facts, use the optional memory lifecycle controller. It adds source quotes, revision-safe corrections, conflicts, live profiles and forgetting with replay protection.

Use the interface that fits.

One storage engine. Run it as a local service or embed the Rust core.

Know what you are installing.

Local by default

Private credentials. Loopback binding. Configurable cache, quotas and query budgets. Storage and retrieval need no cloud API or embedding model.

Configuration →

Explicit retrieval

search uses bounded BM25 with English stemming. Literal filters use topics, tags and time. Inspect truncated and query_reduced.

Query limits →

Your runtime stays in control

Your runtime chooses facts and context. The optional controller handles their lifecycle. Native phone bindings and device benchmarks remain planned.

Current scope and roadmap →

Operate your own node

Keep the data directory across upgrades. Back up the database while the server is stopped. Logical quotas do not cap total disk or process memory.

Backups and upgrades →

Evidence, with its conditions.

Published runs measure retrieval, model answers and storage separately. Small score gaps do not establish a significant win.

Make it part of your runtime.

Start with the local profile. Save a record, connect your agent, and check the query limits.