To keep Claude Code sessions with your code, you need a tool that captures the transcript and links it to the commit it produced. For a git-native, open-source option, use Entire (sessions in a git ref) or Shift Log (sessions in git notes). For line-level AI attribution, use Git AI. For a plain Markdown archive of every chat, use SpecStory. For a private local snapshot timeline, use MemoV. For sessions you can share and fork as public pages, use VibeHub. With no tool at all, Claude Code keeps transcripts locally as JSONL for 30 days by default.
We make VibeHub, so read this with that in mind. Every claim about the other tools comes from their own docs or repos, linked below, as of November 2026. They change quickly, so check before you commit to one.
Quick picks
- Open source, sessions stored in your git remote: Entire or Shift Log.
- Which lines did AI write, surviving rebases and squashes: Git AI.
- Every chat as readable Markdown in the project: SpecStory.
- Private local history that never touches .git: MemoV.
- Share and fork AI-built work as public pages: VibeHub.
- Just keep history longer, no new tool: raise Claude Code’s cleanupPeriodDays.
1. Claude Code’s built-in history
Claude Code already saves every session as a JSONL transcript under ~/.claude/projects/ and deletes transcripts older than 30 days by default. Raise cleanupPeriodDays in ~/.claude/settings.json to keep them longer, and use claude --resume to reopen an old one. Checkpoints (/rewind) give in-session undo. What you do not get is a link between a transcript and the commit it produced, or a way to share it with a reviewer. Our guide to saving and searching Claude Code chat history covers the details.
2. Entire
Entire, founded by former GitHub CEO Thomas Dohmke, has an MIT-licensed CLI. entire enable installs hooks for your agents and git hooks for the repo. The agent hooks collect prompts, the transcript, tool activity, and changed files; the git hooks link that context to each commit with an Entire-Checkpoint trailer. Checkpoints live under refs/entire/checkpoints/, so they never add commits to your branch, and they are pushed to your remote by default.
It supports Claude Code, Codex, Cursor, Copilot CLI, OpenCode, and more. The hosted side, entire.com, adds code hosting, search across sessions, and Trails, a review flow meant to replace the pull request. One caution from its README: if the repo is public, so are the transcripts, and secret redaction is best effort.
3. Git AI
Git AI answers a narrower question: which lines did AI write? Agents report their edits with git-ai checkpoint, and on commit the attribution is written to git notes (git log --show-notes=ai). It keeps that attribution through rebase, squash, cherry-pick, stash, and amend, which is hard to do. The CLI is Apache-2.0. In September 2026 its founders joined OpenAI’s Codex team; they say they will keep investing in open source.
Pick Git AI when you want AI blame or team metrics on how much code is AI-written. It is not built for reading full transcripts.
4. SpecStory
SpecStory saves conversations as Markdown in .specstory/history/ inside your project. Its Apache-2.0 CLI can launch an agent and record it (specstory run), export existing history (specstory sync), or watch in the background. Free extensions cover Cursor and VS Code with Copilot. Logged-in CLI runs sync to SpecStory Cloud by default, which adds search and share links; --no-cloud-sync turns that off.
It is the simplest way to get a complete, greppable archive. Its docs do not describe linking a session to a specific commit.
5. Shift Log (formerly claudit)
Shift Log attaches the conversation since the last commit to that commit as a git note, automatically, whenever you or the agent commit. Run shiftlog init in a repo; it supports Claude Code, Codex CLI, Copilot CLI, Gemini CLI, and OpenCode. It can list, search (including regex), summarize, and resume past sessions by commit. It is a small project, so weigh that if you need long-term support.
6. MemoV
MemoV is an MIT-licensed MCP server that keeps a private, local shadow timeline in .mem, with no changes to .git. The agent calls snap to record the prompt, response, plan, and changed files, and mem_jump restores a snapshot onto a new branch. A local web UI shows the timeline. It is a good fit if history must never leave your machine.
7. VibeHub
VibeHub’s Claude Code plugin streams every prompt, tool call, and assistant turn into a session as you work, and the /vibehub:capture skill or vb commit attaches it to the commit. Sessions are stored on VibeHub, encrypted at rest, and private unless you publish. Published vibes are public pages that show the prompts and tool behind a build, and others can fork them. vb push mirrors your commits to GitHub, so code review stays where it is.
claude plugin marketplace add aw3-technology/vibehub-plugins
claude plugin install vibehub@vibehub
export VIBEHUB_TOKEN=vbh_… # Settings → API tokensPick VibeHub if you want sessions you can share and fork. If you want everything to stay in your own git remote, Entire or Shift Log will suit you better.
How to choose
- Where should transcripts live? In your repo (Entire, Shift Log, Git AI notes, SpecStory files), only on your machine (MemoV, Claude Code’s own history), or on a hosted service (VibeHub, Entire’s and SpecStory’s cloud features)?
- Who reads them? Just you, your reviewers, or the public?
- Which agents do you use? Entire, Git AI, SpecStory, and Shift Log each cover several CLI agents beyond Claude Code.
- Do your prompts ever contain secrets? Anything stored in a git remote is visible to everyone with repo access, and redaction is never perfect.
Whichever you pick, keep committing often. Every tool here hangs session history on commits or snapshots, and none of them can link a conversation to work you never saved.