remorses/tuistory

TMUX for agents. let agents control & test terminal user interfaces. Like Playwright & agent-browser but for TUIs

何を解決するか

Tuistory は、開発サーバー、REPL、インタラクティブ CLI などの長期間実行されるターミナルプロセスと、ブロッキングせずにやり取りできるようにします。サーバー起動時にエージェントがフリーズしてしまう問題や、プロセスの準備完了を推測するために盲目的な sleep コマンドに頼る必要がある問題を解決します。

動作方法

Tuistory は、リレー・デーモンによって管理される名前付きのバックグラウンドセッションにターミナルコマンドをラップします。このアーキテクチャにより、人間と AI エージェントの両方が同じセッションに接続できます。人間は tmux と同様にインタラクティブにターミナルにアタッチできますが、エージェントは CLI やプログラム API を使ってログの読み取り、特定のテキストパターン(正規表現)の待機、画面のスナップショット取得、プロセスへのキーストローク送信が可能です。

対象ユーザー

  • AI エージェント開発者: 開発サーバーを実行・監視する必要があるコーディングエージェントを開発している人
  • TUI 開発者: 自動化やテストが必要なターミナルユーザーインターフェースを開発している人
  • オートメーションエンジニア: TTY プロセスをプログラム的に制御したい人

特徴

  • 反応型の待機: 盲目的な sleepwaitwait-idle コマンドで置き換え、ターミナル出力に即座に反応します。
  • 共有状態: 人間とエージェントが同じターミナルセッションを共有でき、エージェントが起動したプロセスに人間が介入して操作できます。
  • プログラム制御: PTY を正確に制御できる「ターミナル用 Playwright」ともいえる TypeScript ライブラリを提供します。
  • 視覚的検査: 現在のターミナル画面をテキストスナップショットや PNG 画像としてキャプチャできます。
  • CWD と Env 継承: 呼び出し元シェルの完全な環境と PATH を子プロセスに引き継ぎます。
  • 同一性実行: 既存のセッションに再接続することで、「ポートがすでに使用中」エラーを防ぎ、失敗を回避します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト