Rekal CLI

Decision memory in git: AI agent sessions are saved at commit time, and an agent can recall the reasons and rejected options

  • 206 ★ on the repository
  • Last commit
  • Apache-2.0
CLI

Extended access

Why this level

  • Git hooks and edits to agent rules files change the repository.
  • Session transcripts are stored in the repository and pushed to a branch on the remote, while secret redaction works by patterns.
All reasons and checks

rekal-dev/rekal-cli

Install

Manual install

/plugin marketplace add rekal-dev/rekal-cli

Then `/plugin install rekal@rekal-dev`, `/rekal:install` once per machine and `/rekal:init` in the repository.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Git hooks and edits to agent rules files change the repository.
  • Session transcripts are stored in the repository and pushed to a branch on the remote, while secret redaction works by patterns.

This is third-party code. Review the repository files before installing.

What it does

Rekal is a CLI that saves an AI agent session in the repository at every git commit and lets any agent recall why a decision was made, including the options that were rejected. The store is a `.rekal/` directory inside the repository: sessions are written in full, while the index and embeddings are built locally in the background. The `rekal init` command enables the `post-commit` and `pre-push` hooks, installs a skill under `.claude/skills/rekal/` and adds a line to `CLAUDE.md` or to another agent's rules file. A query such as `rekal "why did we drop batching?"` returns a short list of matching sessions with a confidence score and a turn number, and `rekal query -s s14 --role human_steering` opens the session you need. Team memory travels over plain `git push` and `git fetch` on orphan branches named `rekal/<email>`. `rekal sync` pulls teammates' branches, and only work already merged into the default branch leaves your machine.

Who it is for. Teams where several people work with Claude Code, Cursor or Codex on one repository and lose the reasoning of past sessions.

Good fit when

  • A new agent is about to propose a solution the team already rejected in a past session.
  • A teammate returns to a task after a month and looks for the reason behind the chosen approach.
  • The team wants agents to see each other's reasoning after a branch is merged.
  • A history of decisions is needed next to the code, with no external memory service and no account.
  • The `rekal find` command collects every mention of a term across sessions.

Not a fit when

  • Work runs on Windows: the binary is built for macOS on Apple Silicon and for Linux (x86-64 and arm64).
  • Session transcripts cannot be stored in the repository even when scrubbed: secret redaction works by patterns and does not guarantee completeness.
  • The project lives without git: the tool is tied to commits.

Example request

Before changing the webhook retry scheme, ask Rekal whether we discussed a fixed delay and why it was rejected.

Limitations

The binary weighs about 170 MB and takes about 200 MB on disk: it holds the embedding model, the database and the full-text extension. macOS on Apple Silicon and Linux are supported. Secret redaction works by patterns and entropy with no completeness guarantee, and if a key lands in the ledger, rotate the key first. Building from source needs CGO, a pinned llama.cpp and git-lfs, and `go install` does not work. The store format and commands are frozen by version 1.0, while ranking and `index.db` may still change.

How to disable. Run `rekal clean` in the repository: it asks for confirmation and removes the store, both hooks, the skill and the line from rules files. Delete the binary from `~/.local/bin/rekal` yourself and drop the `rekal/<email>` branch with `git branch -D`.

FAQ

How do I install Rekal?

In Claude Code run `/plugin marketplace add rekal-dev/rekal-cli` and `/plugin install rekal@rekal-dev`, then `/rekal:install` once per machine and `/rekal:init` in each repository. From a shell use `curl -fsSL https://raw.githubusercontent.com/rekal-dev/rekal-cli/main/scripts/install.sh | bash` and `rekal init`.

What is saved at commit time?

The whole agent session, with no model summary. It goes into `.rekal/data.db` and passes secret redaction and home-path anonymization before it is written.

How do teammates get my memory?

Through plain `git push` and `git fetch`: the data sits on an orphan `rekal/<email>` branch, and `rekal sync` pulls teammates' branches. Only work merged into the default branch leaves your machine.

Which agents does Rekal work with?

Claude Code, Cursor, Copilot, Codex, Gemini, Kiro and OpenCode. The `rekal init` command adds a line to the rules file of each detected agent: `AGENTS.md`, `GEMINI.md`, `.github/copilot-instructions.md` or `.kiro/steering/rekal.md`.

Does it need an API key or an external service?

No. A local model inside the binary computes the embeddings, and the tool has no server, account or telemetry.

How do I remove Rekal from a repository?

`rekal clean` asks for confirmation and removes the store, both hooks, the skill and the line from rules files. Delete the `rekal/<email>` branch by hand with `git branch -D rekal/<email>`.

Discussion

No questions or reviews yet.

CLI tools

Shared team memory for people and AI agents in Git: decisions and handoffs live in Markdown, reachable from Claude Code and Codex.

CLIExtended access293Repository stars

Local agent memory built on a corrections ledger: tell Claude Code once and a new session reads the rule before it starts work

MCP serverExtended access373Repository stars

An MCP server that keeps project decisions in Redis or Valkey and brings them back in new sessions and after compaction.

MCP serverExtended access178Repository stars

A local workbench for Claude Code, Codex, Pi and OpenCode: memory changes wait for your review, then an audit follows each turn

CLIExtended access178Repository stars

Agent session history is linked to Git commits so a change can be traced to its original prompt, conversation and affected files.

CLIExtended access5.3KRepository stars

Local project memory for coding agents: decisions and current state survive a model switch or a cleared chat

PluginExtended access304Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Rekal (this card)no206
Episodic Memoryno499Episodic Memory searches conversations with several agents over MCP; Rekal ties sessions to commits and shares them with the team through git
agentmemoryyesnot required30,160agentmemory keeps memory locally for one developer; Rekal shares it with the team over git and links it to commits

README in short

A comparison with a `MEMORY.md` file, hosted memory layers, editor memory and code RAG explains how the approach differs. Then come the command reference, the capture and indexing diagram, a knowledge layer over the repository prose and benchmark results.

README badge

Report a problem

Foxx AIRekal
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.