mcpField
T
true-input

true-input

github.com/factory-aiテスト・品質11782 回インストール3 日前に更新
リポジトリ

true-input について

true-input は、合成入力ではなくプラットフォーム標準のキーボード入力を使って端末の挙動を検証するスキルです。端末が出力するバイト列の確認や実際の表示の録画が必要な開発者向けで、Linux/Wayland、macOS 仮想マシン、Windows 仮想マシンに対応します。

主な機能

  1. 01ネイティブ HID によるキー入力
  2. 02Linux/Wayland、macOS、Windows のドライバー
  3. 03PTY ログまたはスクリーンショットによるスナップショット
  4. 04任意のタイミングで録画を開始・停止
  5. 05プラットフォーム別の設定とトラブルシューティング

活用シーン

  1. 01端末が出力するキーシーケンスの検証
  2. 02実際の端末表示を反映したデモの録画
  3. 03特定の端末での Droid のキー処理をエンドツーエンドでテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/factory-ai/factory-plugins --skill true-input

インストール後、Claude Code で/true-inputを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

platforms/
linux.md
macos.md
windows.md

詳細

True-Input Driver

オーケストレーターがここに誘導しました。この仕組みを使って、計画を実行してください。

実際のターミナルエミュレーターを操作し、プラットフォーム標準のHID入力経路を通じてキー入力を送信します。これにより、ターミナルが出力するバイト列を正確に確認できます。合成入力は使用せず、PTYによる歪みもありません。

使用する場面

  • ターミナルが想定どおりのシーケンスを実際に送信することを証明する場合(例:GhosttyのShift+Enter)
  • 実際のターミナル描画を反映したデモを記録する場合
  • 特定のターミナルで、Droidがキー入力をエンドツーエンドで正しく処理することを検証する場合

実際のターミナルでの証明が不要な場合は、terminal-useのtuistoryバックエンドを使用してください。より高速で、動作も安定しています。

プラットフォームのサポート

プラットフォーム状態ドライバー参照
Linux / Wayland実装済みcage + wtype + 任意のWaylandターミナルplatforms/linux.md
macOS(QEMU)実装済みQEMUモニターのsendkeyでmacOS VMを操作platforms/macos.md
Windows(KVM)実装済みvirsh send-keyでKVM/QEMU VMを操作platforms/windows.md

対象OSのプラットフォームファイルを参照してください。 各ファイルには、そのプラットフォーム固有の前提条件、基本的な手順、コマンドリファレンス、エンコーディングリファレンス、記録方法、トラブルシューティング、復旧方法が記載されています。

tuistoryとの主な違い

項目tuistorytrue-input
スナップショットの取得元仮想スクリーンバッファーサニタイズ済みPTYログ(Linux)またはスクリーンショット(VMプラットフォーム)
待機方法イベント駆動(画面の再描画)ログのポーリング(Linux)またはスリープベース(VM)
記録起動時にラップする必要があります(--record)いつでも開始/停止できます
キーボードのエンコーディング合成(ターミナルを経由しない)実際のターミナルのエンコーディング経路

既知の行き止まり

  • Xvfb + xdotool:実際のキーボード処理を完全に回避します
  • uinput + Xvfb:Xvfbはカーネルの入力デバイスを使用しません
  • TUIテストでのSSH:PTYレイヤーによって入力エンコーディングが歪みます。SSHはデプロイにのみ使用してください
  • 素のasciinema rec:true-inputはasciinemaではなく、wf-recorder(Waylandの画面キャプチャ)を使って記録します。tctl --recordまたはtctl record start/stopを使用してください。asciinema recを直接呼び出してもコンポジターにアクセスできず、役に立つ結果は何も得られません。

コメント