
CCRider
io.github.neilberkman由 GitHub 帳號 neilberkman 發布v1.15.0更新於 Nov 1, 2026
Full-text search, browse, and resume across your coding agent sessions (Claude Code, Codex, Amp)
概覽
將本機編碼代理工作階段(Claude Code、Codex、Copilot、OpenCode、Pi、Antigravity、Amp)建立索引,讓助理搜尋、閱讀並標記過往對話。
- 可以做什麼
- 依日期、專案與提供者篩選,對工作階段歷史做全文搜尋
- 列出最近工作階段,並讀取某個工作階段的訊息,支援尾端模式與搜尋命中前後文
- 產生並列出工作階段錨點(書籤),含標籤與對應的工作階段
- 等待另一個工作階段結束回合、寫入新訊息或特定詞句,或等待訊號頻道
- 向頻道送出訊號,喚醒正在等待的工作階段
- 適用情境
- 適合希望編碼代理回想先前工作的情境:找回修好某個 bug 的那次對話、查看上週在某專案做了什麼,或在上下文壓縮後恢復記憶,並可同時涵蓋多個代理工具。
- 執行需求
- 以本機 ccrider 執行檔透過 serve-mcp 指令執行,可用 Homebrew 安裝或從原始碼建置。需先將工作階段同步到其本機 SQLite 資料庫。Amp 匯入需在設定檔開啟 amp_enabled,並安裝且已登入 amp CLI。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 CCRider,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
ccrider
[License: MIT] [Release] [Homebrew] [Show HN]
Search, browse, and resume your Claude Code, Codex CLI, GitHub Copilot CLI, OpenCode, Pi, Antigravity, and Amp sessions, plus MCP server to remember past context.
When your coding agent forgets, tell it: see what you have done.
Why ccrider?
You've got months of coding agent sessions sitting in ~/.claude/projects/, ~/.codex/sessions/, ~/.copilot/, ~/.local/share/opencode/, ~/.pi/agent/sessions/, ~/.gemini/antigravity*/brain/, and your Amp account. Finding that conversation where you fixed the authentication bug? Good luck grepping through nested JSON files and separate tools.
ccrider indexes Claude Code, Codex CLI, GitHub Copilot CLI, OpenCode, Pi, Antigravity (CLI, IDE, and desktop app), and Amp sessions into a single searchable database, with a TUI browser, CLI search, and an MCP server so your agent can search past sessions too.
Stay in your terminal. Find any conversation. Resume where you left off. Sessions are tagged with their provider in the TUI for easy identification.
Installation:
"Vibe code like a king The King!"
https://github.com/user-attachments/assets/5b008290-076e-4323-a775-f27f704b1ff2
Core Features
1. Interactive TUI Browser
Browse your sessions with a polished terminal UI:
- Arrow keys to navigate
- Enter to view full conversation
- o to open session in new terminal tab (auto-detects Ghostty, iTerm, Terminal.app)
- / to search across all messages
- p to toggle project filter (show only current directory)
- ? for help
Sessions matching your current directory are highlighted in light green - instantly see which sessions are relevant to your current work.
2. Full-Text Search
Powered by SQLite FTS5 - search message content, filter by project or date, get results instantly.
3. Resume Sessions
Press r in the TUI to launch the provider's resume command in the right directory with the right session. Use c to copy that command or o to open it in a new terminal. Pi resumes with pi --session <id> and forks with pi --fork <id>; Antigravity CLI sessions resume with agy --conversation <id> and fork interactively with /fork; Antigravity IDE and desktop app conversations are searchable and browsable but have no terminal resume command, so reopen them in the app; Amp resumes with amp threads continue <id>.
4. Incremental Sync
Automatically discovers Claude Code (~/.claude/projects/), Codex CLI (~/.codex/sessions/), GitHub Copilot CLI (~/.copilot/session-state/), OpenCode (~/.local/share/opencode/opencode*.db), Pi (~/.pi/agent/sessions/), Antigravity CLI (~/.gemini/antigravity-cli/brain/), Antigravity IDE (~/.gemini/antigravity-ide/brain/), and the Antigravity desktop app (~/.gemini/antigravity/brain/) sessions. Antigravity imports each canonical transcript.jsonl, excluding its diagnostic transcript. To import Amp, set amp_enabled = true in ~/.config/ccrider/config.toml and install/authenticate the amp CLI. ccrider then lists archived and active threads and exports only new or changed threads.
Amp threads are cloud-backed. The integration is disabled by default because enabling it downloads searchable text into ccrider's local SQLite database. MCP requests never contact Amp; they search cached Amp data from an earlier CLI/TUI sync.
MCP Server
ccrider includes a built-in MCP (Model Context Protocol) server that gives your coding agent access to your session history.
Ask your agent to search past conversations while working on new problems:
- "Find sessions where I worked on authentication"
- "Show me my most recent Elixir sessions"
- "What was I working on last week in the billing project?"
- "Search my Codex sessions for database migrations"
Setup
Configure your MCP-capable client to run ccrider serve-mcp. Examples:
Claude Code:
Claude Desktop:
Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json):
Other MCP clients:
Use command ccrider with args ["serve-mcp"].
Available Tools
- search_sessions - Full-text search across all session content with date/project/provider filters
- list_recent_sessions - Get recent sessions, optionally filtered by project or provider
- get_session_messages - Get messages from a session (supports tail mode, context around search matches)
- generate_session_anchor - Save a unique session anchor, optionally with a descriptive label and a known session ID
- list_session_anchors - List saved anchors and their matching sessions, with project/provider/session filters and pagination
- wait_for_session - Wait for another session to finish a turn, write a message or phrase, or send a signal
- send_session_signal - Post a signal to a channel, waking sessions that wait on it
search_sessions, list_recent_sessions, and list_session_anchors support a provider parameter to filter by claude, codex, copilot, opencode, pi, antigravity, antigravity-ide, antigravity-desktop, or amp. Search and retrieval tools read your local session database; anchor generation saves a bookmark there. Local providers are read from disk; Amp threads are fetched from your authenticated Amp account during sync and then stored locally.
Saving and finding session anchors
Ask your agent to bookmark a conversation with a descriptive label. For example, generate_session_anchor with {"label": "Add REST endpoint"} saves a tag such as add-rest-endpoint-a12bc34de56f. The agent supplies the label from the conversation; no separate LLM service is required. Omitting label keeps the original four-random-word format.
If the agent knows the session ID, it can also supply session_id to attach the bookmark immediately. Otherwise, it includes the returned phrase in its response and waits for a user reply so the phrase can be written to the transcript. list_session_anchors syncs local transcripts and finds conversations containing the phrase, without a date cutoff.
Call list_session_anchors to retrieve saved labels, phrases, timestamps, and matching sessions with resume commands. Use a returned session_id with get_session_messages to read the conversation. The list defaults to 20 anchors per page (maximum 100); pass its next_offset as offset to continue. Optional project, provider, and session_id filters select associated sessions.
An anchor appears in the unfiltered list as soon as it is generated, even if its sessions list is still empty. Session filters omit unmatched anchors. A phrase copied into multiple conversations can match more than one session; an explicit session_id binding takes precedence. Large session lists can be shortened with sessions_truncated: true and the full session_count retained.
The registry includes anchors generated after this feature was added. Previously generated phrases and manually written tags remain searchable as ordinary conversation text.
Waiting on another session
One session can wait for another, even when they run in different harnesses. There are two kinds of watch.
Transcript watches follow a Claude Code or Codex session's transcript, with no cooperation needed from it. Call wait_for_session with a session_id and until set to any of:
turn_end: the session finishes a turn. The event'soutcomeiscompleted,failed,refusedorinterrupted. Codex events include the turn's final message asexcerpt.message: the session writes any new assistant message.phrase: the session writes a message containing a phrase. Passmint_phrase: trueto get a unique phrase to hand to the other session.
turn_end needs an interactive Claude Code session; headless claude -p sessions don't record turn ends. A turn already running when the watch is armed reports its end. A Codex thread is followed when it moves to another rollout file.
Signal watches work with any harness. Arm with {"until": ["signal"], "mint_channel": true}, give the channel to the other session, and have it call send_session_signal with a short result when it's done. Signals are kept for 7 days. Resending with the same idempotency_key and body doesn't post twice.
Arming returns immediately with a cursor. Each wait returns as soon as something matches, or after max_wait_seconds (default 20) with status waiting and a cursor to continue from. Nothing is lost between calls, and every event has an event_id for deduplication. If a transcript is rewritten, truncated or replaced, the wait returns status gap with a fresh cursor, since events in between may be missing.
The same works from a shell, which suits agents that can run a background command and resume when it exits:
The design and its limits are in docs/plans/2026-10-30-session-watch-spec.md.
Recovering earlier context
generate_session_anchor helps an agent identify its current conversation after context compaction. The agent calls the tool, includes the returned phrase in its response, and asks you to reply so that response can be written to the transcript. It then calls search_sessions with the phrase as anchor_phrase and the topic it needs as query. You do not need to keep a separate record of the phrase for this workflow.
A unique phrase already visible in the conversation can also be used as anchor_phrase without calling the generator. The anchor_phrase search filter matches transcript text and, by default, only considers matches from the last hour; explicit after_date or before_date filters override that window. For a saved bookmark, use list_session_anchors to obtain the session ID directly, including when the bookmark was attached without writing its phrase into the transcript.
To find an older conversation using a tag you know, including a descriptive tag you wrote yourself, search for it directly:
This ordinary search_sessions query has no default date restriction. Use a returned session_id with get_session_messages to read the conversation.
Configuration
Note: Claude Code auto-deletes session JSON files after 30 days by default. ccrider preserves all session content in its own database, but if you want the original files kept (for resume, etc.), add
"cleanupPeriodDays": 99999to your~/.claude/settings.json.
ccrider looks for config in ~/.config/ccrider/:
See CONFIGURATION.md for full details.
Architecture
Built with strict core/interface separation following Saša Jurić's principles:
- Core (
pkg/,internal/core/): Pure business logic - parsing, database, search, multi-provider import - Interface (
internal/interface/,cmd/): Thin wrappers - CLI, TUI, MCP server
Uses proven technologies:
- Go for performance and single-binary distribution
- SQLite with FTS5 for fast full-text search
- Bubbletea for polished terminal UI
- MCP for coding agent integration
Why This Matters
Other coding agent session tools are broken:
- Incomplete schema support (can't parse all message types)
- Broken builds and abandoned dependencies
- No real search (just grep)
- Can't actually resume sessions
- Single-provider only
ccrider fixes this with:
- 100% schema coverage - parses all message types correctly
- Multi-provider - Claude Code, Codex CLI, GitHub Copilot CLI, OpenCode, Pi, Antigravity, and Amp in one database
- SQLite FTS5 search - fast, powerful full-text search
- Single binary - no npm, no pip, no dependencies
- Native resume - one keystroke to resume sessions
- Incremental sync - detects new messages in ongoing sessions
Development
See CONTRIBUTING.md for development setup and guidelines.
Project Structure
Quick Build
Documentation
License
MIT
來源:README.md,提交 921a0dd
工具
0版本歷史
6- v1.15.0最新Nov 1, 2026
- v1.14.1Oct 26, 2026
- v1.14.0Oct 22, 2026
- v1.13.0Oct 5, 2026
- v1.12.0Oct 2, 2026
- v1.11.1Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分