Independent work

Agent Recall

Makes past agent sessions searchable and points each result back to the original work, so useful context is easier to trust and reuse.

Agent Recall overview

A short overview of the problem, solution, and result.

Starting Point

Useful decisions, blockers, commands, and implementation details were scattered across local agent session archives.

What Shipped

Built a Rust command-line tool that reads supported transcript archives, removes common secret patterns, keeps useful events, and adds them to a disposable local search index.

Why It Mattered

Shipped a public, installable tool for local recall across Codex, OMP, Pi, Claude, and optional archived Codex log sources.

Useful decisions were buried in old agent sessions

Agent work leaves a lot of useful history behind.

Decisions, supporting evidence, blockers, and next steps were buried inside local transcript files. A summary could help, but it was hard to trust if nobody could trace it back to the original session.

I made agent history searchable and traceable

Agent Recall is a local command-line tool that indexes Codex, OMP, Pi, and Claude session archives. People and agents can search for a prior decision, command, blocker, or fact and then inspect the exact transcript line behind the result.

The source files remain in control

Keep local archives as the source of truth.

The search index is disposable. Agent Recall can delete and rebuild it from the original transcript archives, while pinned references live separately so important anchors survive a rebuild.

Return the evidence behind each result.

Search and recall commands include the source agent, session, event type, file, line number, and excerpt, so another person or agent can inspect the original record.

Make freshness visible.

The background watcher waits until active files are quiet, reports pending files, handles temporary database locks, and shows whether the index is missing, stale, blocked, or healthy.

Search results show where each memory came from

The command-line view groups results by session and shows their source details. Other tools can request the same information as structured data.

agent-recall
Agent Recall command-line view grouping search results by session with source files and transcript line references.

The implementation keeps recall local and inspectable

Import the events that help future work.

The importer reads each transcript line, supports Codex, OMP, Pi, and Claude records, keeps useful user, assistant, command, and tool events, removes duplicates, and skips malformed lines without abandoning the full import.

Use a rebuildable local search index.

SQLite stores sessions, events, source-file state, search rows, memory records, and their evidence. The importer skips unchanged files and groups writes so large archives remain practical to update.

Give agents precise ways to retrieve context.

Searches can narrow results by project, folder, event type, date, phrase, or related terms. Other commands retrieve a memory, show what changed since a prior check, or load related context with its source references.

Keep the index current in the background.

The watcher can refresh once or run continuously as a macOS background service. It can limit work by project and date, wait for active files, retry temporary locks, and report a stale state when refresh cannot finish.

Local handling for sensitive data.

The tool reads and writes local files and removes common token, key, cookie, authorization, connection-string, and private-key patterns before indexing.

Past agent work can be reused without losing its source

Agent Recall handles a practical problem in AI-assisted engineering: useful memory needs local control, fast retrieval, and receipts strong enough for another agent to trust.

01

Past agent sessions became searchable without replacing the source files.

Agent Recall builds a disposable search index from local transcript files while keeping the original archives as the source of truth.

02

One search works across several agent tools.

The importer supports Codex, OMP, Pi, and Claude archives and labels every result with the agent that produced it.

03

Search results point back to evidence.

Results group by session and include the source, event type, file, line number, project, and excerpt needed to inspect the original transcript.

04

Decisions and blockers remain connected to evidence.

Indexing extracts decisions, tasks, facts, open questions, and blockers into stable records that link back to their supporting transcript lines.

05

The tool reports freshness and index health.

Health commands show pending files, stale indexes, background-service status, database checks, search integrity, and duplicate sources.

Tests protect search quality and local handling

The repository tests indexing, search references, help output, background-service defaults, watcher behavior, recent views, pins, memories, change tracking, related resources, and missing-database behavior.

It also tests representative agent searches and checks that common API keys, private keys, webhook secrets, cookies, connection strings, and password-like values are removed before indexing.

The implementation is public

The project is public and installable as a Rust command-line tool.

View GitHub repo

Have something that needs building?

I build customer-facing features, internal tools, and integrations for B2B SaaS teams on contract.