Import memory
Preview and import reviewed Mem0 exports, agent memory files, and rule files through one bounded local command without vendor credentials or model calls.
titen import-source converts reviewed local memory into ordinary Titen evidence and
direct claims. It never calls Mem0 or another vendor, never asks a model to summarize the
source, and never guesses which subject or organization should receive it.
Preview first
titen import-source ./mem0-export.json \
--from mem0-json@1 \
--subject user:rama
Preview is the default. It reads only the selected source and prints locators, hashes, mappings, counts, and limits — never memory content. It opens no destination database, makes no network request, and writes no import artifact.
Apply requires TITEN_API_KEY and exactly one destination:
# Local database; API handlers run in process.
TITEN_API_KEY='titen_sk_...' \
titen import-source ./MEMORY.md --from markdown@1 \
--subject user:rama --db ~/.titen/service.db --apply
# Served instance; TITEN_URL is an exact origin.
TITEN_URL='https://memory.example.com' TITEN_API_KEY='titen_sk_...' \
titen import-source ./mem0-export.json --from mem0-json@1 \
--subject user:rama --project ramaaditya49/product --apply
The key supplies organization and actor authority. Source IDs, filenames, frontmatter and
vendor user fields cannot select destination scope. Imports default to private and
unverified; asserted is the highest allowed trust. Team visibility requires an explicit
workspace.
The supported profiles
| Profile | What Titen reads |
|---|---|
mem0-json@1 |
One JSON array or results, memories, data, or data.results envelope |
openclaw-memory@1 |
USER.md, MEMORY.md, and dated memory/*.md notes |
hermes-memory@1 |
MEMORY.md and USER.md |
claude-code-memory@1 |
Markdown inside one selected project auto-memory directory |
codex-memory@1 |
MEMORY.md and memory_summary.md |
gemini-cli-memory@1 |
Approved private-memory Markdown; not inbox patches, skills, sessions, or GEMINI.md |
qwen-code-memory@1 |
Atomic Markdown and pinned/**/*.md; not generated MEMORY.md or QWEN.md |
byterover-context@1 |
Curated Markdown; not manifests, indexes, abstracts, overviews, or archives |
amazon-q-memory@1 |
product.md, structure.md, tech.md, and procedural guidelines.md |
replit-memory@1 |
One root replit.md |
honcho-conclusions@1 |
One complete v3 response page or every contiguous page in a directory |
letta-agentfile@1 |
Referenced block values from one-agent .af; not messages, tools, prompts, or settings |
memomind-json@1 |
memomind-export major version 1, memories[].text only |
agent-rules@1 |
Recognized AGENTS, Claude, Gemini, Qwen, Cursor, Windsurf, Copilot, Cline, Kiro, Continue, Junie, Augment, Qodo, Replit, and Amazon Q rules |
basic-memory@1 |
Regular Markdown under one project; frontmatter is stripped and wikilinks stay inert |
markdown@1 |
One explicitly named Markdown file, without a branded compatibility claim |
Titen-to-Titen versioned JSONL still uses POST /v1/import.
@modelcontextprotocol/server-memory keeps its existing graph-preserving first-run path.
What one entry becomes
Every normalized chunk becomes one imported_source observation and one direct claim that
cites it. Source IDs, references and the import run ID are deterministic, so repeating the
same source and destination mapping replays without duplicate observations or claims. FTS
recall works immediately; vectors and background enrichment remain optional destination
behavior.
Markdown is split on headings and blank blocks, then at a newline or whitespace before 4,000 characters. Structured profiles copy only documented memory text and timestamps. Rules become procedural claims for review, but are never activated as Titen governance policy.
Fail closed
The complete selected source is read and scanned before destination access. Titen rejects symlinks, malformed UTF-8, unsafe Unicode, credential patterns, empty or unknown schemas, incomplete Honcho pages, invalid AgentFile references, non-null AgentFile secrets, populated tool environment values, more than 64 MiB, or more than 10,000 entries. Errors name only the locator, rule and count; matched content is never printed.
The command does not open archives or vendor databases, follow links or includes, expand globs, evaluate MDX/frontmatter, execute skills, fetch URLs, or ingest conversations, prompts, reasoning, tools, results, and session stores.
Replacing a live memory system additionally needs ordered deltas, tombstones, membership revocations, reconciliation, a production-shaped shadow comparison, and a rehearsed authority switch plus rollback. This command deliberately claims none of those.
Take titen backup before a consequential apply. If reversal is needed, restore the
verified snapshot; the importer never guesses which prior evidence should be deleted.