
true-input
★ 90by factory-ai · part of factory-ai/factory-plugins
Background knowledge for droid-control workflows -- not invoked directly. True-input driver mechanics for real terminal emulator automation via headless…
This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.
by factory-ai
Background knowledge for droid-control workflows -- not invoked directly. True-input driver mechanics for real terminal emulator automation via headless…
npx skills add https://github.com/factory-ai/factory-plugins --skill true-input
Download ZIPGitHub90
True-Input Driver
The orchestrator routed you here. Use these mechanics to execute your plan.
Drive a real terminal emulator, injecting keystrokes through the platform's native HID input path. This proves exactly what bytes the terminal emits -- no synthetic injection, no PTY distortion.
When to use
-
Proving that a terminal really sends the sequence you expect (e.g., Ghostty's
Shift+Enter) -
Recording demos that reflect actual terminal rendering
-
Validating that Droid handles a keystroke correctly end-to-end in a specific terminal
If you don't need real terminal proof, use tuistory -- it's faster and more deterministic.
Platform support
Platform Status Driver Read
Linux / Wayland Implemented cage + wtype + any Wayland terminal platforms/linux.md
macOS (QEMU) Implemented QEMU monitor sendkey to a macOS VM platforms/macos.md
Windows (KVM) Implemented virsh send-key to a KVM/QEMU VM platforms/windows.md
Read the platform file for your target OS. Each contains prerequisites, core pattern, command reference, encoding reference, recording, troubleshooting, and recovery -- specific to that platform.
Key differences from tuistory
Concern tuistory true-input
Snapshot source Virtual screen buffer Scrubbed PTY log (Linux) or screenshot (VM platforms)
Wait mechanism Event-driven (screen redraws) Log polling (Linux) or sleep-based (VMs)
Recording Must wrap launch (--record) Can start/stop any time
Keyboard encoding Synthetic (bypasses terminal) Real terminal encoding path
Known dead ends
-
Xvfb + xdotool: bypasses real keyboard processing entirely
-
uinput + Xvfb: Xvfb does not consume kernel input devices
-
SSH for TUI testing: PTY layer distorts input encoding; use SSH only for deployment
-
Raw
asciinema rec: true-input records viawf-recorder(Wayland screen capture), not asciinema. Usetctl --recordortctl record start/stop. Callingasciinema recdirectly has no access to the compositor and produces nothing useful.
npx skills add https://github.com/factory-ai/factory-plugins --skill true-inputRun this in your project — your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.