Skip to content

インポート / エクスポート

トランスクリプトはマシンごとに存在します。agtail は一連のセッションを 1 つのポータブルな JSON バンドルにエクスポートし、別のマシンでインポートできます。これにより、単一のビューアで複数マシンを横断検索したり、1 人の監査者が複数人の履歴を並べてレビューしたりできます。

これは**履歴同期ではなく「証拠のポータビリティ」**と捉えてください。目的は 共有・レビューできる記録他マシン/他人のセッションを出所(provenance)タグ付きの証拠として取り込む こと(1 箇所で検索可能にする)。生の transcript dir を git/rsync で運ぶことに対する優位は、正規化・collection の出所・(予定の)秘匿化であって、履歴を継続同期することは目的ではありません(それは git/rsync で)。

バンドルは生の内容を含む

現状のエクスポートバンドルは各トランスクリプトの**生の内容(秘密情報を含む)**を持ちます。プレーンで diff 可能な JSON なので、共有前に中身を確認・秘匿化してください。バンドル内の秘密を伏字化する masked export(--mask)は予定していますが、それまではバンドルを機微情報として扱ってください。

エクスポート

エクスポートは、あなたの native(ローカルの、インポートされていない)セッションを 1 つの JSON ファイルにまとめます。

sh
# everything, to a file
agtail export -o my-sessions.json

# a filtered subset (same filters as grep): only these become a bundle
agtail export --query deploy --tool Bash --since 2026-06-01 -o deploy-audit.json
agtail export --agent codex --cwd northwind-web -o web.json

Web UI では、リストヘッダーの Export アクションが同じ処理を行います。Export all、または検索 / フィルタがアクティブな場合は Export results(フィルタはサーバー側で上限なく再実行されるため、バンドルはフィルタした内容と正確に一致します)。

バンドルは、各トランスクリプトの相対パスと内容を保持するプレーンな JSON ドキュメント({ agtailExport: 1, created, files: [...] })です。差分を取りやすく、共有前に内容を確認しても安全です。

インポート

インポートは、バンドルのセッションを 2 つの宛先のいずれかに書き込みます:

宛先書き込み先用途
agtail(デフォルト)agtail 独自のインポートストア。名前付きコレクションにグループ化される自分のエージェントに触れずに他のマシンを閲覧 / 監査する
native実際のエージェントディレクトリ(~/.claude/projects、…)新しいマシンに自分のセッションを復元する
sh
# default: into the agtail store, collection "imported"
agtail import my-sessions.json

# into a named collection (one per person/machine you audit)
agtail import alice.json --name alice

# restore into the real agent dirs (your own sessions, new laptop)
agtail import my-sessions.json --to native

# allow overwriting files that already exist at the destination
agtail import my-sessions.json --overwrite

--overwrite がない場合、既に存在するファイルはスキップされ、コマンドは書き込まれた数とスキップされた数を報告します。宛先の外へ抜け出す(.. による)バンドルのパスは拒否され、書き込まれることはありません。

native + overwrite(要注意)

--to native --overwrite は、稼働中のエージェントディレクトリに書き込み、かつ既存のファイルを置き換えます。これは実際の履歴を上書きしてしまう可能性のある唯一の組み合わせです。このため Web UI は、明示的な確認の背後にこの操作をゲートします。

コレクションとソース切替

agtail ストアへのインポートはコレクションimported/<collection>/<agent>/…)にグループ化され、複数のソースを区別できます。各コレクションは 1 人の人物または 1 台のマシンです。

  • agtail sources は、コレクションとそのセッション数を一覧表示します。
  • Web UI では、ソース切替(ソーススイッチャー)(インポートが 1 つ以上あると表示されます)が、ビュー全体を All sourcesLocal(このマシン自身のセッション)、または 1 つのコレクションにスコープします。

インポートされたセッションは、エージェントが再開する可能性のあるローカル履歴になりすまさないようにタグ付けされます。これらは native ディレクトリの外に存在し、リスト上で目に見える形でマークされます。