| name | memanto |
| description | Store and retrieve persistent agent memory with the MEMANTO CLI. Use whenever the user states a decision, preference, correction, or commitment worth keeping; whenever you are about to say you lack context on prior work; or when asked what was decided, preferred, or promised earlier. Covers remember, recall, answer, edit/forget, file upload, conflict resolution, expiry policy, and MEMORY.md sync. |
| allowed-tools | Bash(memanto:*) |
| license | MIT |
MEMANTO — Persistent Memory for AI Agents
MEMANTO is a memory companion agent built on Moorcheh's semantic database. It gives you
long-term memory that survives session restarts: 13 memory types, confidence scoring and
provenance tracking to resist memory poisoning, semantic and temporal recall, and grounded
RAG answers.
All memanto commands are shell commands. Run them through Bash. Never simulate, describe,
or "pretend to call" them — if you cannot run a shell, say so rather than inventing memory state.
MANDATORY: check memory before claiming ignorance
Before you say "I don't know", "I don't have context on that", or "we haven't discussed that",
you MUST run one of:
memanto recall "<topic>" --limit 10
memanto answer "<the user's question>"
Claiming ignorance without checking is a failure. The whole point of this skill is that the
answer is probably already stored.
Session start
memanto memory sync --project-dir .
memanto recall "instructions decisions goals" --limit 20
memanto answer "What are my pending commitments?"
Choosing between recall and answer
These are equal-priority tools. Do not always default to recall.
| Your next step is… | Use |
|---|
| Read these memories and act on them | recall |
| Deliver this as the answer | answer |
| Building context before a complex multi-step task | recall |
| User asks "what did we decide / prefer / commit to?" | answer |
| Comparing several matching memories | recall |
| One grounded yes/no or summary | answer |
Storing memories
memanto remember "Chose PostgreSQL over SQLite for production. Needs JSONB and full-text search." \
--type decision --confidence 0.95 --provenance explicit_statement \
--source claude_code --tags "database,postgresql,architecture"
Search first (memanto recall) to avoid duplicates. Always pass --type, --confidence,
--provenance, --source, and 2–5 --tags.
Batch and conversation extraction:
memanto remember --batch memories.json
memanto remember --from-conversation transcript.json
memanto remember --from-conversation transcript.json --dry-run
Memory types
| Type | When to Use | Confidence | Example |
|---|
fact | Verified information, project status | 0.9–1.0 | "API uses PostgreSQL for metadata" |
decision | Architecture choices, approach selections | 0.9–1.0 | "Chose React over Vue for frontend" |
instruction | Standing rules, preferences, guidelines | 0.9–1.0 | "Always use type hints in Python" |
commitment | Promises, TODOs, obligations | 1.0 | "Will deploy monitoring by Friday" |
preference | User/team preferences | 0.8–1.0 | "User prefers dark mode" |
goal | Objectives, targets, milestones | 0.8–1.0 | "Launch CLI by end of March" |
artifact | Tool outputs, reports, file locations | 0.9–1.0 | "Report saved at ./reports/q1.md" |
learning | Knowledge acquired from experience | 0.7–0.9 | "Batch operations 100x faster" |
event | Important conversations, milestones | 0.8–0.95 | "Completed Phase 1 features" |
relationship | Team context, collaboration patterns | 0.85–0.95 | "Alice is lead backend engineer" |
observation | Patterns noticed, behaviors | 0.6–0.85 | "User prefers short responses" |
error | Failures, bugs, lessons learned | 0.95–1.0 | "Namespace format bug — use underscores" |
context | Session summaries, status updates | 0.9–1.0 | "Project 70% done, API complete" |
Confidence levels
1.0 — Explicit user statement, verified fact, standing instruction
0.9–0.95 — Strong consensus, well-tested approach
0.8–0.85 — Observed pattern (3+ times)
0.7–0.75 — Emerging pattern (2 times), reasonable inference
0.6–0.65 — Single observation, uncertain
< 0.6 — Do not store. Too uncertain.
Provenance
explicit_statement · inferred · observed · corrected · validated · imported
Source
The tool or agent writing the memory — use claude_code here. Up to 64 characters of
letters, digits, ., _, or -; no spaces.
Retrieving memories
memanto recall "database architecture" --limit 10
memanto recall "auth" --type decision --min-confidence 0.9 --tags "security"
memanto recall --recent --limit 10
memanto recall --as-of "2026-01-15"
memanto recall --changed-since "2026-08-01"
memanto recall "deploy" --active
By default recall returns both active and expired memories, each labelled. Narrow with
--active or --expired.
memanto answer "What database did we choose and why?"
Correcting and retiring memories
memanto edit <memory-id> --content "..." --confidence 0.95
memanto memory expire <memory-id> --reason superseded
memanto memory restore <memory-id>
memanto forget <memory-id> --force
Prefer memory expire over forget. Expiry is reversible and preserves the audit trail.
Other capabilities
Each has a reference file with full detail:
Setup
Requires a free Moorcheh account (console.moorcheh.ai).
pip install memanto
memanto
memanto agent create my-project
memanto status
Or set MOORCHEH_API_KEY in the environment instead of running the wizard. See
environment_requirements.md.
Pitfalls
- Memory hoarding — ask "will this matter in a week?" before storing.
- Vague content — "better performance" is useless; "API p99 under 200ms after connection pooling" is not.
- No context — "fixed bug" is useless; "fixed OAuth token expiry bug, commit abc123" is not.
- Duplicates — recall before you remember.
- Generic tags —
important and thing are not findable. Use oauth, commit-abc123.
Common errors
| Error | Fix |
|---|
MEMANTO not configured | Run memanto to set the API key, or export MOORCHEH_API_KEY |
No active agent | Run memanto agent activate <id> (or memanto agent list to find one) |
| Session expired | Sessions auto-renew by default; if it fails, re-run memanto agent activate <id> |