An MCP server that makes sessions from Claude Code, OpenAI Codex, Gemini CLI, opencode, Mistral Vibe, and GitHub Copilot CLI available to any MCP-compatible client.
Mostly written using Claude Code.
Allows AI agents to search, list, and read your previous local coding sessions from multiple CLI coding agents. Useful for:
- Finding past solutions to similar problems
- Reviewing what you worked on recently
- Learning from previous conversations
- Resuming interrupted work

Resuming a Claude Code session in Codex CLI.
macOS (Intel and Apple Silicon), Linux (amd64 and arm64, including WSL), and Windows amd64 (Git Bash):
curl -fsSL https://aisessions.dev/install.sh | bashThis installs the binary to ~/.aisessions/bin. Follow the instructions to add it to your PATH.
Custom installation directory:
curl -fsSL https://aisessions.dev/install.sh | INSTALL_DIR=/custom/path bashDownload pre-built binaries from GitHub Releases.
Prerequisites: Go 1.25.13 or later
go build -o bin/aisessions ./cmd/ai-sessionsAfter installation, configure your MCP client to use the binary:
claude mcp add --scope user --transport stdio ai-sessions -- ~/.aisessions/bin/aisessionsOr if using a custom install location:
claude mcp add --scope user --transport stdio ai-sessions -- /path/to/aisessionsVerify the connection with claude mcp get ai-sessions.
Add the server from the CLI:
codex mcp add ai-sessions -- ~/.aisessions/bin/aisessionsCodex CLI and the ChatGPT desktop app share ~/.codex/config.toml, so the server is available in both after you restart the desktop app. In ChatGPT, open Settings → MCP servers to check its status, or type /mcp in the composer.
For manual configuration, use an absolute path (the command is launched directly, without shell expansion):
[mcp_servers.ai_sessions]
command = "/Users/YOUR_USERNAME/.aisessions/bin/aisessions"Replace YOUR_USERNAME with your actual username, or use your custom install path.
Add to the config file opened from Settings → Developer → Edit Config:
{
"mcpServers": {
"ai-sessions": {
"command": "/Users/YOUR_USERNAME/.aisessions/bin/aisessions"
}
}
}Replace YOUR_USERNAME with your actual username, or use your custom install path.
Restart Claude Desktop, then open Developer settings or + → Connectors in a conversation to check the connection. Claude Desktop also supports packaged .mcpb extensions, but direct configuration remains useful for a standalone downloaded binary.
The aisessions binary includes a CLI tool for uploading supported local agent transcripts to aisessions.dev for sharing.
aisessions loginOpens your browser to generate a CLI token. The token is saved locally in ~/.aisessions/config.json.
Interactive mode (no file argument):
aisessions uploadDisplays a searchable list of recent upload-compatible sessions from Claude Code, Codex, Gemini CLI, Mistral Vibe, and GitHub Copilot CLI. Use arrow keys to navigate and select a session to upload. opencode sessions remain available through the MCP server but are omitted from the upload picker because its current store is a shared SQLite database rather than one transcript file per session.
Direct mode (with file path):
aisessions upload /path/to/session.jsonl
aisessions upload /path/to/session.jsonl --title "Custom Title"--title <title>- Set a custom title for the uploaded transcript--url <url>- Override the API URL (https://aisessions.devor a local development server)
Once configured as an MCP server, you can ask:
- "Let's continue my latest session from Claude Code"
- "Show me my recent Codex sessions"
- "Search my sessions for authentication bugs"
- "How many times did Claude tell me I was absolutely right yesterday?"
The server reads session files stored locally by various CLI coding agents:
- Claude Code:
~/.claude/projects/[PROJECT_DIR]/*.jsonl - Gemini CLI:
~/.gemini/tmp/[PROJECT_HASH]/chats/session-*.jsonl(plus legacy.jsonrecordings) - OpenAI Codex:
~/.codex/sessions/and~/.codex/archived_sessions/ - opencode:
~/.local/share/opencode/opencode.db(plus the legacystorage/JSON tree) - Mistral Vibe:
~/.vibe/logs/session/ - GitHub Copilot CLI:
~/.copilot/session-state/[SESSION_ID]/events.jsonl(plus legacy flat JSONL files)
When you ask your AI agent to list or search sessions, the server reads these local stores through source-specific adapters; it does not launch the agent CLIs.
Shows which AI CLI source adapters are available from the running server.
Lists recent sessions from all projects (newest first).
Arguments:
source(optional): Filter byclaude,gemini,codex,opencode,mistral, orcopilotproject_path(optional): Filter by specific project directorylimit(optional): Max results (default: 10)
Example: {"source": "claude", "limit": 20}
Searches session content using BM25 ranking. Returns results sorted by relevance score with contextual snippets.
Arguments:
query(required): Search term (supports multiple keywords)source(optional): Filter by sourceproject_path(optional): Filter by projectlimit(optional): Max results (default: 10)
Example: {"query": "authentication bug"}
Returns: Each match includes:
session: Session metadata (ID, source, project, timestamp)score: Relevance score (higher = more relevant)snippet: Contextual excerpt (~300 chars) showing where the match occurred
Retrieves full session content with pagination.
Arguments:
session_id(required): Session ID from list resultssource(required): Which coding agent created itpage(optional): Page number (default: 0)page_size(optional): Messages per page (default: 20)
To keep formatting consistent and catch regressions early:
- Install pre-commit and run
pre-commit installto enable hooks (gofmt,go vet,go test). - Pushes to
mainand pull requests targetingmainrun the GitHub Actions workflow (.github/workflows/build.yml), which checks formatting, runsgo vet, builds the binary, and executesgo test -cover ./....
MIT