agtail とは
ag(ent) + tail — コーディングエージェント(Claude Code、Codex)の履歴を対象としたフォレンジック検索ツールです。
エージェントは便利ですが不透明であり、「あの操作は実際に何をしたのか」を後から再構築するのは困難です。トランスクリプト(~/.claude/projects/**/*.jsonl など)には十分な情報が含まれていますが、3 つの限界があります。(1) 生の JSONL は人間が追える形式ではなく、複数セッションをまたいで grep できません。(2) これはツールが所有する揮発的なデータであり、監査ログではありません。(3) プロジェクトごと、セッションごと、マシンごとに散在しています。
agtail はこれらのギャップを埋めます。散在するトランスクリプトを、ツールやプロジェクトをまたいで grep できる単一の検索可能なプロジェクションへと正規化します。検索こそが目的であり、閲覧は二次的なものです。 全体的な背景については コンセプト を参照してください。

TIP
本ドキュメント全体のスクリーンショットは、小さな架空のサンプルデータセット(「northwind」プロジェクト)を使用しており、誰かの実際の履歴ではありません。生成方法についてはリポジトリ内の docs/screenshots/README.md を参照してください。
インストール不要で試す
Playground は、同じ架空サンプルを使って agtail をブラウザ内だけで動かせます ── 検索・タイムライン・フック・エクスポート/インポート・ターミナル表示まで。アップロードは一切なく、インポートはメモリ上のみでリロードすると消えます。
意図的にオフライン(LiteLLM もバックエンドも呼びません)です。自分の bundle をインポートして閲覧・検索できますが、コストはサンプルのモデル分のみ、プラグイン帰属はサンプルのプラグインのみに制限されます。完全な価格表と自分のプラグインを使うにはローカルで agtail を動かしてください。
必要要件
- Node.js 20+
- pnpm
- 履歴を読みたいエージェント(Claude Code は
~/.claude/projects、Codex は~/.codex/sessions)
インストールとビルド
pnpm install
pnpm build # Web SPA(dist-web)と CLI(dist)をビルドしますCLI は node dist/cli/index.js <command>(または agtail を使うなら pnpm link --global)で実行します。
はじめの一歩
# 主要コマンド: すべてのセッションを横断して検索する
node dist/cli/index.js grep blogsync
# セッションを新しい順に、ソースでタグ付けして一覧表示する
node dist/cli/index.js list
# Web UI を起動する(127.0.0.1 のみ)
node dist/cli/index.js serve
# → http://127.0.0.1:8765スコープと non-goals
agtail は ローカル・ゼロ設定・読み取り専用のフォレンジックビューア。横断ブラウズや 全文検索は前提(table stakes)で、真価は 深さ ── メッセージやツール呼び出しの先にある 実行メカニクス を保存済みトランスクリプトから再構成する: hook 発火(PreToolUse / PostToolUse / Stop)、subagent(Task) の入れ子、plugin 帰属、SDK/programmatic 起源 を、 後追いで・計装なしに。意図的に 観測(observability)ツールではありません。以下はやらない 方針です:
- fleet メトリクス/ダッシュボード/アラートの収集 — それは OpenTelemetry → Datadog/Grafana の仕事(agtail と OpenTelemetry の違い 参照);
- リアルタイム監視やテレメトリ配信;
- マシン間で履歴を継続同期すること — import/export は 証拠のポータビリティ(持ち運べる出所つきの記録)であって同期ではない(生の同期は
git/rsyncで); - skills の第一級化や、transcript に無い内容の追跡。
トークン・ツール・モデルの情報は、セッションを読むための補助であって、メトリクス面では ありません。新しいエージェントは in-tree アダプタ(transcript を agtail の正規化モデルに 写す小さなパーサ。アダプタ 参照)として追加し、--dir <agent>=<path> は 既知のエージェントを既定以外のセッションルートに向けるフラグです。
本ドキュメントについて
ドキュメントサイトはアプリとは独立して管理されています(docs/ 配下に独自の package.json を持ちます)。
cd docs
pnpm install
pnpm dev # ローカルプレビュー
pnpm build # 静的サイトを生成する(.vitepress/dist)