openclaw-session-viewer について
Codex、Claude Code、OpenClaw、Pi のセッション記録を、ブラウザーで表示できる HTML にするスキルです。正規化・生データの出力、全履歴の読み込み、再利用できるファイル選択ビューアーに対応します。
主な機能
- 01対応するセッション記録を HTML 化
- 02正規化と生データの出力モード
- 03再利用可能なファイル選択ビューアー
- 04ツールの入出力をブラウザーで検索
- 05読み込み量の制限と省略警告
活用シーン
- 01ブラウザーでエージェントのセッション記録を確認
- 02共有用にセッション記録を出力
- 03履歴内のツール入出力を検索
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ theangrypit/ theangryskills --skill openclaw-session-viewerインストール後、Claude Code で/openclaw-session-viewerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEMIRROR.mdpackage.jsontsconfig.jsonagents/openai.yamlscripts/html.tsopen-browser.tsread-session.tssession-viewer.test.tssession-viewer.tsstyles.tsscripts/core/detect.tsjsonl.tstypes.tsscripts/importers/claude.tscodex.tspi-openclaw.ts詳細
セッションビューアー
Codex、Claude Code、OpenClaw、Pi のセッションのトランスクリプトをブラウザーで表示、エクスポート、調査、共有するよう求められたときに使用します。
コマンド
セッションのパスが不明で、agent-transcript スキルが利用可能な場合は、まずこのスキルを使って該当する JSONL セッションを探します。
.agents/skills/openclaw-agent-transcript/scripts/agent-transcript find \
--query "$USER_GOAL_OR_TITLE $BRANCH_OR_URL" \
--cwd "$PWD" \
--since-days 14
信頼度が最も高い file の結果を選び、session-viewer でレンダリングします。
このスキルがあるリポジトリから実行します。
node skills/openclaw-session-viewer/scripts/session-viewer.ts <session.jsonl> --out /tmp/session.html --open
便利なモード:
node skills/openclaw-session-viewer/scripts/session-viewer.ts <session.jsonl> --out session.html
node skills/openclaw-session-viewer/scripts/session-viewer.ts <session.jsonl> --raw --out session.html
node skills/openclaw-session-viewer/scripts/session-viewer.ts --blank --out viewer.html --open
共有スキルを .agents/skills の下に同期する下流のリポジトリでは、
skills/openclaw-session-viewer を .agents/skills/openclaw-session-viewer に置き換えます。
デフォルトの動作:
codex、claude、pi-openclawを検出します- 正規化されたセッションデータを 1 つの HTML ファイルに埋め込みます
- ツールの入力/出力テキストを DOM に保持するため、ブラウザー検索で見つけられます
- セッションファイル全体を読み取り、どちらのエクスポートモードでも完全な履歴を保持します
--rawは元の JSONL を埋め込み、ブラウザーで解析できるようにします--blankは再利用可能なファイル選択ビューアーを作成します
明示的に一部のみをエクスポートする場合は、正の整数のバイト数を指定して --max-read-bytes N を使用します(例:8 MiB の場合は --max-read-bytes 8388608)。サイズが上限を超えるファイルでは、先頭と末尾が保持され、CLI とエクスポートされたビューアーに省略の警告が表示されます。切り詰められた境界部分のレコードは省略される場合があります。--raw は保持された JSONL のみを埋め込みます。上限以下のファイルは完全な状態で保持されます。読み取りが短い場合は再試行し、予期しないファイル終端が発生した場合は、完全に読み取ったと報告せずにエクスポートを失敗させます。
このオプトインの読み取り上限は、CLI によるファイルのエクスポートにのみ適用されます。ブラウザーのファイル選択機能は、引き続きファイル全体を読み込みます。
セッションの保存場所
Codex:
find "${CODEX_HOME:-$HOME/.codex}/sessions" -name 'rollout-*.jsonl' -type f | sort
ls -t "${CODEX_HOME:-$HOME/.codex}"/sessions/*/*/*/rollout-*.jsonl | head
OpenClaw/Pi:
AGENT_ID="<agentId>"
SESSION_DIR="${OPENCLAW_STATE_DIR:-$HOME/.openclaw}/agents/$AGENT_ID/sessions"
ls -t "$SESSION_DIR"/*.jsonl | head
find "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}/agents" -path '*/sessions/*.jsonl' -type f | sort
同じディレクトリにある sessions.json を使用して、セッションキーをセッション ID に対応付けます。
Claude Code:
find "$HOME/.claude/projects" -name '*.jsonl' -type f | sort
ls -t "$HOME/.claude/projects"/**/*.jsonl | head
一部の Claude インストールでは、プロジェクト固有のキャッシュフォルダーにもエクスポートされた JSON/JSONL が保存されます。対象リポジトリのパスが親フォルダーに含まれる JSONL のうち、最も新しいものを優先してください。
開発
スクリプトはネイティブの Node TypeScript です。型の消去が可能な形式にしてください。
- 使用可:型、インターフェース、ユニオン、
satisfies - 避けるもの:列挙型、名前空間、デコレーター、パラメーター・プロパティ
- tsconfig のパスエイリアスは使用せず、相対インポートを使用します
インポーターの担当範囲:
scripts/importers/codex.ts:Codex のロールアウト JSONLscripts/importers/claude.ts:Claude Code の JSONLscripts/importers/pi-openclaw.ts:Pi/OpenClaw のセッション JSONL
検証:
npm ci --ignore-scripts
npm run typecheck
node --test skills/openclaw-session-viewer/scripts/session-viewer.test.ts
scripts/validate-skills