Titentiten.dev
Latest v0.10.0 · pre-1.0Latest v0.10.0

AI agent memory
that can explain itself.

Agent memory that runs with no API key, no LLM, and no embedding provider. Every memory keeps its source, who may read it, and the evidence that contradicts it.

$curl -fsSL https://titen.dev/install.sh | bash
$titen mcp

No account, no API key, no server, no model. It opens ~/.titen/memory.db and speaks MCP over stdio.

npm downloads per monthtotal npm downloads
Niteni

Javanese: niteni is to notice, and to keep what you noticed. An isekai premise is a memory problem: you arrive with nothing, and everything depends on what you can recall.

titen.dev
The other side

Three record types.

Titen never flattens what it stores: a conclusion and the evidence it came from are never the same record.

Observation

Raw evidence with a content hash and a time it occurred.

obs_ed91a2d0… · sha256 bba5cf65…

Claim

A conclusion that cites its evidence. Disputes stay disputed: both sides are kept, never averaged.

claim_f3963d7b… · verified · team

Context

Exactly what an agent was handed, why each record was selected, and what the budget cut.

ctx_ad0c00be… · 104/1,200 tok
The climb · level 1 → 6

Six ways to remember. Only two can explain why.

This is Titen's product vocabulary, not an industry standard. Pick a level to see what an agent keeps, and what it loses.

Tour advances while this section is visible.
Level 01 · session

Remembering by re-reading

recall("pricing decision")
The mechanism

The window moves forward. Old turns fall away, and reading the file again is the only route back.

Nothing outlives the session.
Level 5

Memory kernel

Everything one agent needs to build context: evidence, claims, temporal state, a context compiler, and feedback.

Evidence with provenance and content hashesClaims that cite, supersede, and expireContext compiled under an explicit budget
Level 6

Collaboration layer

Many agents share knowledge, keep private perspectives, and hand off safely. Leases keep them from clashing.

Identity and scope: org → workspace → project → runCheckpoints, task leases, handoff, and outcomeFull audit: who knew, wrote, used, and shared
Two homes, one core

Runs on the edge,
or entirely on your box.

The same kernel, the same API, the same export format.

Apache-2.0v0.10.0 · stable channelone package0 depsMCP at /mcp
quickstart
# self-host · Bun + SQLite$ titen bootstrap --org 'My Org'$ titen serve
# edge · Cloudflare Workers + D1$ wrangler d1 create titen$ pnpm deploy:worker
# then, from any agentconst ctx = await titen.compile({ task })→ 1 claim · 1 evidence · 104/1200 tok
The first useful slice

Five operations prove
the whole loop.

Observe, derive, compile, act, feed back. The five routes below are the whole loop.

Memory kernel · RESTMCP ready
observePOST /v1/observationsappend-only evidence
derivePOST /v1/consolidationsrules first, model only if it must
compilePOST /v1/context/compilescope, then rank into a budget
feedbackPOST /v1/context/:id/feedbackoutcomes tune future recall
traceGET /v1/claims/:id/evidenceevery claim resolves to sources
Vectors are an index, never the source of truth. Retrieved memory is reference data, never an instruction.
capabilitycloudflarevps
HTTPWorker fetchBun.serve
Canonical storeD1bun:sqlite
Lexical retrievalFTS5FTS5
Semantic vectorsVectorize · test stack onlysqlite-vec
Background repairCron Triggerin-process timer
Today, honestly

Semantic vectors are live on Bun/SQLite through sqlite-vec. On Workers, retrieval is lexical FTS5 until Vectorize lands, and claim extraction is deterministic on both. No model in the loop yet. FTS5 is the default, not a fallback: on the pooled 19,829-session LongMemEval-S condition (n=500) it outscored Titen's own FTS+vector arm, 0.246 against 0.212 — vectors are recommended for scoped, per-instance stores.

Today, honestly

Semantic vectors are live on Bun/SQLite through sqlite-vec. On Workers, retrieval is lexical FTS5 until Vectorize lands, and claim extraction is deterministic on both. FTS5 is the default, not a fallback: on the pooled 19,829-session LongMemEval-S condition (n=500) it outscored Titen's own FTS+vector arm, 0.246 against 0.212.

Measured, honestly

Pooled 19,829-session single-subject LongMemEval-S store, n=500: Titen FTS-only recall@1 0.246, significantly above every measured competitor (Mem0 OSS infer=False 0.182, p = 0.0007). Two pre-registered falsifiers fired against Titen in the same run: the 0.70–0.85 prediction was wrong, and compile p95 864.9 ms crossed the 250 ms line. The subject-scoped condition holds 0.880 at p95 138 ms — scoping is worth +63.4 points. Read the full benchmark.

Memory Atlas

See why an agent
remembered something.

A read-only view. Trace evidence, spot conflicts and stale claims, and see what was withheld from you as a count, never as content.

Open the Atlas
claim_f3963d7b…verifieddepth 2 · 28/40 nodes

The p95 latency budget for checkout stays at 400 ms.

supportsload-test-0714.json · p95 383 ms
qualifiesApplies to checkout only
disputedagent-11 says 250 ms · conf 0.44
withheld1 source exists but is not visible to you
Agent memory guides

Start with the problem you need to solve.

Three practical guides: the memory model, safe sharing between agents, and the MCP connection.

AI agent memory

What agents keep, how memory differs from context, and where six capability levels lead.

Read the practical guide →

Shared memory for AI agents

Identity, private perspectives, evidence, leases, and explicit handoffs for agent teams.

Design the shared boundary →

MCP memory server

Connect an MCP host to nine focused tools, with an honest line between MCP and REST.

Connect an agent →
Cross overDocs