Capture, sync, and resume AI coding sessions across 8 tools — Claude Code, Codex, Gemini, Copilot, Cursor, Amp, Cline, and Roo Code.
Project description
SessionFS
Stop re-prompting. Start resuming.
SessionFS captures your AI coding sessions and makes them portable across tools and teammates.
Start a session in Claude Code, resume it in Codex. Push a session to the cloud, your teammate pulls it with full context — conversation history, workspace state, tool configs, and token usage. No copy-pasting. No re-explaining.
Supported Tools
| Tool | Capture | Resume |
|---|---|---|
| Claude Code | Yes | Yes |
| Codex CLI | Yes | Yes |
| Gemini CLI | Yes | Yes |
| Copilot CLI | Yes | Yes |
| Cursor IDE | Yes | Capture-only |
| Amp | Yes | Capture-only |
| Cline | Yes | Capture-only |
| Roo Code | Yes | Capture-only |
Quick Start
# 1. Install
pip install sessionfs
# 2. Start the daemon — it watches all 8 tools automatically
sfs daemon start
# 3. Use your AI tools normally — sessions are captured in the background
# 4. Browse captured sessions
sfs list
# 5. Resume a session (same tool or different)
sfs resume ses_abc123 --in codex
See the full Quickstart Guide for detailed steps.
How It Works
The sfsd daemon uses filesystem events (fsevents on macOS, inotify on Linux) to watch native AI tool session storage. When it detects new or updated sessions, it converts them into the .sfs format — a portable directory containing manifest.json, messages.jsonl, workspace.json, and tools.json.
Each tool has its own watcher:
- Claude Code — watches
~/.claude/projects/JSONL files - Codex CLI — watches
~/.codex/sessions/rollout files, reads SQLite index - Gemini CLI — watches
~/.gemini/tmp/*/chats/JSON sessions - Copilot CLI — watches
~/.copilot/session-state/event files - Cursor IDE — reads
state.vscdbSQLite database (capture-only) - Amp — watches
~/.local/share/amp/threads/JSON threads (capture-only) - Cline — watches VS Code globalStorage task directories (capture-only)
- Roo Code — watches VS Code globalStorage task directories (capture-only)
Sessions are indexed locally for fast browsing via the CLI. Cloud sync is opt-in; the daemon defaults to local-only.
Commands
| Command | Description |
|---|---|
sfs list |
List captured sessions with filtering and sorting |
sfs show <id> |
Show session details, messages, and cost estimates |
sfs resume <id> [--in TOOL] |
Resume a session in any supported tool |
sfs fork <id> |
Fork a session into a new independent session |
sfs checkpoint <id> |
Create a named checkpoint of a session |
sfs export <id> |
Export as .sfs, markdown, or Claude Code format |
sfs import |
Import sessions from any supported tool |
sfs push <id> |
Push a session to the cloud |
sfs pull <id> |
Pull a session from the cloud |
sfs handoff <id> --to EMAIL |
Hand off a session to a teammate with email notification |
sfs search "query" |
Full-text search across all sessions |
sfs daemon start|stop|status|logs |
Manage the background daemon |
sfs config show|set |
Manage configuration |
sfs mcp serve |
Start MCP server for AI tool integration |
sfs mcp install --for TOOL |
Auto-configure MCP for Claude Code, Cursor, or Copilot |
sfs admin reindex |
Re-extract metadata for all cloud sessions |
See the full CLI Reference for options and examples.
Cross-Tool Resume
# Start in Claude Code, resume in Codex
sfs resume ses_abc123 --in codex
# Start in Gemini, resume in Claude Code
sfs resume ses_def456 --in claude-code
# Cursor sessions can be resumed in any bidirectional tool
sfs resume ses_ghi789 --in gemini
SessionFS converts between native formats automatically — message roles, tool calls, thinking blocks, and workspace state are mapped across tools. See Compatibility for details on which tools support resume and why some are capture-only.
Cloud Sync (Optional)
# Create an account
sfs auth signup --url https://api.sessionfs.dev
# Push a session
sfs push <session_id>
# Pull on another machine
sfs pull <session_id>
sfs resume <session_id>
Free tier includes 14-day cloud retention with 1 device. See the Sync Guide for setup, conflict handling, and self-hosted options.
Session Search
# Search across all local sessions
sfs search "rate limiting middleware"
# MCP server lets AI tools search your past sessions
sfs mcp install --for claude-code
Team Handoff
# Hand off a session to a teammate
sfs handoff ses_abc123 --to sarah@company.com
# Teammate pulls and resumes
sfs pull ses_abc123
sfs resume ses_abc123 --in codex
Web Dashboard
A browser-based interface for browsing and managing synced sessions. Accessible at http://localhost:8000 when running the self-hosted server, or at app.sessionfs.dev for cloud accounts.
Self-Hosted Server
docker compose up -d
Starts the SessionFS API server, PostgreSQL, and web dashboard. See the Sync Guide for full configuration.
Session Format
Sessions are stored as .sfs directories:
manifest.json— identity, provenance, model info, statsmessages.jsonl— conversation history with content blocksworkspace.json— git state, files, environmenttools.json— tool definitions and shell context
All file paths are relative to workspace root. Sessions are append-only — conflict resolution appends both sides rather than merging.
Status
v0.3.0 — Public Beta. 657 tests passing.
What works today:
- Eight-tool session capture (Claude Code, Codex, Gemini, Cursor, Copilot CLI, Amp, Cline, Roo Code)
- Cross-tool resume between Claude Code, Codex, Gemini, and Copilot CLI
- Full-text search across all sessions (CLI + dashboard + API)
- MCP server — AI tools can search your past sessions for context
- LLM-as-a-Judge — audit sessions for hallucinations (BYOK, multi-provider, OpenRouter)
- Team handoff with email notification and smart workspace resolution
- Browse, inspect, export, fork, and checkpoint sessions
- Cloud sync with push/pull, email verification, and ETag conflict detection
- Self-hosted API server with auth, PostgreSQL, S3/GCS storage
- Web dashboard with session management, search, handoffs, and audit
On the roadmap:
- Admin API and dashboard
- Stripe billing integration
- Session similarity and duplicate detection
- Cost analytics dashboard
- VS Code extension
Contributing
See CONTRIBUTING.md for development setup, testing, and PR guidelines.
License
Apache 2.0
Project details
Release history Release notifications | RSS feed
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 sessionfs-0.3.1.tar.gz.
File metadata
- Download URL: sessionfs-0.3.1.tar.gz
- Upload date:
- Size: 143.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
030a14c40ef32535d01ee1adafec640fb3b3e050cfeae274a2b0640272dc6ec0
|
|
| MD5 |
386209ec6d7345bdf418e7e8e032c6cb
|
|
| BLAKE2b-256 |
1cabd19b9847fad48ac33629ef4f353dd3c2a4a47cc9fe90ac85a89f5d1719d3
|
File details
Details for the file sessionfs-0.3.1-py3-none-any.whl.
File metadata
- Download URL: sessionfs-0.3.1-py3-none-any.whl
- Upload date:
- Size: 209.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed1809b05daca76aeeb105ac5277233f21e2e1bf3a8be2441f92e5abe57e90d8
|
|
| MD5 |
1c4a80026d41e3f418dc540ed8691c61
|
|
| BLAKE2b-256 |
e388bdc140622c22abfe20eaf332ce426b5c31dace6a06208c9eae6a9cec54f5
|