open source

recall-echo

Persistent memory for AI coding agents.

License Version Crates.io

Three-layer memory system that gives Claude Code long-term recall across sessions. CLI-enforced archiving — the tool handles numbering, timestamps, and indexing. The agent only writes summaries. No patches, no forks.

Rust CLI
Zero config
Enforced archiving
Open source

Three layers of memory

Each layer serves a different purpose. Together they give the agent full continuity without bloating context.

~/.claude/ | |-- rules/ | | | \-- recall-echo.md protocol (auto-loaded) | |-- memory/ | | | \-- MEMORY.md layer 1: curated facts | |-- memories/ | | | |-- archive-log-001.md layer 3: checkpoint | |-- archive-log-002.md layer 3: checkpoint | \-- ... | |-- EPHEMERAL.md layer 2: session bridge \-- ARCHIVE.md layer 3: index

Memory that works like memory

Not a flat file. A structured system with lifecycle management, automatic archival, and searchable history.

🧠

Curated Memory

Layer 1: MEMORY.md holds stable facts, user preferences, and project patterns. Always in context. Agent maintains it proactively.

MEMORY.md
🔄

Session Bridge

Layer 2: EPHEMERAL.md carries context between sessions. Written at session end, automatically promoted to an archive log on exit.

EPHEMERAL.md
📚

Searchable Archive

Layer 3: Sequentially numbered archive logs. Not loaded into context. Searchable on demand with Grep.

archive-log-XXX.md

Enforced Archiving

Two hooks, zero effort. PreCompact creates checkpoints on compaction. SessionEnd promotes EPHEMERAL.md on exit. Nothing falls through the cracks.

checkpoint
🚀

Auto Promotion

SessionEnd hook runs recall-echo promote on exit. Session summaries are archived immediately — no waiting for the next session.

promote
🛠

Health Check

Run recall-echo status to see MEMORY.md line count, archive log count, hook configuration, and warnings at a glance.

status
📄

Structured Metadata

Archive logs include YAML frontmatter: sequence number, timestamp, trigger type, and topics. Plain markdown you can build tooling on.

frontmatter

How sessions flow

The agent manages its own memory autonomously. You don't need to tell it to remember — the protocol is in its rules.

01

Session Start

Runs recall-echo promote as a safety net. MEMORY.md is already in context via auto-load. Reads latest archive log if needed.

02

During Session

Updates MEMORY.md with stable facts as they're confirmed. Searches archive logs when historical context is needed.

03

On Compaction

PreCompact hook runs recall-echo checkpoint. CLI creates the log file, the agent fills in the sections. Nothing is lost.

04

Session End

Agent writes EPHEMERAL.md with a session summary. SessionEnd hook runs recall-echo promote, archiving it automatically on exit.

One command

Works with any existing Claude Code setup. The installer is idempotent — run it again to update the protocol without losing your memory.

1

Install

# With cargo cargo install recall-echo # Or install script (downloads prebuilt binary) curl -fsSL https://raw.githubusercontent.com/dnacenta/recall-echo/main/install.sh | bash
2

Initialize

recall-echo init
3

Start a new Claude Code session

# The memory protocol is auto-loaded. # Your agent now has persistent memory. claude