File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # CCS - Claude Code Search
2+
3+ ## Overview
4+
5+ CLI tool to search and resume Claude Code conversations using fzf.
6+
7+ ## Development
8+
9+ ### Build & Test
10+
11+ ``` bash
12+ go build -o ccs .
13+ go test -v -cover
14+ ```
15+
16+ ### Install locally
17+
18+ ``` bash
19+ cp ccs /usr/local/bin/ccs
20+ ```
21+
22+ ## Release Process
23+
24+ 1 . Update version in ` main.go ` :
25+ ``` go
26+ const version = " X.Y.Z"
27+ ```
28+
29+ 2 . Commit changes:
30+ ``` bash
31+ git add -A && git commit -m " feat/fix: description"
32+ ```
33+
34+ 3 . Push and tag:
35+ ``` bash
36+ git push
37+ git tag vX.Y.Z
38+ git push origin vX.Y.Z
39+ ```
40+
41+ 4 . CI will run tests, then release via GoReleaser and update Homebrew tap
42+
43+ ## Version Bumping
44+
45+ - ** Patch** (0.0.X): Bug fixes, minor tweaks
46+ - ** Minor** (0.X.0): New features, backwards compatible
47+ - ** Major** (X.0.0): Breaking changes
48+
49+ ## Architecture
50+
51+ - ` main.go ` - Single file containing all logic
52+ - ` main_test.go ` - Unit tests
53+ - ` .goreleaser.yaml ` - Release configuration
54+ - ` .github/workflows/test.yaml ` - CI test workflow (reusable)
55+ - ` .github/workflows/release.yaml ` - Release workflow (calls test.yaml)
56+
57+ ## Key Functions
58+
59+ - ` getConversations() ` - Loads all conversations from ` ~/.claude/projects/ `
60+ - ` buildSearchLines() ` - Creates fzf-compatible search lines (one per conversation)
61+ - ` showPreview() ` - Renders preview with matches highlighted
62+ - ` parseConversationFile() ` - Parses JSONL conversation files
63+
64+ ## Conventions
65+
66+ - Use conventional commits (feat:, fix:, docs:, etc.)
67+ - Run tests before releasing
68+ - Keep it simple - single file is fine for this project
You can’t perform that action at this time.
0 commit comments