Chasm extracts and unifies chat sessions from AI coding assistants like GitHub Copilot, Cursor, and more. Never lose your AI conversations again.
✨ Features
- 🔍 Harvest - Extract chat sessions from VS Code, Cursor, Windsurf, and other editors
- 🔄 Recover - Restore lost or orphaned chat sessions to VS Code
- 🔀 Merge - Combine sessions across workspaces and time periods
- 📊 Analyze - Get statistics on your AI assistant usage
- 🔌 API Server - REST API for building custom integrations
- 🤖 MCP Tools - Model Context Protocol support for AI agent integration
- 🗃️ Universal Database - SQLite-based storage that normalizes all providers
📦 Installation
From crates.io
cargo install chasm-cli
From source
git clone https://github.com/nervosys/chasm-cli.git
cd chasm-cli
cargo install --path .
Pre-built binaries
Download from GitHub Releases:
🚀 Quick Start
Recover Lost Chat Sessions
The most common use case - recover chat sessions that disappeared from VS Code:
chasm fetch path /path/to/your/project
After running, reload VS Code (Ctrl+R or Cmd+R) and your sessions will appear in the Chat history dropdown.
Auto-Detect Workspace Info
chasm detect all /path/to/your/project --verbose
List All Workspaces
chasm list workspaces
┌──────────────────┬──────────────────────────────────────────┬──────────┬───────────┐
│ Hash │ Project Path │ Sessions │ Has Chats │
├──────────────────┼──────────────────────────────────────────┼──────────┼───────────┤
│ 91d41f3d61f1... │ c:\dev\my-project │ 3 │ Yes │
│ a2b3c4d5e6f7... │ c:\dev\another-project │ 1 │ Yes │
└──────────────────┴──────────────────────────────────────────┴──────────┴───────────┘
List Sessions for a Project
chasm list sessions --project-path /path/to/your/project
Search for Sessions
chasm find session "my-project"
chasm find session "authentication"
View Session Details
chasm show session <session-id>
Export Sessions
chasm export path /backup/dir /path/to/your/project
📖 Complete CLI Reference
Session Recovery & Fetching
| Command |
Description |
chasm fetch path <project-path> |
Recover sessions - Fetches and registers sessions for a project |
chasm fetch workspace <pattern> |
Fetch sessions from workspaces matching a pattern |
chasm fetch session <id> |
Fetch a specific session by ID |
chasm register <path> |
Register orphaned sessions in VS Code''s database index |
Listing & Discovery
| Command |
Description |
chasm list workspaces |
List all discovered workspaces |
chasm list sessions |
List all sessions |
chasm list sessions --project-path <path> |
List sessions for a specific project |
chasm detect all <path> |
Auto-detect workspace, providers, and sessions |
chasm detect workspace <path> |
Detect workspace info for a path |
chasm detect providers |
List available LLM providers |
Viewing & Searching
| Command |
Description |
chasm show session <id> |
Display full session content |
chasm find session <pattern> |
Search sessions by text pattern |
chasm find workspace <pattern> |
Search workspaces by name |
Export & Import
| Command |
Description |
chasm export path <dest> <project-path> |
Export sessions from a project |
chasm export workspace <dest> <hash> |
Export sessions from a workspace |
chasm import path <source> <project-path> |
Import sessions into a project workspace |
Merging Sessions
| Command |
Description |
chasm merge path <project-path> |
Merge all sessions for a project into one |
chasm merge workspace <pattern> |
Merge sessions from matching workspaces |
chasm merge sessions <id1> <id2> ... |
Merge specific sessions by ID |
chasm merge all |
Merge all sessions across all providers |
Harvesting (Bulk Collection)
| Command |
Description |
chasm harvest scan |
Scan for all available providers and sessions |
chasm harvest run |
Harvest sessions from all providers into database |
chasm harvest run --providers copilot |
Harvest only from specific providers |
chasm harvest status |
Show harvest database status |
chasm harvest search <query> |
Full-text search across all harvested sessions |
Git Integration
| Command |
Description |
chasm git init |
Initialize git versioning for chat sessions |
chasm git add |
Stage and commit chat sessions |
chasm git status |
Show git status of chat sessions |
chasm git log |
Show history of chat session commits |
chasm git snapshot |
Create a tagged snapshot |
Provider Management
| Command |
Description |
chasm provider list |
List discovered LLM providers |
Server & API
| Command |
Description |
chasm api serve |
Start the REST API server |
chasm api serve --port 8787 |
Start on specific port |
🤖 Agency - Agentic Coding CLI
Chasm includes a full agentic coding toolkit similar to Claude Code CLI, but provider-agnostic. Run coding tasks with any LLM backend.
Available Tools
chasm agency tools
| Tool |
Description |
file_read |
Read file contents |
file_write |
Write or modify files |
terminal |
Execute shell commands |
code_search |
Search codebase for symbols |
web_search |
Search the web for information |
http_request |
Make HTTP requests |
calculator |
Perform calculations |
Agent Roles
chasm agency list
- coordinator - Orchestrates multi-agent workflows
- coder - Writes and refactors code
- reviewer - Reviews code for issues
- tester - Generates and runs tests
- researcher - Gathers information
- executor - Runs commands and tasks
Orchestration Modes
chasm agency modes
| Mode |
Description |
single |
Traditional single-agent (like Claude Code) |
sequential |
Agents execute one after another |
parallel |
Multiple agents work simultaneously |
swarm |
Coordinated multi-agent collaboration |
hierarchical |
Lead agent delegates to specialists |
debate |
Agents debate to find best solution |
Usage Examples
chasm agency run "Add error handling to main.rs"
chasm agency run -m gpt-4o "Refactor this function to use async/await"
chasm agency run -m ollama/codellama "Write unit tests for lib.rs"
chasm agency run --orchestration swarm "Build a REST API with authentication"
chasm agency run --orchestration parallel "Analyze and fix all TODO comments"
🔄 Unified Chat Interface - No Vendor Lock-in
Chasm provides a unified interface to all chat systems, preventing vendor lock-in. Continue conversations seamlessly across providers.
The Problem
Your AI chat history is scattered across:
- VS Code Copilot (SQLite + JSON in workspaceStorage)
- Cursor (proprietary format)
- ChatGPT (web-only, export required)
- Claude (web-only)
- Local LLMs (various formats)
Each uses different formats, storage locations, and APIs. If you switch providers, you lose context.
The Solution
Chasm normalizes all sessions into a universal format and lets you:
- Import from any provider into a unified database
- Export to any format (JSON, Markdown, CSV)
- Continue sessions with a different provider
- Search across all history regardless of source
Continue a Session with Any Provider
chasm list sessions
chasm export sessions abc123 --format json --output session.json
chasm agency run --context session.json "Continue implementing the feature"
chasm harvest import session.json
Cross-Provider Workflow Example
chasm fetch path /path/to/project
chasm list sessions --project-path /path/to/project
chasm export path ./backup /path/to/project
chasm agency run -m claude-3 --context ./backup/session.json \
"Review the code we wrote and suggest improvements"
chasm merge path /path/to/project
chasm harvest search "authentication implementation"
Universal Session Format
Chasm's normalized format includes:
{
"id": "uuid",
"title": "Session title",
"provider": "copilot|cursor|chatgpt|claude|ollama|...",
"workspace": "/path/to/project",
"created_at": "2026-01-08T12:00:00Z",
"messages": [
{
"role": "user|assistant|system",
"content": "Message text",
"timestamp": "2026-01-08T12:00:00Z",
"tool_calls": [...],
"references": [...]
}
],
"metadata": {
"model": "gpt-4o",
"total_tokens": 15000,
"files_referenced": ["src/main.rs", "Cargo.toml"]
}
}
Benefits
| Feature |
Vendor Lock-in |
With Chasm |
| Switch providers |
Lose all history |
Keep everything |
| Search old chats |
Per-provider only |
Search all at once |
| Backup conversations |
Manual exports |
Automatic harvesting |
| Continue sessions |
Start fresh |
Full context preserved |
| Compare providers |
Impossible |
Same task, different models |
🔌 API Server
Start the REST API server for integration with web/mobile apps:
chasm api serve --host 0.0.0.0 --port 8787
Endpoints
| Method |
Endpoint |
Description |
| GET |
/api/health |
Health check |
| GET |
/api/workspaces |
List workspaces |
| GET |
/api/workspaces/:id |
Get workspace details |
| GET |
/api/sessions |
List sessions |
| GET |
/api/sessions/:id |
Get session with messages |
| GET |
/api/sessions/search?q= |
Search sessions |
| GET |
/api/stats |
Database statistics |
| GET |
/api/providers |
List supported providers |
🗃️ Supported Providers
Editor-based
- ✅ GitHub Copilot (VS Code)
- ✅ Cursor
- ✅ Windsurf
- ✅ Continue.dev
Local LLMs
- ✅ Ollama
- ✅ LM Studio
- ✅ GPT4All
- ✅ LocalAI
- ✅ Jan.ai
- ✅ llama.cpp / llamafile
- ✅ vLLM
- ✅ Text Generation WebUI
Cloud APIs
- ✅ OpenAI / ChatGPT
- ✅ Anthropic / Claude
- ✅ Google / Gemini
- ✅ Azure AI Foundry
- ✅ Perplexity
- ✅ DeepSeek
📁 Database Locations
| Platform |
Location |
| Windows |
%LOCALAPPDATA%\csm\csm.db |
| macOS |
~/Library/Application Support/csm/csm.db |
| Linux |
~/.local/share/csm/csm.db |
🛠️ Development
Prerequisites
Building
git clone https://github.com/nervosys/chasm-cli.git
cd chasm-cli
cargo build --release
Running tests
cargo test
📜 License
Licensed under the Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).
🤝 Contributing
Contributions are welcome! Please read our Contributing Guide and Code of Conduct.
�� Security
For security issues, please see our Security Policy.
📞 Support