◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-07-15上級

無人実行のログを読める形に保つ — axScreenReader のプレーンテキスト描画を計測して常用に切り替える

Claude Code の出力をログへ落とすと、制御列と再描画で膨らみ後から追えなくなります。axScreenReader のプレーンテキスト描画を3経路で有効化し、同一タスクを計測して常用へ切り替えるまでの実装と判断を記録します。

Claude Code265axScreenReaderログ設計5無人実行6ターミナル

✦ プレミアム記事

夜間に走らせたタスクが失敗していて、朝いちばんにログを開きました。

そこにあったのは、同じ行が何十回も繰り返された 400KB 近いテキストでした。スピナーが回った跡、進捗表示が上書きされた跡、色を付けるための制御列。肝心の「どのコマンドで、どう転んだのか」は、その堆積のどこかに埋もれていました。

grep で絞り込もうとしても、同じツール呼び出しが何度もヒットします。実際に走ったのが9回なのか37回なのかすら、その場では判断できませんでした。

個人開発で夜間に複数サイト分の処理を任せていると、朝のログが読めるかどうかは、その日に手を動かせる時間へそのまま跳ね返ります。原因の切り分けに1時間かかるなら、それは失敗の代償ではなく、記録のしかたの代償です。

原因は Claude Code の出力内容ではなく、描画のしかたにありました。2026-07-15 の更新で入った axScreenReader(プレーンテキスト描画への切り替え)は、支援技術のための設定として案内されていますが、無人実行のログを読める形に保つ道具としても、そのまま効きます。

ログが膨らむ理由は、内容ではなく描画にある

Claude Code のターミナル表示は、行を「追記」しているのではありません。カーソルを戻し、既に書いた領域を消し、書き直しています。人が画面を見ている間はこれが最適です。進捗が一箇所で更新され、視線が動かずに済みます。

ところがその過程は、パイプの先では全て履歴として残ります。カーソル移動 ESC[A、行消去 ESC[2K、色指定 ESC[38;5;…m。スピナーが1秒間に10回描き直せば、10行分の痕跡がログに積まれます。

つまりログの肥大は「Claude が喋りすぎた」のではなく、「画面のために10回書き直した工程が、そのまま記録された」結果です。ここを取り違えると、--output-format を変えたり出力を減らそうとしたりと、見当違いの方向に手が伸びます。私自身、最初はまさにそれをやりました。モデルに喋らせすぎたのだと思い込み、減らすべきものが無い場所を探していたわけです。

切り分けの方法ははっきりしています。制御列を除去した本文と、除去前の生バイトを別々に数えることです。

axScreenReader を有効にする3つの経路と、選び方

有効化の入口は3つあります。どれか1つで切り替わりますが、適用範囲が違うので、用途で選びます。

経路指定適用範囲向いている場面
CLI フラグ claude --ax-screen-reader その起動のみ 単発の再現・条件を揃えた比較計測
環境変数 CLAUDE_AX_SCREEN_READER=1 そのプロセスと、そこから派生する子プロセス CI・スケジュール実行のラッパー(呼び出し側を書き換えずに済む)
settings "axScreenReader": true その設定が読まれる全ての起動 無人実行に専念させている端末・コンテナ

私は環境変数を主に使っています。無人実行のラッパースクリプトは既にあり、そこに1行足すだけで、有人でターミナルを開いたときの表示は今まで通りに保てるからです。settings に書くと端末全体の既定が動くため、同じマシンで手作業もする場合は迷いが増えます。

判断の軸は「どの範囲まで巻き込みたいか」です。比較したいだけならフラグ、無人の系統だけを変えたいなら環境変数、その端末がもう無人専用ならば settings、という順で考えると迷いません。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦TUI の再描画と制御列がログを膨らませる仕組みと、それを計測で切り分ける手順
✦axScreenReader を有効にする3経路(フラグ・環境変数・settings)の適用範囲と使い分け
✦プレーンテキスト出力を行指向で台帳に畳み、無人実行の失敗を後から追える形に残す実装
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⟐ Claude Code2026-09-12
巡回タスクが朝まで返らなかった原因は、WebFetch の待ち時間に上限がなかったことでした
Claude Code v2.1.268 で WebFetch に 300 秒の期限が付きました。応答を閉じないサーバーに当たると無人実行がどこで止まるのか、CLAUDE_CODE_WEBFETCH_DEADLINE_MS の 0 がなぜ「待たない」ではないのかを、手元で再現できる形で整理します。
⟐ Claude Code2026-09-05
拒否ルールが見ていたのはファイル名で、そこへ届く経路ではありませんでした
deny に書いた 1 行が、同じファイルへ届く別の書き方を素通りさせていました。経路を機械的に並べて、版を上げた日に効きを確かめる小さな検査表の作り方をお伝えします。
⟐ Claude Code2026-09-03
ログのタイムゾーンを表示で寄せるか、記録で固定するか
AdMob とストアのレポートと手元のログで一日の切れ目がずれていました。表示側に寄せる方法と記録側を固定する方法を、実際に往復して選び直した判断の記録です。