結構Claude Codeを使っているのですが使えば使うほど過去のセッションを探すのが大変になってきた。
「あの実装、どのセッションでやったっけ?」と経験をしぬほどやってきています。
セッションの情報はは~/.claude/projects/
以下にJSONL形式で保存されているけれど、プロジェクトごとに分かれているし、ファイル名に情報がないので中身が分からない。
そこで作ったのがccsearch
ccsearchとは
ccsearchはClaude CLIのセッション履歴を検索・管理するツールだ。npmで簡単にインストールできる。
インストールしたくない場合はnpxでも使える。
※大抵はnpxで使うんだろうなという想定をしています。
実行すると、ブラウザでWebUIが開く。ここから過去のセッションを検索したり、エクスポートしたりできる。
主な機能
1. 全文検索
おそらくほとんどの人はこの機能しか使わない。すべてのプロジェクトを横断して、セッション内容を検索できる。
また、Claudeが実行したツールの結果(ファイルの内容など)も検索対象に含まれる。これが意外と便利で、「あのコードどこで見たっけ」というときに見つかることが多い。
2. エクスポート/インポート
チームメンバーとセッションを共有したいことがよくある。「このセッション見て」と言えるのは便利だ。
エクスポートはプロジェクト単位でも、最新のn件でもできる。インポートした内容はローカルのセッションと混ざらないよう、別モードで閲覧できるようにしている。
3. セッションを引き継ぐためにClaude Codeのコマンドを発行
上記のCLIをコピーボタンを押すとclaude -r "f7b12123-ed4c-4803-9141-17ded76a54a3" ""
のようなコマンドがクリップボードにコピーされる。
ターミナル上に貼り付ければセッションに戻ることができます。
CLIモードでの使い方
ccsearchはWebUIだけでなく、CLIからも使える。ターミナルで完結したい人や、スクリプトに組み込みたい人向けの機能だ。
基本的な使い方
何もオプションを指定しないと、WebUIが起動する。
exportコマンド
セッションをJSON形式でエクスポートできる。チームでの共有やバックアップに便利だ。
npx ccsearch@latest export
npx ccsearch@latest export -o my-sessions.json
npx ccsearch@latest export -l 10
npx ccsearch@latest export -p github.com/suthio/ccsearch
npx ccsearch@latest export -i
インタラクティブモード(-i
オプション)は特に便利で、セッション一覧が表示されて、エクスポートしたいものを番号で選べる。「1,3,5」のようにカンマ区切りで複数選択もできる。
エクスポートされるJSONには以下の情報が含まれる。
- セッションの内容(メッセージ履歴)
- メタデータ(作成日時、更新日時)
- プロジェクト情報(GitHubリポジトリの場合は簡略化されたパス)
- エクスポート情報(日時、プラットフォーム、バージョン)
searchコマンド
CLIから直接セッションを検索できる。
npx ccsearch@latest search "API"
npx ccsearch@latest search "バグ修正" -p /Users/me/myproject
npx ccsearch@latest search "Claude Code エラー"
検索対象は以下の通り。
- セッションタイトル
- メッセージ内容
- プロジェクトパス
オプション一覧
グローバルオプション:
-
--version
: バージョン表示 -
--help
: ヘルプ表示 -
--port
: WebUIのポート番号指定
exportコマンドのオプション:
-
-o, --output
: 出力ファイル名(デフォルト: ccsearch-export.json) -
-p, --project
: プロジェクトでフィルタ -
-l, --last
: 最新n件のみエクスポート -
-i, --interactive
: インタラクティブモード
searchコマンドのオプション:
-
-p, --project
: プロジェクトでフィルタ
活用例
僕がよく使うパターンをいくつか紹介する。
ccsearch export -l 30 -o weekly-report.json
ccsearch search "エラー" -p github.com/suthio/myapp
CLIモードは自動化に向いている。例えば、cronで定期的にバックアップを取ったり、特定のキーワードを含むセッションを監視したりできる。
Claude Code内でccsearchを起動して操作する際に便利
技術的な実装
使ってみて
週に何度かは使っている。特に便利なのは以下のシーン。
- 過去のセッションを探すとき: 「あの機能どうやって実装してもらったっけ」がすぐ見つかる
- チームメンバーに共有するとき: セッションをエクスポートして「これ見て」と言える
- 週次の振り返り: 今週何をやったか、exportしてClaude Codeにまとめさせると便利
Claude Codeを使い倒している人には、ぜひ試してもらいたいなと思います。
興味がある人は、使ってもらいたいです。GitHubにてIssueやPRも歓迎しています。
Views: 0