Moving from Claude Mem
Choose one memory recorder to avoid capturing and recalling the same sessions twice. When Eklavya detects the Claude Mem plugin or database, installation offers the choice:
eklavya install| Choice | Result |
|---|---|
| Eklavya | Import Claude Mem history, verify it, then retire Claude Mem. |
| Claude Mem | Keep it unchanged and disable Eklavya memory; quizzes remain available. |
Pass --memory eklavya or --memory claude-mem to select without the prompt. Without an interactive terminal or explicit choice, the installer keeps Claude Mem.
Choosing Eklavya
The installer performs these steps in order:
- Import. Open the source database read-only, snapshot it, and import observations, summaries, prompts and tool uses with their original dates.
- Place projects. Match Claude Mem names to checkout paths using Claude Code transcripts. Moved checkouts may be found nearby; ambiguous matches are shown for you to choose, with “leave unplaced” as the default.
- Verify and uninstall. Check every source row by ID. Only after a complete import, uninstall Claude Mem through
claude plugin uninstall, or disable it in Claude Code settings ifclaudeis unavailable. - Retain a rollback copy. Move
~/.claude-memto~/.claude-mem.retiredrather than deleting it.
If import or verification fails, Claude Mem stays installed and Eklavya memory is disabled. The error names what needs attention.
Observations and summaries become memory entries. Prompts and tool uses become linked evidence. Imported concepts become candidates, not assessed knowledge: import does not grant mastery, record answers or open gates. Device identities, sync state, live worker queues, sent notifications and opaque runtime metadata are not imported.
Every later install checks again
With Eklavya memory enabled, later installs recheck retired databases, import missing rows and improve project placement without duplicating history. Content identity prevents a relocated copy of the same source from being imported twice. The recheck prints a claude-mem line only when it adds or re-files rows, or when the check fails. eklavya memory status still lists unplaced projects.
eklavya updateeklavya installProjects it could not place
Unmatched entries are still imported, but they are not recalled for a checkout and require --all-projects when searching. Run the following from the correct checkout, replacing storefront with the source project name reported by the importer:
eklavya memory import ~/.claude-mem.retired/claude-mem.db --map-here storefrontUse --map <name>=<path> for another checkout. Re-running moves previously unplaced rows to that project and reports them as re-homed; it does not duplicate them.
Checking the move
eklavya memory import ~/.claude-mem.retired/claude-mem.db --verifyeklavya memory status--verify writes nothing. It reports source counts, missing IDs and the location of each project’s entries; any missing row produces exit code 1. Every real import performs the same check before the installer retires the source.
In memory status, imported counts imported entries in this project and unplaced identifies unmatched source names. If history exists but is missing from the current project’s view, check placement first. The Memory dashboard lets you inspect the entries.
The session greeting’s memory line counts actual recall, not import completeness. A successful import shows no memory line until entries are recalled.
Choosing Claude Mem
The installer sets global memory.enabled: false and leaves Claude Mem untouched. Eklavya’s quizzes, levels and optional commit gate remain available. To switch later:
eklavya install --memory eklavyaGoing back
Restore the retired Claude Mem directory to its original path, reinstall its plugin, and disable Eklavya memory:
eklavya config set memory.enabled falseKeep any newer Claude Mem directory before restoring the retired copy over that path. Work recorded by Eklavya in the meantime stays in Eklavya; it is not converted back to Claude Mem. You can preserve those entries with eklavya memory export, or take a full data backup.
Doing it by hand
The standalone importer does not uninstall Claude Mem. Preview its field mapping first:
eklavya memory import ~/.claude-mem/claude-mem.db --dry-runThe report includes schema version, row counts, project names, mapped fields, deliberately dropped fields and unknown columns. --resume continues using an interrupted run’s snapshot. A newer unsupported source schema is rejected with both version numbers.
See the CLI import options for every flag.