agent-sessions について
Agent Sessionsは、複数のコーディングエージェントの会話履歴を検索・閲覧するCLIスキルと関連ビューアーを提供します。フィルタリング、検索、長さを制限したコンテキストパック、会話の抜粋に対応し、過去の作業の確認や再開に使えます。
主な機能
- 01対応エージェント間でのセッション検索
- 02エージェントとプロジェクトによる絞り込み
- 03長さを制限したコンテキストパックの生成
- 04検索に合致する会話抜粋の取得
- 05TUIによるClaudeセッションの閲覧
活用シーン
- 01プロジェクトの最近の会話を探す
- 02作業再開前に過去のコンテキストを取得
- 03セッションの比較や特定トピックの抜粋確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vladmdgolam/ agent-skills --skill agent-sessionsインストール後、Claude Code で/agent-sessionsを入力して読み込まれたか確認します。
詳細
エージェントセッション
Claude Code、Codex CLI、Gemini CLI、opencode、Hermes Agent、Cline CLI の AI コーディングエージェントの会話履歴を検索、管理します。
$ARGUMENTS
スキルパスの解決
スキルカタログに r0/agent-sessions/SKILL.md のようなパスが表示されている場合、r0 はスキルルートのエイリアスとして扱い、まず現在のセッションの Skill roots テーブルから解決してください。エイリアスをそのままファイルシステムパスの先頭に付けないでください。解決後のパスは次のとおりです。
<resolved-skill-root>/agent-sessions/SKILL.md
インストールされたコピーはソースリポジトリへのシンボリックリンクの場合があります。スキルを編集または再インストールする前に、解決後のリンク先を確認してください。
利用可能なツール
CLI:agent-sessions
/Users/vladmdgolam/Play/radar/tools/agent-sessions にあります。サポート対象のすべてのエージェントからセッションデータを読み取る Python 3 スクリプトです。
# List all recent sessions (default 30)
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions
# Filter by agent
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --agent claude
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --agent codex
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --agent gemini
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --agent opencode
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --agent hermes
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --agent cline
# Title/prompt search first (AND logic, case-insensitive; token-efficient)
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --search "metal shader" --search-scope titles --limit 10
# Deep full-transcript search only when title/prompt search misses
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --search "metal shader" --search-scope full --limit 10
# Filter by project name or path
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --project radar
# Combine filters
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --agent claude --project aino --search "auth" --search-scope titles --limit 10
# Compact JSON output (for parsing; omits full transcript search_text)
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --json --limit 10
# Include full transcript search_text only if you need client-side full-text search
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --json --include-search-text --limit 10
# Copy compact context for one or more sessions
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --context <session-id>
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --context <id-1> <id-2>
# Build a compact evidence pack for one or more sessions
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --pack <id-1> <id-2> --max-chars 5000
# Read bounded excerpts, optionally around a topic/query
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --read <id-1> <id-2> --query "logo rotation" --max-chars 5000
# Extract only the user's messages
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --read <id-1> <id-2> --role user --max-chars 5000
# Resume a Claude Code session
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --resume <session-id>
# Control result count; prefer small limits unless the user asks for a broad scan
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --limit 10
TUI:claude-history
~/.local/bin/claude-history にあります。Claude Code のセッションのみを対象とする、Rust ベースのファジー検索 TUI です。
# Interactive fuzzy search across all Claude sessions
claude-history
# Scoped to current project
claude-history --local
# View a specific session file
claude-history /path/to/session.jsonl
# Resume selected session
claude-history --resume
# Fork from a past session
claude-history --fork-session
GUI:Claude Code History Viewer(CCHV)
/Applications/Claude Code History Viewer.app にあるデスクトップアプリです。分析、コスト追跡、全文検索に対応し、7 つのエージェント(Claude、Codex、Gemini、Cursor、Cline、Aider、OpenCode)をサポートします。
open "/Applications/Claude Code History Viewer.app"
データソース
| エージェント | 保存場所 | 形式 |
|---|---|---|
| Claude Code | ~/.claude/projects/<encoded>/*.jsonl | type、message、cwd、sessionId、timestamp を含む JSONL |
| Codex | ~/.codex/state_5.sqlite + ~/.codex/thread_history_1.sqlite。古いロールアウトや移行がスキップされたロールアウトは ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl にあります | threads メタデータと thread_items メッセージを含む SQLite。レガシー JSONL へのフォールバックあり |
| Gemini CLI | ~/.gemini/tmp/*/chats/session-*.json | sessionId、startTime、messages[] 配列を含む JSON |
| opencode | ~/.local/share/opencode/opencode.db | SQLite テーブル:session、message、part、project |
| Hermes Agent | ~/.hermes/state.db | SQLite テーブル:sessions、messages |
| Cline CLI | ~/.cline/data/db/sessions.db + ~/.cline/data/sessions/*/*.messages.json | SQLite セッションインデックスと JSON メッセージのトランスクリプト |
Gemini のプロジェクト対応付け:~/.gemini/projects.json は絶対パスをプロジェクト名に対応付けます。
cline --data-dir <path> で作成された Cline セッションを含めるには、AGENT_SESSIONS_CLINE_DATA_DIRS にコロン区切りのパス一覧を設定します。
Codex は通常、これらのデータベースを ~/.codex に保存します。Codex がカスタムホームディレクトリを使用している場合は、CODEX_HOME を設定してください。CLI と Sharingan リーダーはこの設定に従います。Codex の legacy_to_paginated_v1 移行により、スレッドのメタデータとトランスクリプトは 2 つの SQLite データベースに移され、正常に移行されたロールアウト JSONL は削除されました。CLI は引き続き、移行でスキップされたセッションの残りのロールアウトファイルをスキャンし、SQLite のスレッド ID と重複しないようにします。SQLite の読み取りは読み取り専用です。CLI はキャッシュの更新時に WAL サイドカーファイルも確認します。
ワークフロー
最初に行うこと:手作業で探し回らない
ユーザーがエージェントの会話を読んだり、続きを行ったり、要約、比較、調査したりするよう求めた場合は、まずこの CLI を使ってください。この CLI で問題が発生しない限り、広範囲な find ~、手動での SQLite クエリ、稼働中のエージェントデータベースのコピーから始めないでください。
明示的なセッション ID がある場合は、直接パックを取得します。
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --pack <session-id> --max-chars 8000
「このフォルダー/プロジェクトの最新の会話」の場合:
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --project "$PWD" --limit 5
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --pack <top-session-id> --max-chars 8000
「最後のメッセージ」や「どこまで進んだか」を知りたい場合は、まず --pack を使ってください。最近の抜粋を含めるよう設計されています。特定の内容をさらに確認するには --read --query "topic" を使います。
トークン効率のよい検索手順
まずは必要最小限の出力を使います。
- テーブル形式の出力に小さな上限を指定して開始します:
--limit 10。 - ユーザーから手がかりが示されている場合は、
--agentや--projectを追加します。 - まずタイトルとプロンプトを検索します:
--search "query" --search-scope titles。 - タイトル検索で見つからなかった場合に限り、
--search-scope fullに切り替えます。 - 構造化データの解析が必要な場合に限り
--jsonを使います。デフォルトではコンパクトな出力です。 - UI/クライアント側のインデックスを構築する場合、またはトランスクリプトのテキストを明示的に調べる場合を除き、
--include-search-textは使わないでください。 - 引き継ぎ用のコンテキストには、JSON 全体を貼り付ける代わりに
--context <id...>を使います。 - ユーザーがセッション参照を示し、それらに基づく比較、推論、要約、結論を求めている場合は、まず
--pack <id...>を実行します。 - パックの範囲が広すぎる場合や、ユーザーがトピックを示している場合は、
--read <id...> --query "topic"を実行して、関連する抜粋を取得します。 - ユーザー自身のプロンプト/メッセージだけを求めている場合は、
--role userを追加します。
過去の会話を見つける
- 適切なフィルターを指定して
agent-sessionsを実行し、セッションを見つけます - コンパクトな引き継ぎブロックが必要な場合は、
--context <session-id>を使います - Claude のセッションの場合:
claude --resume <id>で続行するか、claude-historyで参照します - エージェントの会話全体を見るには、CCHV を開きます
提供されたセッション参照を読む
ユーザーが次のようなブロックを貼り付けた場合:
agent: codex
session id: 019ee05b-25d6-7153-83af-aee3a848e472
session title: ...
ID を抽出し、次のコマンドから始めます:
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --pack 019ee05b-25d6-7153-83af-aee3a848e472 <other-id> --max-chars 5000
複数セッションにまたがる結論の根拠にはパックを使います。ユーザーが特定のトピックについて尋ねている場合は、次を使います:
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --read <id-1> <id-2> --query "topic terms" --max-chars 5000
ユーザー自身のメッセージ/プロンプトだけが必要な場合は、次を使います:
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --read <id-1> <id-2> --role user --max-chars 5000
網羅的な確認を明示的に求められた場合を除き、トランスクリプト全体を出力するのは避けてください。
「何に取り組んでいたか?」に答える
# Recent activity across all agents
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --limit 20
# Specific project
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --project bloom-metal --limit 20
# Specific agent
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --agent codex --limit 20
セッションを再開する
# Find the session
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --search "shader bug" --search-scope titles --agent claude --limit 10
# Resume it (Claude only)
python3 /Users/vladmdgolam/Play/radar/tools/agent-sessions --resume <session-id>
# This execs into: claude --resume <session-id>
JSON 出力スキーマ
--json を使う場合、各セッションオブジェクトには次の内容が含まれます:
{
"agent": "claude|codex|gemini|opencode|hermes|cline",
"session_id": "uuid",
"prompt": "first user message (truncated to 120 chars)",
"timestamp": "ISO 8601",
"project_path": "/absolute/path/to/project",
"project_name": "project-dir-name",
"session_file": "/path/to/session/file"
}
--json では、デフォルトで search_text は省略されます。全文インデックス作成/検索クライアントでのみ --include-search-text を指定してください。
コンテキスト出力
--context <session-id> は、貼り付けやすいコンパクトなコンテキストを出力します:
agent: opencode
session id: n
session title: K
複数の ID を指定すると、同じフィールドを含むリストが出力されます。
パックと読み取りの出力
--pack <id...> は、セッションごとに上限付きの根拠パックを出力します。内容はメタデータ、概要、主要なユーザーの依頼、最近の抜粋またはクエリに関連する抜粋です。
--read <id...> は、上限付きのトランスクリプト抜粋を出力します。長いトランスクリプトでは、最初に概要を把握するための抜粋に加えて、末尾に Recent Excerpts を含めるため、「最後のメッセージ」が押し出されません。広範な抜粋ではなく、関連する一致箇所の前後のメッセージを取得するには、--query "terms" を追加します。
ユーザーメッセージだけを出力/検索するには --role user、アシスタントのみの抜粋には --role assistant を追加します。デフォルトは --role all です。
便利なオプション:
--role user # only user messages
--max-chars 5000 # approximate excerpt budget per session
--last-turns 8 # recent messages included in packs/overflow reads
--context-messages 2 # messages before/after each query match