
ターミナルの出力は、必要な情報があるのに長すぎる。特にテスト失敗やビルドエラーのとき、欲しいのは「どこで落ちたか」と「その前後」だけです。
そこで試したのがAISH公式サイト で紹介されているAISH(PTY-first shell wrapper / “signal, not noise”)です。AISHリポジトリ のREADMEを見ると、PTY(擬似端末)でコマンドを実行しつつ、出力を完全保存し、デフォルトは要約だけ出す設計になっています。
このツールは「AIが読むための出力設計」ではなく、「人間が読むべき場所だけ残す」ための設計です。ログを削らずに残しつつ、読むべき場所だけ短く出す。ここが一番の価値だと思います。
AISHとは?
AISHは、コマンドの出力を必ず全部保存し、表示は要点だけに絞るCLI(コマンドラインインターフェイス)です。
ポイントは次の2つです。
- PTY(擬似端末)で実行するので、色やプログレスバーが壊れない
- 失敗時は「関係がある区間だけ」を抽出して表示する
READMEでは、pytest/jest/cargoなどのツールごとに「失敗区間の抽出パターン(detector、失敗の検出ルール)」を持つと書かれています。汎用grepでは拾えない「要点だけの失敗ログ」を作るのが狙いです。
仕組みのざっくり理解
実行時、AISHは以下を行います。
- コマンドをPTYで実行する
- 出力をフルで保存する(
pty.log) - digest(要約)やrelevant(関連部分)を作る
ログ保存先は、デフォルトで ~/.local/state/aish/runs/<date>/<run-id>/ です。ここに meta.json、pty.log、digest.txt、relevant.txt が作られます。
stdout/stderr分離とは別の解き方
CLIの出力設計の解として有名なのは「stdout(標準出力)= 結果、stderr(標準エラー出力)= ログ」に厳格に分離する方法です。実際、私は別記事「CLIの出力設計を間違えると、AIエージェントは何も読めない: agent-execが採用した分離戦略 」で、その重要性をまとめました。
一方AISHは、そこを主戦場にしません。AISHの価値は「出力を混ぜない」よりも、「混ざっていても(長くても)全部保存して、あとから読むべき断面だけ抽出できる」ことです。
つまりAISHは、stdout/stderrの分離を前提にしないログにも効きます。人間が詰まるのはパースの手前で、まず「読む場所がわからない」からです。AISHはそこを最短距離で潰してくれます。
インストール
以下は、Cargo(Rustのパッケージマネージャ)でAISHをインストールする手順です。
目的: AISHのCLI(aish-run)をローカルに入れます。
前提: RustとCargoが入っていること。
やること: リポジトリ内の crates/aish-run からビルド・インストールします。
確認: aish-run --help が表示されれば成功です。
| |
※ リポジトリをクローンしたディレクトリで実行してください。
基本の使い方
一番シンプルな使い方は、aish-run でコマンドを包むことです。
目的: AISHでコマンドを実行し、要約出力を体験します。
前提: aish-run がインストール済み。
やること: echo hello をPTYで実行します。
確認: コマンド結果がdigest形式で表示されます。
| |
出力モードを切り替える
AISHには出力モードがあります。--show で切り替え可能です。
目的: 失敗時の“該当区間だけ抽出”を試します。
前提: aish-run がインストール済み。
やること: 失敗するコマンドを実行し、excerpt を表示します。
確認: 失敗に関係する部分だけが表示されます。
| |
他にも digest / full / quiet があり、full は通常のライブ出力、digest は要約、quiet はほぼ何も表示しません。
直近ログをすぐ開く
「さっきの失敗ログだけ見たい」というときは、--last と --open が便利です。
目的: 直近のログをすぐ確認します。
前提: 直前にAISHでコマンドを実行済み。
やること: --last で関連部分、--open でフルログを開きます。
確認: relevant.txt または digest.txt が表示されます。
| |
使ってみて良いと思った点
- PTY実行なので、進捗バーや色が壊れない
- 要約とフルログが分離されているので、読むべき場所が明確
- 保存先が一定なので、CI/ローカル問わずログ追跡が楽
ログが長いツールほど、AISHの価値が上がる印象です。
注意点
- まだMVP段階のため、ツールごとの検出精度は今後改善される予定
aish-runはRust製で、ソースからのインストールが基本
とはいえ、設計思想として「保存と表示の分離」はかなり強いと感じました。
まとめ
AISHは「ログは全部必要だが、読むのは一部だけ」という現実に対して、PTY実行 + 全ログ保存 + 要約表示で答えています。
次のアクションとしては、以下がおすすめです。
- 自分のプロジェクトのテスト/ビルドで
aish-run --show excerptを試す --lastと--openの運用をセットで覚えるdocs/CONFIG_REFERENCE.mdを読んで、CI向け設定を検討する