Remix.run Logo
Obsidian-native memory for your Claude Code sessions
1 points by Alendronat 6 hours ago

https://github.com/mnemos-dev/mnemos Mnemos turns Claude Code session history (the .jsonl files under ~/.claude/projects/) into a folder of refined markdown notes that your next Claude Code session reads as a briefing. Plain text, Obsidian-compatible, no cloud.

  Architectural bit worth talking about: Mnemos does not call any LLM
  API of its own. All refinement happens inside the user's existing
  Claude Code session via `claude --print --dangerously-skip-permissions
  "/<skill> <args>"`. Cost to the user is zero on top of their existing
  subscription. CI grep blocks accidental `anthropic` imports;
  `_child_env()` strips `ANTHROPIC_API_KEY` from every spawned
  subprocess. Subscription quota is the hard line.

  The project pivoted hard between v0.x and v1.0. v0.x copied the
  MemPalace/mem0 hypothesis: chunk conversations into atoms, embed,
  top-K, RRF merge. Phase 0 hit 90% Recall@5 on LongMemEval. Then I
  measured the corpus and the bet broke:

  - RRF score band stuck at 0.014–0.017. Small chunks didn't produce
    sharp embeddings on conversational data.
  - LLM synthesis fed better from whole sessions than from fragments.
  - A 600-node graph nobody — me or the AI — actually traversed.
  - 663 fragments carrying ~860 entity instances; ~50% were just
    folder names.

  v1.0 deleted ~3,000 lines of mining pipeline + ~200 tests, pivoted
  to whole-Sessions-as-memory-units plus an "Identity Layer" that
  distills the user over time.

  v1.1 (today) inverts the trigger: refine when the session ends.
  SessionEnd hook + detached worker that survives Claude Code
  termination via CREATE_BREAKAWAY_FROM_JOB on Windows /
  start_new_session=True on POSIX. SessionStart sync fallback for
  missed cases (mid-stream X-close, kill -9). Three sequential stages
  in the worker: refine -> brief regen -> identity refresh.

  527 tests pass; ChromaDB and sqlite-vec backends produce identical
  recall to four decimals on LongMemEval.

  Full pivot write-up:
  https://github.com/mnemos-dev/mnemos/blob/main/HISTORY.md

  Happy to answer questions about the architecture or the
  v0.x -> v1.0 -> v1.1 path.