Skip to content

agtail とは

ag(ent) + tail — コーディングエージェント(Claude Code、Codex)の履歴を対象としたフォレンジック検索ツールです。

エージェントは便利ですが不透明であり、「あの操作は実際に何をしたのか」を後から再構築するのは困難です。トランスクリプト(~/.claude/projects/**/*.jsonl など)には十分な情報が含まれていますが、3 つの限界があります。(1) 生の JSONL は人間が追える形式ではなく、複数セッションをまたいで grep できません。(2) これはツールが所有する揮発的なデータであり、監査ログではありません。(3) プロジェクトごと、セッションごと、マシンごとに散在しています。

agtail はこれらのギャップを埋めます。散在するトランスクリプトを、ツールやプロジェクトをまたいで grep できる単一の検索可能なプロジェクションへと正規化します。検索こそが目的であり、閲覧は二次的なものです。 全体的な背景については コンセプト を参照してください。

agtail の Web UI: 左側にソースでタグ付けされた統合セッション一覧、右側にセッションごとのタイムライン。

TIP

本ドキュメント全体のスクリーンショットは、小さな架空のサンプルデータセット(「northwind」プロジェクト)を使用しており、誰かの実際の履歴ではありません。生成方法についてはリポジトリ内の docs/screenshots/README.md を参照してください。

インストール不要で試す

Playground は、同じ架空サンプルを使って agtail をブラウザ内だけで動かせます ── 検索・タイムライン・フック・エクスポート/インポート・ターミナル表示まで。アップロードは一切なく、インポートはメモリ上のみでリロードすると消えます。

意図的にオフライン(LiteLLM もバックエンドも呼びません)です。自分の bundle をインポートして閲覧・検索できますが、コストはサンプルのモデル分のみ、プラグイン帰属はサンプルのプラグインのみに制限されます。完全な価格表と自分のプラグインを使うにはローカルで agtail を動かしてください。

必要要件

  • Node.js 20+
  • pnpm
  • 履歴を読みたいエージェント(Claude Code は ~/.claude/projects、Codex は ~/.codex/sessions)

インストールとビルド

sh
pnpm install
pnpm build      # Web SPA(dist-web)と CLI(dist)をビルドします

CLI は node dist/cli/index.js <command>(または agtail を使うなら pnpm link --global)で実行します。

はじめの一歩

sh
# 主要コマンド: すべてのセッションを横断して検索する
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

詳細は CLIWeb UI を参照してください。

スコープと 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 を持ちます)。

sh
cd docs
pnpm install
pnpm dev        # ローカルプレビュー
pnpm build      # 静的サイトを生成する(.vitepress/dist)