true-input について
true-input は、合成入力ではなくプラットフォーム標準のキーボード入力を使って端末の挙動を検証するスキルです。端末が出力するバイト列の確認や実際の表示の録画が必要な開発者向けで、Linux/Wayland、macOS 仮想マシン、Windows 仮想マシンに対応します。
主な機能
- 01ネイティブ HID によるキー入力
- 02Linux/Wayland、macOS、Windows のドライバー
- 03PTY ログまたはスクリーンショットによるスナップショット
- 04任意のタイミングで録画を開始・停止
- 05プラットフォーム別の設定とトラブルシューティング
活用シーン
- 01端末が出力するキーシーケンスの検証
- 02実際の端末表示を反映したデモの録画
- 03特定の端末での Droid のキー処理をエンドツーエンドでテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ factory-ai/ factory-plugins --skill true-inputインストール後、Claude Code で/true-inputを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
platforms/linux.mdmacos.mdwindows.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との主な違い
| 項目 | tuistory | true-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を直接呼び出してもコンポジターにアクセスできず、役に立つ結果は何も得られません。
コメント
Markdown 対応