Skip to content

Latest commit

 

History

93 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

elepha

Your tools can read the diff. They cannot read why.

elepha is a local memory layer over the session transcripts Claude Code and Codex already write to disk. It keeps the reasoning and gives it back inside the chat you are already in.

supported tools: Claude Code (CLI, Desktop), Codex (CLI, Desktop)
npm version CI platform License: MPL-2.0

elepha-demo.mp4

The elepha demo video shows Codex stopping mid-task, then Claude Code resuming that same session and explaining why an earlier approach was rejected, from a conversation it never had.

What elepha does

  • The part git does not keep — Commits and diffs record what changed. The transcript holds why: the approach you rejected, the constraint that forced it, the thing you left unfinished.
  • Nothing to write — No notes, no vault, no file to keep current. The transcripts already exist; elepha reads them.
  • Not a wrapper — Keep using your tool directly; elepha never sits in front of it.
  • Repository-clean — Adds nothing to your repositories, and never modifies the original transcripts.

Get started

npm install -g elepha
elepha install
elepha init

Codex needs a one-time approval of elepha's hooks through /hooks. Then open a supported tool and type elepha:last.

Full walkthrough: getting-started guide.

Supported tools and platforms

elepha supports Claude Code and Codex, each in both the desktop app and the CLI, with memory shared across all of them. Support for more transcript-writing AI coding tools is planned.

It runs on macOS, Linux, and Windows through WSL, with Node.js 22 or newer. Native Windows is not supported.

The original transcripts are never modified, so memory can always be rebuilt. That matters while elepha is still pre-1.0: its storage schema and command surface can change between releases.

Documentation

How it works

  1. Reads local transcripts in the background. It watches the session files that supported tools already write, limited to projects and folders you approve.
  2. Builds one searchable local memory. It organizes eligible sessions in one local database.
  3. Recalls inside your current chat. Find a session with elepha:query, open it with elepha:select:<n>, or go straight to the latest with elepha:last. Search looks at session titles and how you opened each session, and, for sessions that have a rollup, at what they concluded; opening one brings the whole conversation back, reasoning included.

Full list: docs/commands-in-ai-chat.md.

In-AI-chat commands

Command What it does
elepha:last Inject the most recent session and continue where you stopped.
elepha:list List the five most recent sessions, numbered.
elepha:list:<n> List the last n, up to 100.
elepha:query <search terms> Search every approved project.
elepha:query:here <search terms> Search the current project only.
elepha:select:<n> Inject session n from the last list or query.

When it earns its place

Someone asks why it is built this way. Six months on, the commit says what changed and the diff says how. Neither says that the obvious approach was tried first and abandoned for a reason that still applies. That conversation happened, and it is still on your disk.

You have solved this before, in another project. You remember deciding it. You do not remember where, or when, or under which repository. It is one session among hundreds, and the tool you are sitting in has never seen a single one of them.

Privacy and consent

elepha runs entirely on your machine: capture, storage, search, and recall are local, with no hosted memory service. The one exception is explicit; if you configure an external synthesis provider, the turns sent for synthesis are handled under that provider's data policy.

  • Consent-gated — you choose which projects or workspace folders elepha may capture.
  • Transcript-safe — the original session files are never modified.
  • It can forget — purge a transcript and it stays purged, revoke a folder, or work with capture off.
  • One local database — memory lives at ~/.elepha/elepha.db and can be rebuilt from retained transcripts; back it up to keep consent and deletion history.

License and links

elepha is open-source software licensed under the Mozilla Public License 2.0 (MPL-2.0).

About

Your tools read the diff, not the why. elepha keeps the reasoning from your Claude Code and Codex sessions — reading the transcripts they already write to disk, nothing to save — and recalls it inside your chat, across CLI and desktop. Fully local.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages