Skip to main content

Overview

Your agents already know things: months of decisions in Claude Code transcripts, and the notes they write to disk. Import brings both into the store, through the same belief pipeline as anything else.

import sessions

Distills Claude Code transcripts into typed memories. Spends model calls.

import agent-memory

Reads the memory files agents already keep. No extraction, so free.

connect claude-code

Same pipeline, triggered as each session ends.
Start with --dry-run on either import. It lists what would be processed and makes zero model calls.

import sessions

Each session is read from ~/.claude/projects, scrubbed of secret-shaped strings, distilled into facts, preferences, episodes and procedures, and saved. Duplicates merge, restatements version, contradictions become reviewable conflicts. Every memory keeps provenance: the session file, the line range, and a short excerpt. See Session distillation. Bounded by default and never silent: anything skipped is announced. Re-running is cheap, because a ledger tracks how far each session got. An unchanged session is skipped, a grown one has only its new part distilled, and a rewritten one is reprocessed from the start. The run ends with a cost line: extraction calls, dedup calls, and embedding batches.

import agent-memory

Claude Code writes one markdown file per memory under each project’s memory/ folder, and Copilot keeps topic files whose ## sections are individual memories. Those are already distilled, so this needs no extraction: each is redacted, embedded and saved with provenance.
This is an import, not a sync. An edited agent file re-imports and versions the memory, but deleting one from the agent’s folder does not delete it here. memloom never writes into those folders.

Automatic capture

A session-end hook hands the daemon a path the moment a session finishes, and the daemon distills it in the background with the same pipeline. The hook exits in milliseconds. If the daemon is down the next start sweeps the gap from the ledger, so nothing is lost.
Capture scope is an allowlist and it is empty by default. Nothing is captured until you name projects with --project, or opt into --all. The hook fires for every project on your machine, including client work whose code should never reach a provider.
It merges with your existing hooks and never replaces them, a one-time backup is written before the first edit, running connect twice changes nothing, and memloom disconnect claude-code removes only memloom’s entries. A settings file that does not parse is refused untouched.

Prompt-time recall

connect also installs a second hook that recalls relevant memories into every prompt you type, so Claude uses your memory without being told to search it. Recall only reads, so the capture allowlist gates what is imported, not what is recalled. It is built to be invisible when it has nothing to add: it skips slash commands, injects nothing when no memory matches, and treats a stopped daemon or slow response as silence. A hard timeout caps the added latency and any failure exits cleanly. Skip it with --no-recall, or remove both hooks with memloom disconnect claude-code.
Unattended capture runs against a daily distillation budget, so it cannot silently burn credits. memloom status shows which hooks are installed, when they last fired, whether the last capture failed, and whether the budget is spent.

Privacy

Transcripts never leave your machine except as redacted chunks sent to the provider you configured. Redaction is pattern-based and best-effort, so review with --dry-run and the viewer if your sessions handle sensitive material. Subagent transcripts and compaction summaries are excluded, and import refuses to run offline rather than degrade silently.