Warning
This is an experimental, AI-assisted project. Please use with caution as it is a work in progress.
A VS Code extension that automatically captures Claude Code conversation transcripts and commits them to a git repository.
The goal is to preserve the full back-and-forth of AI-assisted coding sessions — not just the final commits, but the prompts, dead ends, corrections, and reasoning that led to the code. This is valuable for:
- Future developers doing
git blamewho want to understand why code was written a certain way - Future AI agents learning what prompts and approaches work (and what leads to dead ends)
- Knowledge sharing — making selected conversations public to help others learn effective AI collaboration patterns
- Claude Code writes conversation transcripts as JSONL files in
~/.claude/projects/ - This extension watches that directory for changes
- When a session goes idle (configurable debounce), it copies the transcript to your conversations git repo and commits it
- An
INDEX.mdfile is maintained with a table linking to each conversation with date, project, and summary
gh repo create CodingChats-conversations --private --clone
cd CodingChats-conversations
mkdir sessions
touch sessions/.gitkeep
cat > INDEX.md << 'EOF'
# Coding Conversations Index
| Date | Machine | Project | Session | Summary |
|------|---------|---------|---------|---------|
EOF
git add .
git commit -m "Initial conversations repo"
git push -u origin mainRequires Node.js >= 20.
git clone https://github.com/pieper/CodingChats.git
cd CodingChats
npm install
npm run compile
npm run packageThis produces a coding-chats-<version>.vsix file in the project directory.
From the command line:
code --install-extension coding-chats-0.1.0.vsixFrom the VS Code GUI:
- Open the Extensions sidebar (Cmd+Shift+X / Ctrl+Shift+X)
- Click the
...menu at the top of the sidebar - Choose Install from VSIX... and select the
.vsixfile
After installing, reload the window (Cmd+Shift+P / Ctrl+Shift+P → Developer: Reload Window) to activate the extension.
For development, open the CodingChats folder in VS Code and press F5 to launch an Extension Development Host with the extension loaded.
On first activation, the extension will prompt you to choose where to store conversations — you can use the default (~/CodingChats-conversations), pick a custom location, or point it at an existing repo. To change this later, run CodingChats: Change Conversations Repo Location from the command palette.
You can also configure settings directly in settings.json:
Open VS Code Settings and search for "CodingChats", or add to your settings.json:
{
"codingChats.conversationsRepoPath": "/Users/you/CodingChats-conversations",
"codingChats.autoCommit": true,
"codingChats.autoPush": true,
"codingChats.debounceSeconds": 30
}If you set codingChats.autoPush to true, conversations are pushed automatically after each commit.
Otherwise, push manually whenever you like:
cd ~/CodingChats-conversations
git push| Setting | Default | Description |
|---|---|---|
codingChats.conversationsRepoPath |
~/CodingChats-conversations |
Path to the local git repo for storing conversations |
codingChats.autoCommit |
true |
Auto-commit when sessions go idle |
codingChats.autoPush |
false |
Auto-push after each commit |
codingChats.debounceSeconds |
30 |
Seconds to wait after last change before committing |
codingChats.claudeProjectsPath |
~/.claude/projects |
Path to Claude Code's transcript directory |
- CodingChats: Commit Conversations Now — immediately commit all tracked sessions
- CodingChats: Open Latest Conversation — open the INDEX.md in the conversations repo
- CodingChats: Show Status — show tracking status in the output panel
- CodingChats: Import Existing Conversations — import transcripts from Claude Code's projects directory
- CodingChats: Change Conversations Repo Location — re-run the initial setup dialog to pick a new repo location (useful if you moved or deleted the conversations repo, or want to switch to a different one)
The extension is designed to work across multiple computers sharing the same conversations repo via git. Enable autoPush on each machine, and:
- Pull before commit: the extension automatically pulls remote changes (with rebase) before each commit, so changes from other machines are incorporated
- Append-only INDEX.md: new entries are appended at the end of the table, which minimizes merge conflicts when both machines commit concurrently
- Machine tracking: each INDEX.md entry and commit message records the hostname, so you can see which machine produced each conversation
On first install, the extension checks GitHub (via gh) for an existing CodingChats-conversations repo and offers to clone it automatically — so setting up a second machine is just "install the extension and accept the prompt."
If you need to start fresh (e.g. to pick up a new INDEX.md format), you can rebuild the conversations repo without losing any data. Your original transcripts are always preserved in ~/.claude/projects/.
-
Delete or rename the old local repo:
mv ~/CodingChats-conversations ~/CodingChats-conversations.bak
-
Optionally delete the GitHub repo too (if you want a clean remote):
gh repo delete CodingChats-conversations --yes
-
Re-run setup — open the command palette and run CodingChats: Change Conversations Repo Location. This re-runs the first-install flow: it will create a fresh repo (or let you create one on GitHub first and clone it).
-
Re-import all conversations — open the command palette and run CodingChats: Import Existing Conversations. The extension scans
~/.claude/projects/for all transcripts, skips any that are already in the repo (matched by session ID), and imports the rest. This is safe to run at any time — it won't create duplicates.
CodingChats-conversations/
INDEX.md # table of all conversations
sessions/
<project-name-or-hash>/
2026-03-11-<session-id>.jsonl # raw transcript
2026-03-12-<session-id>.jsonl
<another-project>/
...
Each .jsonl file contains the full Claude Code conversation transcript — one JSON object per line, including user messages, assistant responses, tool calls, and tool results.
Your conversations repo starts private. To share specific conversations:
-
Make the whole repo public when you're comfortable:
gh repo edit CodingChats-conversations --visibility public
-
Or selectively share by copying specific
.jsonlfiles to a public repo. -
Or use GitHub's fine-grained access to share with specific collaborators.
This extension is designed to work with AI skill/knowledge systems. For example, with the slicer-skill, conversation logs can be included as a searchable resource that helps future agents understand how code was developed.
To make your conversations available to a skill's setup script:
# In your skill's setup.sh, clone the conversations repo
git clone https://github.com/youruser/CodingChats-conversations.git coding-chatsAgents can then search the JSONL transcripts for relevant past conversations:
grep -rn "segmentation" coding-chats/sessions/Apache License 2.0 — see LICENSE for details.