跳到主内容
智客 ZICQ

技能库 智客分类:Agent 工作流 cass

Cass

编码代理会话搜索 - 统一CLI/TUI,从克洛德代码,Codex,双子座,Cursor,Aider,ChatGPT,Pi-Agent,Factor,等中索引并搜索本地编码代理历史. 专为AI代理机器人模式消费而建造.

2899 安装量

官方网址:skills.sh

技能介绍

先看中文介绍;官方 description 原文单独保留,不改写 SKILL.md。

做什么

编码代理会话搜索 - 统一CLI/TUI,从克洛德代码,Codex,双子座,Cursor,Aider,ChatGPT,Pi-Agent,Factor,等中索引并搜索本地编码代理历史. 专为AI代理机器人模式消费而建造.

何时用

官方 description 未单独写出 Use when。按规范,代理会在用户任务与这段 description 的关键词匹配时激活本技能。

代理如何加载

按 Agent Skills 渐进披露:启动时只加载 name 与 description(约 100 token);任务匹配后才读入整份 SKILL.md 正文;scripts/、references/、assets/ 仅在需要时再读。 本文件正文结构:CASS - Coding Agent Session Search、CRITICAL: Robot Mode Required for AI Agents、WRONG - blocks terminal、CORRECT - JSON output for agents、Quick Reference for AI Agents、Pre-Flight Check。

文件分析

文件分析:这是一份仅含 SKILL.md 的指令型技能,代理激活后整份正文进入上下文。 正文约 965 行,超过规范建议的 500 行,激活时仍会整份载入。

官方 description(原文)

Coding Agent Session Search - unified CLI/TUI to index and search local coding agent history from Claude Code, Codex, Gemini, Cursor, Aider, ChatGPT, Pi-Agent, Factory, and more. Purpose-built for AI agent consumption with robot mode.

CASS - Coding Agent Session SearchCRITICAL: Robot Mode Required for AI AgentsWRONG - blocks terminalCORRECT - JSON output for agentsQuick Reference for AI AgentsPre-Flight CheckHealth check (exit 0=healthy, 1=unhealthy, <50ms)If unhealthy, rebuild indexEssential CommandsFind the current session for this workspaceList recent sessions for a specific projectCommon agent flow: find current session, then export it

来源分类:skills.sh agent-skill

SKILL.md 与 Agent 调用

官方规范 ↗
name
cass
description
Coding Agent Session Search - unified CLI/TUI to index and search local coding agent history from Claude Code, Codex, Gemini, Cursor, Aider, ChatGPT, Pi-Agent, Factory, and more. Purpose-built for AI agent consumption with robot mode.
  1. 发现技能客户端向 Agent 提供名称与描述目录。
  2. 匹配与调用用户指定或任务匹配后,载入 SKILL.md 指令。
  3. 按需加载按步骤读取参考文档、使用脚本与素材。

具体调用语法与可用工具以目标 Agent 客户端为准。 查看调用机制说明 ↗

安装这个技能

Skills CLI ↗

先选择目标 Agent 和安装范围,保留技能包的附属文件,安装后检查客户端能否发现该技能。

交给 Agent 安装

复制安装指令给支持 Agent Skills 的代理,确认其中的目标目录与客户端匹配。

把 Agent Skill「cass」安装到我的项目:SKILL.md 原文与官方 description 见 https://zicq.com/zh/skills/skl-50c761b3016010e8-Cass.html
请存为 .cursor/skills/cass/SKILL.md 或 .claude/skills/cass/SKILL.md,frontmatter 的 name 与 description 保持原样,不要改写。

GitHub 完整包 ↗

终端安装 · Skills CLI

需要 Node.js 与 npx。先查看仓库技能列表,确认实际名称。

npx skills add 'https://github.com/dicklesworthstone/coding_agent_session_search' --list

npx skills add 'https://github.com/dicklesworthstone/coding_agent_session_search' --skill 'cass'

CLI 会交互选择目标 Agent,默认安装到项目;用户级安装使用 -g。先通过查看命令核对仓库内容,再用 npx skills list 检查已安装技能。

阅读排版

name: cass description: "Coding Agent Session Search - unified CLI/TUI to index and search local coding agent history from Claude Code, Codex, Gemini, Cursor, Aider, ChatGPT, Pi-Agent, Factory, and more. Purpose-built for AI agent consumption with robot mode."

CASS - Coding Agent Session Search

Unified, high-performance CLI/TUI to index and search your local coding agent history. Aggregates sessions from 23 agents, including Codex, Claude Code, Gemini CLI, Cline, OpenCode, Amp, Cursor, ChatGPT, Aider, Pi-Agent, Factory (Droid), OpenHands, Antigravity, and Grok Build.

CRITICAL: Robot Mode Required for AI Agents

NEVER run bare cass - it launches an interactive TUI that blocks your session!

# WRONG - blocks terminal
cass

# CORRECT - JSON output for agents
cass search "query" --robot
cass search "query" --json  # alias

Always use --robot or --json flags for machine-readable output.


Quick Reference for AI Agents

Pre-Flight Check

# Health check (exit 0=healthy, 1=unhealthy, <50ms)
cass health

# If unhealthy, rebuild index
cass index --full

Essential Commands

# Find the current session for this workspace
cass sessions --current --json

# List recent sessions for a specific project
cass sessions --workspace "$(pwd)" --json --limit 5

# Common agent flow: find current session, then export it
cass export-html "$(cass sessions --current --json | jq -r '.sessions[0].path')" --json

# Search with JSON output
cass search "authentication error" --robot --limit 5

# Search with metadata (elapsed_ms, cache stats, freshness)
cass search "error" --robot --robot-meta

# Minimal payload (path, line, agent only)
cass search "bug" --robot --fields minimal

# View source at specific line
cass view /path/to/session.jsonl -n 42 --json

# Expand context around a line
cass expand /path/to/session.jsonl -n 42 -C 5 --json

# Capabilities discovery
cass capabilities --json

# Full API schema
cass introspect --json

# LLM-optimized documentation
cass robot-docs guide
cass robot-docs commands
cass robot-docs schemas
cass robot-docs examples
cass robot-docs exit-codes

Why Use CASS

Cross-Agent Knowledge Transfer

Your coding agents create scattered knowledge:

  • Claude Code sessions in ~/.claude/projects
  • Codex sessions in ~/.codex/sessions
  • Cursor state in SQLite databases
  • Aider history in markdown files

CASS unifies all of this into a single searchable index. When you're stuck on a problem, search across ALL your past agent sessions to find relevant solutions.

Use Cases

# "I solved this before..."
cass search "TypeError: Cannot read property" --robot --days 30

# Cross-agent learning (what has ANY agent said about X?)
cass search "authentication" --robot --workspace /path/to/project

# Agent-to-agent handoff
cass search "database migration" --robot --fields summary

# Daily review
cass timeline --today --json

Command Reference

Indexing

# Full rebuild of DB and search index
cass index --full

# Incremental update (since last scan)
cass index

# Watch mode: auto-reindex on file changes
cass index --watch

# Force rebuild even if schema unchanged
cass index --full --force-rebuild

# Safe retries with idempotency key (24h TTL)
cass index --full --idempotency-key "build-$(date +%Y%m%d)"

# JSON output with stats
cass index --full --json

Search

# Basic search (JSON output required for agents!)
cass search "query" --robot

# With filters
cass search "error" --robot --agent claude --days 7
cass search "bug" --robot --workspace /path/to/project
cass search "panic" --robot --today

# Time filters
cass search "auth" --robot --since 2024-01-01 --until 2024-01-31
cass search "test" --robot --yesterday
cass search "fix" --robot --week

# Wildcards
cass search "auth*" --robot          # prefix: authentication, authorize
cass search "*tion" --robot          # suffix: authentication, exception
cass search "*config*" --robot       # substring: misconfigured

# Token budget management (critical for LLMs!)
cass search "error" --robot --fields minimal              # path, line, agent only
cass search "error" --robot --fields summary              # adds title, score
cass search "error" --robot --max-content-length 500      # truncate fields
cass search "error" --robot --max-tokens 2000             # soft budget (~4 chars/token)
cass search "error" --robot --limit 5                     # cap results

# Pagination (cursor-based)
cass search "TODO" --robot --robot-meta --limit 20
# Use _meta.next_cursor from response:
cass search "TODO" --robot --robot-meta --limit 20 --cursor "eyJ..."

# Match highlighting
cass search "authentication error" --robot --highlight

# Query analysis/debugging
cass search "auth*" --robot --explain    # parsed query, cost estimates
cass search "auth error" --robot --dry-run  # validate without executing

# Aggregations (server-side counts)
cass search "error" --robot --aggregate agent,workspace,date

# Request correlation
cass search "bug" --robot --request-id "req-12345"

# Source filtering (for multi-machine setups)
cass search "auth" --robot --source laptop
cass search "error" --robot --source remote

# Traceability (for debugging agent pipelines)
cass search "error" --robot --trace-file /tmp/cass-trace.json

Session Analysis

# Export conversation to markdown/HTML/JSON
cass export /path/to/session.jsonl --format markdown -o conversation.md
cass export /path/to/session.jsonl --format html -o conversation.html
cass export /path/to/session.jsonl --format json --include-tools

# Expand context around a line (from search result)
cass expand /path/to/session.jsonl -n 42 -C 5 --json
# Shows 5 messages before and after line 42

# View source at line
cass view /path/to/session.jsonl -n 42 --json

# Activity timeline
cass timeline --today --json --group-by hour
cass timeline --days 7 --json --agent claude
cass timeline --since 7d --json

# Find related sessions for a file
cass context /path/to/source.ts --json

Status & Diagnostics

# Quick health (<50ms)
cass health
cass health --json

# Full status snapshot
cass status --json
cass state --json  # alias

# Statistics
cass stats --json
cass stats --by-source  # for multi-machine

# Full diagnostics
cass diag --verbose

Aggregation & Analytics

Aggregate search results server-side to get counts and distributions without transferring full result data:

# Count results by agent
cass search "error" --robot --aggregate agent
# → { "aggregations": { "agent": { "buckets": [{"key": "claude_code", "count": 45}, ...] } } }

# Multi-field aggregation
cass search "bug" --robot --aggregate agent,workspace,date

# Combine with filters
cass search "TODO" --agent claude --robot --aggregate workspace

| Aggregation Field | Description | |-------------------|-------------| | agent | Group by agent type (claude_code, codex, cursor, etc.) | | workspace | Group by workspace/project path | | date | Group by date (YYYY-MM-DD) | | match_type | Group by match quality (exact, prefix, fuzzy) |

Top 10 buckets returned per field, with other_count for remaining items.


Remote Sources (Multi-Machine Search)

Search across sessions from multiple machines via SSH/rsync.

Setup Wizard (Recommended)

cass sources setup

The wizard:

  1. Discovers SSH hosts from ~/.ssh/config
  2. Probes each for agent data and cass installation
  3. Optionally installs cass on remotes
  4. Indexes sessions on remotes
  5. Configures sources.toml
  6. Syncs data locally
cass sources setup --hosts css,csd,yto  # Specific hosts only
cass sources setup --dry-run             # Preview without changes
cass sources setup --resume              # Resume interrupted setup

Manual Setup

# Add a remote machine
cass sources add [email protected] --preset macos-defaults
cass sources add dev@workstation --path ~/.claude/projects --path ~/.codex/sessions

# List sources
cass sources list --json

# Sync sessions
cass sources sync
cass sources sync --source laptop --verbose

# Check connectivity
cass sources doctor
cass sources doctor --source laptop --json

# Path mappings (rewrite remote paths to local)
cass sources mappings list laptop
cass sources mappings add laptop --from /home/user/projects --to /Users/me/projects
cass sources mappings test laptop /home/user/projects/myapp/src/main.rs

# Remove source
cass sources remove laptop --purge -y

Configuration stored in ~/.config/cass/sources.toml (Linux) or ~/Library/Application Support/cass/sources.toml (macOS).


Robot Mode Deep Dive

Self-Documenting API

CASS teaches agents how to use itself:

# Quick capability check
cass capabilities --json
# Returns: features, connectors, limits

# Full API schema
cass introspect --json
# Returns: all commands, arguments, response shapes

# Topic-based docs (LLM-optimized)
cass robot-docs commands   # all commands and flags
cass robot-docs schemas    # response JSON schemas
cass robot-docs examples   # copy-paste invocations
cass robot-docs exit-codes # error handling
cass robot-docs guide      # quick-start walkthrough
cass robot-docs contracts  # API versioning
cass robot-docs sources    # remote sources guide

Forgiving Syntax (Agent-Friendly)

CASS auto-corrects common mistakes:

| What you type | What CASS understands | |---------------|----------------------| | cass serach "error" | cass search "error" (typo corrected) | | cass -robot -limit=5 | cass --robot --limit=5 (single-dash fixed) | | cass --Robot --LIMIT 5 | cass --robot --limit 5 (case normalized) | | cass find "auth" | cass search "auth" (alias resolved) | | cass --limt 5 | cass --limit 5 (Levenshtein <=2) |

Command Aliases:

  • find, query, q, lookup, grep → search
  • ls, list, info, summary → stats
  • st, state → status
  • reindex, idx, rebuild → index
  • show, get, read → view
  • docs, help-robot, robotdocs → robot-docs

Output Formats

# Pretty-printed JSON (default)
cass search "error" --robot

# Streaming JSONL (header + one hit per line)
cass search "error" --robot-format jsonl

# Compact single-line JSON
cass search "error" --robot-format compact

# With performance metadata
cass search "error" --robot --robot-meta

Design principle: stdout = JSON only; diagnostics go to stderr.

Token Budget Management

LLMs have context limits. Control output size:

| Flag | Effect | |------|--------| | --fields minimal | Only source_path, line_number, agent | | --fields summary | Adds title, score | | --fields score,title,snippet | Custom field selection | | --max-content-length 500 | Truncate long fields (UTF-8 safe) | | --max-tokens 2000 | Soft budget (~4 chars/token) | | --limit 5 | Cap number of results |

Truncated fields include *_truncated: true indicator.


Structured Error Handling

Errors are JSON with actionable hints:

{
  "error": {
    "code": 3,
    "kind": "index_missing",
    "message": "Search index not found",
    "hint": "Run 'cass index --full' to build the index",
    "retryable": false
  }
}

Exit Codes

| Code | Meaning | Action | |------|---------|--------| | 0 | Success | Parse stdout | | 1 | Health check failed | Run cass index --full | | 2 | Usage error | Fix syntax (hint provided) | | 3 | Index/DB missing | Run cass index --full | | 4 | Network error | Check connectivity | | 5 | Data corruption | Run cass index --full --force-rebuild | | 6 | Incompatible version | Update cass | | 7 | Lock/busy | Retry later | | 8 | Partial result | Increase --timeout | | 9 | Unknown error | Check retryable flag |


Search Modes

Three search modes, selectable with --mode flag:

| Mode | Algorithm | Best For | |------|-----------|----------| | lexical (default) | BM25 full-text | Exact term matching, code searches | | semantic | Vector similarity | Conceptual queries, "find similar" | | hybrid | Reciprocal Rank Fusion | Balanced precision and recall |

cass search "authentication" --mode lexical --robot
cass search "how to handle user login" --mode semantic --robot
cass search "auth error handling" --mode hybrid --robot

Hybrid combines lexical and semantic using RRF:

RRF_score = Σ 1 / (60 + rank_i)

Pipeline Mode (Chained Search)

Chain searches by piping session paths:

# Find sessions mentioning "auth", then search within those for "token"
cass search "authentication" --robot-format sessions | \
  cass search "refresh token" --sessions-from - --robot

# Build a filtered corpus from today's work
cass search --today --robot-format sessions > today_sessions.txt
cass search "bug fix" --sessions-from today_sessions.txt --robot

Use cases:

  • Drill-down: Broad search → narrow within results
  • Cross-reference: Find sessions with term A, then find term B within them
  • Corpus building: Save session lists for repeated searches

Query Language

Basic Queries

| Query | Matches | |-------|---------| | error | Messages containing "error" (case-insensitive) | | python error | Both "python" AND "error" | | "authentication failed" | Exact phrase |

Boolean Operators

| Operator | Example | Meaning | |----------|---------|---------| | AND | python AND error | Both terms required (default) | | OR | error OR warning | Either term matches | | NOT | error NOT test | First term, excluding second | | - | error -test | Shorthand for NOT |

# Complex boolean query
cass search "authentication AND (error OR failure) NOT test" --robot

# Exclude test files
cass search "bug fix -test -spec" --robot

# Either error type
cass search "TypeError OR ValueError" --robot

Wildcard Patterns

| Pattern | Type | Performance | |---------|------|-------------| | auth* | Prefix | Fast (edge n-grams) | | *tion | Suffix | Slower (regex) | | *config* | Substring | Slowest (regex) |

Match Types

Results include match_type:

| Type | Meaning | Score Boost | |------|---------|-------------| | exact | Verbatim match | Highest | | prefix | Via prefix expansion | High | | suffix | Via suffix pattern | Medium | | substring | Via substring pattern | Lower | | fuzzy | Auto-fallback (sparse results) | Lowest |

Auto-Fuzzy Fallback

When exact query returns <3 results, CASS automatically retries with wildcards:

  • auth → *auth*
  • Results flagged with wildcard_fallback: true

Flexible Time Input

CASS accepts a wide variety of time/date formats:

| Format | Examples | |--------|----------| | Relative | -7d, -24h, -30m, -1w | | Keywords | now, today, yesterday | | ISO 8601 | 2024-11-25, 2024-11-25T14:30:00Z | | US Dates | 11/25/2024, 11-25-2024 | | Unix Timestamp | 1732579200 (seconds or milliseconds) |


Ranking Modes

Cycle with F12 in TUI or use --ranking flag:

| Mode | Formula | Best For | |------|---------|----------| | Recent Heavy | relevance*0.3 + recency*0.7 | "What was I working on?" | | Balanced | relevance*0.5 + recency*0.5 | General search | | Relevance | relevance*0.8 + recency*0.2 | "Best explanation of X" | | Match Quality | Penalizes fuzzy matches | Precise technical searches | | Date Newest | Pure chronological | Recent activity | | Date Oldest | Reverse chronological | "When did I first..." |

Score Components

  • Text Relevance (BM25): Term frequency, inverse document frequency, length normalization
  • Recency: Exponential decay (today ~1.0, last week ~0.7, last month ~0.3)
  • Match Exactness: Exact phrase=1.0, Prefix=0.9, Suffix=0.8, Substring=0.6, Fuzzy=0.4

Blended Scoring Formula

Final_Score = BM25_Score × Match_Quality + α × Recency_Factor

| Mode | α Value | Effect | |------|---------|--------| | Recent Heavy | 1.0 | Recency dominates | | Balanced | 0.4 | Moderate recency boost | | Relevance Heavy | 0.1 | BM25 dominates | | Match Quality | 0.0 | Pure text matching |


Supported Agents (23 Connectors)

| Agent | Location | Format | |-------|----------|--------| | Claude Code | ~/.claude/projects | JSONL | | Codex | ~/.codex/sessions | JSONL (Rollout) | | Gemini CLI | ~/.gemini/tmp | JSON | | Cline | VS Code global storage | Task directories | | OpenCode | .opencode directories | SQLite | | Amp | ~/.local/share/amp + VS Code | Mixed | | Cursor | ~/Library/Application Support/Cursor | SQLite (state.vscdb) | | ChatGPT | ~/Library/Application Support/com.openai.chat | JSON (v1 unencrypted) | | Aider | ~/.aider.chat.history.md + per-project | Markdown | | Pi-Agent | ~/.pi/agent/sessions | JSONL with thinking | | Factory (Droid) | ~/.factory/sessions | JSONL by workspace | | GitHub Copilot Chat | VS Code global storage | JSON / SQLite | | GitHub Copilot CLI | ~/.copilot/session-state | JSONL | | OpenClaw | ~/.openclaw | JSONL | | ClawdBot | ~/.clawdbot | JSONL | | Vibe | ~/.vibe/logs/session | JSONL | | Crush | ~/.crush/crush.db | SQLite | | Hermes | ~/.hermes | JSONL | | Kimi Code | ~/.kimi/sessions | JSONL | | Qwen Code | ~/.qwen/tmp | JSON / JSONL | | OpenHands | ~/.openhands/conversations | JSON event stream | | Antigravity | ~/.gemini/antigravity-cli | JSONL / SQLite | | Grok Build | $GROK_HOME/sessions (default ~/.grok/sessions) | ACP updates JSONL |

Note: ChatGPT v2/v3 are AES-256-GCM encrypted (keychain access required). Legacy v1 unencrypted conversations are indexed automatically.


TUI Features (for Humans)

Launch with cass (no flags):

Keyboard Shortcuts

Navigation:

  • Up/Down: Move selection
  • Left/Right: Switch panes
  • Tab/Shift+Tab: Cycle focus
  • Enter: Open in $EDITOR
  • Space: Full-screen detail view
  • Home/End: Jump to first/last result
  • PageUp/PageDown: Scroll by page

Filtering:

  • F3: Agent filter
  • F4: Workspace filter
  • F5/F6: Time filters (from/to)
  • Shift+F3: Scope to current result's agent
  • Shift+F4: Clear workspace filter
  • Shift+F5: Cycle presets (24h/7d/30d/all)
  • Ctrl+Del: Clear all filters

Modes:

  • F2: Toggle theme (6 presets)
  • F7: Context window size (S/M/L/XL)
  • F9: Match mode (prefix/standard)
  • F12: Ranking mode
  • Ctrl+B: Toggle border style

Selection & Actions:

  • m: Toggle selection
  • Ctrl+A: Select all
  • A: Bulk actions menu
  • Ctrl+Enter: Add to queue
  • Ctrl+O: Open all queued
  • y: Copy path/content
  • Ctrl+Y: Copy all selected
  • /: Find in detail pane
  • n/N: Next/prev match

Views & Palette:

  • Ctrl+P: Command palette
  • 1-9: Load saved view
  • Shift+1-9: Save view to slot

Source Filtering (multi-machine):

  • F11: Cycle source filter (all/local/remote)
  • Shift+F11: Source selection menu

Global:

  • Ctrl+C: Quit
  • F1 or ?: Toggle help
  • Ctrl+Shift+R: Force re-index
  • Ctrl+Shift+Del: Reset all TUI state

Detail Pane Tabs

| Tab | Content | Switch With | |-----|---------|-------------| | Messages | Full conversation with markdown | [ / ] | | Snippets | Keyword-extracted summaries | [ / ] | | Raw | Unformatted JSON/text | [ / ] |

Context Window Sizing

| Size | Characters | Use Case | |------|------------|----------| | Small | ~200 | Quick scanning | | Medium | ~400 | Default balanced view | | Large | ~800 | Longer passages | | XLarge | ~1600 | Full context, code review |

Peek Mode (Ctrl+Space): Temporarily expand to XL without changing default.


Theme Presets

Cycle through 6 built-in themes with F2:

| Theme | Description | Best For | |-------|-------------|----------| | Dark | Tokyo Night-inspired deep blues | Low-light environments | | Light | High-contrast light background | Bright environments | | Catppuccin | Warm pastels, reduced eye strain | All-day coding | | Dracula | Purple-accented dark theme | Popular developer theme | | Nord | Arctic-inspired cool tones | Calm, focused work | | High Contrast | Maximum readability | Accessibility needs |

All themes validated against WCAG contrast requirements (4.5:1 minimum for text).

Role-Aware Message Styling

| Role | Visual Treatment | |------|------------------| | User | Blue-tinted background, bold | | Assistant | Green-tinted background | | System | Gray/muted background | | Tool | Orange-tinted background |


Saved Views

Save filter configurations to 9 slots for instant recall.

What Gets Saved:

  • Active filters (agent, workspace, time range)
  • Current ranking mode
  • The search query

Keyboard:

  • Shift+1 through Shift+9: Save current view
  • 1 through 9: Load view from slot

Via Command Palette: Ctrl+P → "Save/Load view"

Views persist in tui_state.json across sessions.


Density Modes

Control lines per search result. Cycle with Shift+D:

| Mode | Lines | Best For | |------|-------|----------| | Compact | 3 | Maximum results visible | | Cozy | 5 | Balanced view (default) | | Spacious | 8 | Detailed preview |


Bookmark System

Save important results with notes and tags:

In TUI: Press b to bookmark, add notes and tags.

Bookmark Structure:

  • title: Short description
  • source_path, line_number, agent, workspace
  • note: Your annotations
  • tags: Comma-separated labels
  • snippet: Extracted content

Storage: ~/.local/share/coding-agent-search/bookmarks.db (SQLite)


Optional Semantic Search

Local-only semantic search using MiniLM (no cloud):

Required files (place in data directory):

  • model.onnx
  • tokenizer.json
  • config.json
  • special_tokens_map.json
  • tokenizer_config.json

Vector index stored as vector_index/index-minilm-384.cvvi.

CASS does NOT auto-download models; you must manually install them.

Hash Embedder Fallback: When MiniLM not installed, CASS uses a hash-based embedder for approximate semantic similarity.


Watch Mode

Real-time index updates:

cass index --watch
  • Debounce: 2 seconds (wait for burst to settle)
  • Max wait: 5 seconds (force flush during continuous activity)
  • Incremental: Only re-scans modified files

TUI automatically starts watch mode in background.


Deduplication Strategy

CASS uses multi-layer deduplication:

  1. Message Hash: SHA-256 of (role + content + timestamp) - identical messages stored once
  2. Conversation Fingerprint: Hash of first N message hashes - detects duplicate files
  3. Search-Time Dedup: Results deduplicated by content similarity

Noise Filtering:

  • Empty messages and pure whitespace
  • System prompts (unless searching for them)
  • Repeated tool acknowledgments

Performance Characteristics

| Operation | Latency | |-----------|---------| | Prefix search (cached) | 2-8ms | | Prefix search (cold) | 40-60ms | | Substring search | 80-200ms | | Full reindex | 5-30s | | Incremental reindex | 50-500ms | | Health check | <50ms |

Memory: 70-140MB typical (50K messages) Disk: ~600 bytes/message (including n-gram overhead)


Response Shapes

Search Response:

{
  "query": "error",
  "limit": 10,
  "count": 5,
  "total_matches": 42,
  "hits": [
    {
      "source_path": "/path/to/session.jsonl",
      "line_number": 123,
      "agent": "claude_code",
      "workspace": "/projects/myapp",
      "title": "Authentication debugging",
      "snippet": "The error occurs when...",
      "score": 0.85,
      "match_type": "exact",
      "created_at": "2024-01-15T10:30:00Z"
    }
  ],
  "_meta": {
    "elapsed_ms": 12,
    "cache_hit": true,
    "wildcard_fallback": false,
    "next_cursor": "eyJ...",
    "index_freshness": { "stale": false, "age_seconds": 120 }
  }
}

Aggregation Response:

{
  "aggregations": {
    "agent": {
      "buckets": [
        {"key": "claude_code", "count": 120},
        {"key": "codex", "count": 85}
      ],
      "other_count": 15
    }
  }
}

Environment Variables

| Variable | Purpose | |----------|---------| | CASS_DATA_DIR | Override data directory | | CHATGPT_ENCRYPTION_KEY | Base64 key for encrypted ChatGPT | | PI_CODING_AGENT_DIR | Override Pi-Agent sessions path | | CASS_CACHE_SHARD_CAP | Per-shard cache entries (default 256) | | CASS_CACHE_TOTAL_CAP | Total cached hits (default 2048) | | CASS_DEBUG_CACHE_METRICS | Enable cache debug logging | | CODING_AGENT_SEARCH_NO_UPDATE_PROMPT | Skip update checks |


Shell Completions

cass completions bash > ~/.local/share/bash-completion/completions/cass
cass completions zsh > "${fpath[1]}/_cass"
cass completions fish > ~/.config/fish/completions/cass.fish
cass completions powershell >> $PROFILE

API Contract & Versioning

cass api-version --json
# → { "version": "0.4.0", "contract_version": "1", "breaking_changes": [] }

cass introspect --json
# → Full schema: all commands, arguments, response types

Guaranteed Stable:

  • Exit codes and their meanings
  • JSON response structure for --robot output
  • Flag names and behaviors
  • _meta block format

Integration with CASS Memory (cm)

CASS provides episodic memory (raw sessions). CM extracts procedural memory (rules and playbooks):

# 1. CASS indexes raw sessions
cass index --full

# 2. Search for relevant past experience
cass search "authentication timeout" --robot --limit 10

# 3. CM reflects on sessions to extract rules
cm reflect

Troubleshooting

| Issue | Solution | |-------|----------| | "missing index" | cass index --full | | Stale warning | Rerun index or enable watch | | Empty results | Check cass stats --json, verify connectors detected | | JSON parsing errors | Use --robot-format compact | | Watch not triggering | Check watch_state.json, verify file event support | | Reset TUI state | cass tui --reset-state or Ctrl+Shift+Del |


Installation

# One-liner install
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/coding_agent_session_search/main/install.sh \
  | bash -s -- --easy-mode --verify

# Windows
irm https://raw.githubusercontent.com/Dicklesworthstone/coding_agent_session_search/main/install.ps1 | iex

Integration with Flywheel

| Tool | Integration | |------|-------------| | CM | CASS provides episodic memory, CM extracts procedural memory | | NTM | Robot mode flags for searching past sessions | | Agent Mail | Search threads across agent history | | BV | Cross-reference beads with past solutions |

相关技能

Agent 工作流

Skill Creator

创造有效技能指南。 当用户想创造出新的技能(或更新现有的技能),以专业知识,工作流程,或工具集成来扩展克洛德的能力时,应该使用这种技能.

Agent 工作流

Clawdhub

使用ClawdHub CLI搜索,安装,更新并发布从taladhub.com的代理技能. 需要获取苍蝇上的新技能时使用,将安装的技能同步到最新版本或特定版本,或者发布 npm-instainddhub CLI 的新/更新的技能文件夹.

Agent 工作流

Agent Team Orchestration

管弦乐团多代理团队,任务设定周期,交接协议,审查工作流程. 使用时间: (1)建立2+特派员队伍,具有不同专业,(2)确定任务路线和生命周期(收录框_ spec_建设_审查_完成),(3)在特派员之间制定交接协议,(4)建立审查和质量关口,(5)管理特派员之间的交流和文物共享.

Agent 工作流

Superpowers

Spec-first,TDD,子代理驱动的软件开发工作流程. 当:(1)构建任何新功能或应用——触发脑暴_计划_子代理执行回路,(2)调试出一个bug或测试失败——触发系统性的根起过程,(3)用户说"让我们构建","帮助我计划","我想添加X",或"这个被打破",(4)完成一个功…