Local-first AI Memory System — long-term memory for Claude Code & coding agents
memxt has 10 tools with complete input schemas and descriptions, but quality is inconsistent. Tool names are domain-specific (remember, search, forget, wake_up) rather than verb_noun patterns (store_memory, search_memories). Descriptions are brief (10-80 chars) and lack context on WHEN to use each tool or what happens on error. Parameters lack type constraints (enums, ranges, patterns). Output schemas are not documented, LLMs cannot predict what search() or wake_up() returns. No error handling guidance. The palace/wing/drawer metaphor is creative but adds cognitive load for LLM reasoning.
Check anchor health and grounded memory integrity
Consolidate memory: demote cold facts, cluster related memories, expire stale entries
Export palace memories as JSONL
Evict a memory drawer or entire wing from the palace
Re-ingest memories from a JSONL export file
Inspect palace health: facts, profile, kinds, and statistics
Query knowledge graph for a subject
Store a memory fact or episode in the palace
Tool names do not follow verb_noun pattern. 'remember', 'forget', 'dream', 'wake_up' are domain-specific metaphors rather than action verbs (store_memory, delete_memory, consolidate_memory, generate_brief). LLMs struggle to infer intent from metaphorical names.
Output schemas are not documented. Tools like search(), wake_up(), and knowledge_graph() return complex structures (embeddings, continuity briefs, knowledge graphs) but LLMs have no schema to predict fields. This forces trial-and-error parsing.
Parameter descriptions lack constraints. 'mode' in search accepts 'hybrid, memories, documents, facts, episodes' but is not declared as an enum. 'budget' in wake_up and dream has no min/max bounds. LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Hybrid full-text and vector semantic search across memories
Generate L0+L1+L2 continuity brief for context window
No error handling guidance. Tools like forget() (destructive) and import() (file I/O) have no documented error cases or recovery paths. LLMs cannot distinguish retryable from fatal failures.
Descriptions are too brief (10-80 chars) and lack context. 'Consolidate memory: demote cold facts, cluster related memories, expire stale entries' is a feature list, not a WHEN/WHY guide. LLMs cannot determine when to call dream() vs search().