Shushant17711

Git Episodic Memory — AI skill for Claude Code

AI community

Zero-LLM episodic memory for coding agents: every turn as a hidden Git commit, with function-level blame and bounded context injection.

How to install Git Episodic Memory

This entry records only its repository, not the path inside it, so there is no exact command to give. Open Shushant17711/git-episodic-memory and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Git Episodic Memory does

Zero-LLM episodic memory for coding agents: every turn as a hidden Git commit, with function-level blame and bounded context injection. Works with OpenCode, Claude Code, Codex, Cursor, and any shell-capable agent.

Alternatives in AI

  • WindsurfAPI — Turn Windsurf / Devin Desktop's 100+ AI models (Claude, GPT, Gemini, DeepSeek, Kimi, GLM, SWE) into OpenAI-, A 3k ★
  • Engrim — The Universal Cross-Model Episodic Memory Standard 219 ★
  • Cplt — Sandbox for AI coding agents 114 ★

README

git-episodic-memory

**Your coding agent forgets every chat. This gives it a Git-native memory of why the code looks like this.**

`chatlog` records each agent turn as a hidden Git commit, stores the prompt and reply in Git notes, and retrieves memory by function, line range, symbol, or pickaxe search. No LLM summaries. No vector database. No transcript dump into the context window.

[![test](https://github.com/Shushant17711/git-episodic-memory/actions/workflows/test.yml/badge.svg)](https://github.com/Shushant17711/git-episodic-memory/actions/workflows/test.yml) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![shell](https://img.shields.io/badge/shell-bash-4EAA25?logo=gnubash&logoColor=white)](bin/chatlog) [![git](https://img.shields.io/badge/storage-git--native-F05032?logo=git&logoColor=white)](docs/architecture.md)

$ chatlog why src/image.py:calculate_tokens
- [20261020T171616Z-08ac8374 | 2026-10-20 | succeeded] chat: Never resize above 1568px...
  * constraint: Never resize above 1568px; breaks tile math.

Why this exists

Coding agents are amnesiac across sessions. A rule file such as `CLAUDE.md` or `AGENTS.md` stores durable preferences, but not the reason a specific line exists. A vector memory is fuzzy, costs embeddings on every turn, and drifts away from the code. Plain `git log` knows the code but not the conversation that produced it. A raw transcript dump burns context and is hard to search.

This project sits between those options: **episodic, code-coupled memory** with zero inference cost.

Question Where the answer lives
“Why is this constant 1568?” chatlog why src/image.py:calculate_tokens
“When did we try Redis?” chatlog pickaxe "redis"
“What did the user reject last week?” The exact constraint, attached to the line
“What did the code look like at turn 19?” git show :path
“What did we decide about deployment?” chatlog search "deployment"