ccfolio
Exports Claude Code sessions to Obsidian with Dataview/Bases-compatible frontmatter, tool call callouts, and wikilinks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ccfoliosearch for sessions about API design"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ccfolio
Index, search, and archive your Claude Code conversations. Tracks cost, exports to Obsidian, and lets you resume past sessions without losing context.
What It Does
Claude Code stores every conversation as JSONL files in ~/.claude/projects/. ccfolio indexes them into a local SQLite database and gives you:
Full-text search across all conversations, including subagent content
Cost tracking — daily, monthly, by model, by project
Obsidian export with Dataview/Bases-compatible frontmatter
Auto-generated titles from project context and first prompt keywords
Session resume — hand off directly to
claude --resumeby index, slug, or ID prefixMCP server — search past sessions from within an active Claude Code conversation
Subagent linking — agent artifacts linked to parent sessions, not indexed as noise
Related MCP server: claude-kb
Install
pip install ccfolio
# With MCP server support
pip install ccfolio[mcp]Then run setup:
ccfolio config initThis sets your Obsidian vault path and configures the auto-sync hook.
Auto-Sync
Add this to your ~/.zshrc to auto-sync after every Claude Code session:
claude() {
command claude "$@"
ccfolio update --quiet
}After that, ccfolio runs silently every time you exit a claude session.
Commands
Browse
ccfolio list # All sessions, newest first
ccfolio list --recent 20 # Last 20
ccfolio list --sort cost # Most expensive first
ccfolio list --sort messages # Most messages first
ccfolio list --favorites # Only favorites
ccfolio list --model opus # Filter by model
ccfolio list --after 2026-02-01 # After a dateSearch
ccfolio search "tailscale"
ccfolio search "hypothesis engine"
ccfolio search "CLAUDE.md"Searches user messages, assistant responses, summaries, file paths, and subagent content. Supports partial words — ccfolio search "folio" finds sessions containing "ccfolio".
# Find sessions that touched a specific file
ccfolio files "CLAUDE.md"
ccfolio files "fetch_daily.py"View
ccfolio show #1 # By list index
ccfolio show giggly-pondering # By slug (partial match works)
ccfolio show 0c560d # By ID prefix
ccfolio show #1 --raw # Raw JSON recordResume
ccfolio resume #1 # Resume most recent session
ccfolio resume giggly-pondering # Resume by slug
ccfolio resume #3 --fork # Fork into a new sessionResolves the session and hands off to claude --resume. Never loses context.
Cost
ccfolio cost # Daily breakdown
ccfolio cost --monthly # Monthly breakdown
ccfolio cost --model # By model
ccfolio cost --project # By project directory
ccfolio cost --after 2026-02-01 # Date rangeShows estimated API cost alongside your usage. Useful for understanding where tokens go even on a Max subscription.
Stats
ccfolio stats # Overview: sessions, messages, tokens, cost
ccfolio stats --tools # Tool usage breakdownOrganize
ccfolio fav #3 # Toggle favorite
ccfolio tag #3 infrastructure # Add tags
ccfolio untag #3 infrastructure # Remove tags
ccfolio rename #3 "My Title" # Set custom titleExport to Obsidian
ccfolio export #3 # Export single session
ccfolio export --all # Export all un-exported sessions
ccfolio export --all --force # Re-export everything
ccfolio export --all --redact-paths # Strip username from file pathsExports happen automatically via ccfolio update. Manual export available for one-offs.
MCP Server
ccfolio can run as an MCP server, letting Claude search past sessions from within an active conversation.
Add to ~/.claude.json under your project path:
{
"projects": {
"/Users/yourname": {
"mcpServers": {
"ccfolio": {
"command": "/path/to/.venv/bin/ccfolio",
"args": ["mcp"]
}
}
}
}
}Available tools: search_sessions, list_recent_sessions, find_sessions_for_file, get_session_details, get_cost_summary.
Session ID Shortcuts
You never need to type a full UUID:
Format | Example |
Index from last |
|
Slug (partial) |
|
ID prefix |
|
Obsidian Output
Exported sessions land in your configured vault path with frontmatter:
type: Claude-Session
session_id: "0c560d4a-..."
slug: giggly-pondering-gem
date: 2026-02-14
model: claude-opus-4-6
messages: 159
tool_calls: 50
cost_usd: 11.95
favorite: false
tags: [Claude-Session, Opus]Tool calls render as collapsible callouts. File paths to vault notes become wikilinks. Sessions that used subagents get a linked Subagents section.
Auto-Titles
Sessions without a custom /rename title get automatic topic-based names during sync. ccfolio extracts topics from the project directory, most-touched file paths, and first prompt keywords.
Format: Topic1 + Topic2 + Topic3 (max 4 topics). No LLM calls, no API cost.
Requirements
Python 3.10+
Claude Code (
claudeCLI)Obsidian (optional, for vault export)
Configuration
ccfolio config show # View current settings
ccfolio config init # Interactive setupConfig file: ~/.config/ccfolio/config.toml
Database: ~/.config/ccfolio/ccfolio.db
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Hippensteel/ccfolio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server