AI development session recorder — save and sync sessions to GitHub
Project description
session-zoo
Save and sync your AI development sessions to GitHub.
session-zoo automatically discovers sessions from AI coding tools (Claude Code, Codex, etc.), generates AI summaries, and syncs everything to a GitHub repo — raw data preserved for cross-device migration, plus readable Markdown for review.
Features
- Auto-discover sessions from
~/.claude/(Claude Code adapter built-in) - AI Summarize using existing Claude/Codex CLI (no API key needed) or Anthropic API
- Git Sync raw JSONL + metadata + Markdown summaries to GitHub
- Cross-device restore — clone on a new machine, restore sessions to
~/.claude/for/resume - Tag & Search sessions by project, tool, date, or custom tags
- Extensible adapter pattern — easy to add support for new AI tools
Quick Start
Install
pip install session-zoo
Or install from source:
git clone https://github.com/AndsGo/session-zoo.git
cd session-zoo
pip install -e .
Setup
# Initialize
zoo init
# Set your GitHub repo for syncing (create an empty repo first)
zoo config set repo git@github.com:yourname/my-sessions.git
Basic Workflow
# Import sessions from Claude Code
zoo import
# List all sessions
zoo list
# View session details
zoo show <session-id>
zoo show <session-id> --markdown
# Generate AI summary (uses installed claude/codex CLI automatically)
zoo summarize <session-id>
# Tag sessions for organization
zoo tag <session-id> bugfix security
# Sync everything to GitHub
zoo sync
Cross-Device Restore
On a new machine:
zoo init
zoo config set repo git@github.com:yourname/my-sessions.git
zoo clone # Clone the session repo
zoo reindex # Rebuild local index from repo
zoo restore # Restore .jsonl files to ~/.claude/ for /resume
Commands
| Command | Description |
|---|---|
zoo init |
Initialize configuration |
zoo config show/set |
View or set config (repo, ai-key, ai-model) |
zoo import |
Import new sessions from AI tools |
zoo list |
List sessions (filter by --project, --tool, --tag, --since) |
zoo show <id> |
Show session details (--raw, --markdown) |
zoo search <query> |
Search sessions by summary content |
zoo tag <id> [tags...] |
Add/remove tags |
zoo tags |
List all tags with counts |
zoo delete <id> |
Delete a session from index |
zoo summarize [id] |
Generate AI summaries (--provider auto/claude-code/codex/api) |
zoo sync |
Sync sessions to GitHub (--dry-run) |
zoo clone |
Clone session repo to local |
zoo reindex |
Rebuild SQLite index from repo |
zoo restore |
Restore session files to tool directories |
Summarization Providers
zoo summarize supports multiple providers, auto-detected by priority:
- claude-code — Uses installed
claude -pCLI (no API key needed) - codex — Uses installed
codex -qCLI (no API key needed) - api — Uses Anthropic API directly (requires
zoo config set ai-key <key>)
# Auto-detect (uses whatever is available)
zoo summarize <id>
# Force a specific provider
zoo summarize --provider claude-code <id>
zoo summarize --provider api <id>
GitHub Repo Structure
your-sessions-repo/
├── raw/claude-code/my-project/
│ ├── <session-id>.jsonl # Raw session data (preserved as-is)
│ └── <session-id>.meta.json # Metadata (tags, summary, cwd)
└── sessions/my-project/2026-03-10/claude-code/
└── <session-id>.md # Readable Markdown summary
Adding Adapters
session-zoo uses an adapter pattern to support different AI tools. Currently supported:
- Claude Code (
~/.claude/projects/)
To add a new adapter, implement discover(), parse(), and get_restore_path(). See CONTRIBUTING.md for details.
Requirements
- Python 3.12+
- Git
- (Optional)
claudeorcodexCLI for summarization without API key
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file session_zoo-0.1.2.tar.gz.
File metadata
- Download URL: session_zoo-0.1.2.tar.gz
- Upload date:
- Size: 183.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef310e013866a4ba31d1eed02c0f1ab856a20c4e0bbf21d863e46123285d188b
|
|
| MD5 |
973e0566ba0c6623c6b7620311f79839
|
|
| BLAKE2b-256 |
59a6aa2d1fbaf2a9335593312806337e5f7f7f1e64476d87cc1fd9364063a225
|
Provenance
The following attestation bundles were made for session_zoo-0.1.2.tar.gz:
Publisher:
publish.yml on AndsGo/session-zoo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
session_zoo-0.1.2.tar.gz -
Subject digest:
ef310e013866a4ba31d1eed02c0f1ab856a20c4e0bbf21d863e46123285d188b - Sigstore transparency entry: 1162264647
- Sigstore integration time:
-
Permalink:
AndsGo/session-zoo@6761d5f144019909b9b732be0edea640fd3de754 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/AndsGo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6761d5f144019909b9b732be0edea640fd3de754 -
Trigger Event:
release
-
Statement type:
File details
Details for the file session_zoo-0.1.2-py3-none-any.whl.
File metadata
- Download URL: session_zoo-0.1.2-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f836e9abe3d8450b897897f77cad5107b969cae3b8ab046495bfcd201311376
|
|
| MD5 |
e34419cf20dc4db5e9b6b2a332f2bf19
|
|
| BLAKE2b-256 |
34f102aef23cfac1b3798a30e9210cb6b5c656ed6ad81c681bdc5d25708f0727
|
Provenance
The following attestation bundles were made for session_zoo-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on AndsGo/session-zoo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
session_zoo-0.1.2-py3-none-any.whl -
Subject digest:
7f836e9abe3d8450b897897f77cad5107b969cae3b8ab046495bfcd201311376 - Sigstore transparency entry: 1162264859
- Sigstore integration time:
-
Permalink:
AndsGo/session-zoo@6761d5f144019909b9b732be0edea640fd3de754 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/AndsGo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6761d5f144019909b9b732be0edea640fd3de754 -
Trigger Event:
release
-
Statement type: