About true-input
true-input is a skill for testing terminal behavior through real platform keyboard input rather than synthetic injection. It suits developers who need to verify emitted bytes or record terminal behavior across Linux/Wayland, macOS virtual machines, and Windows virtual machines.
Key features
- 01Native HID keystroke input
- 02Linux/Wayland, macOS, and Windows drivers
- 03PTY-log or screenshot snapshots
- 04Recordings can start or stop at any time
- 05Platform-specific setup and troubleshooting
Use cases
- 01Verify a terminal’s emitted key sequence
- 02Record demos of actual terminal rendering
- 03Test Droid keystrokes end to end in a terminal
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ factory-ai/ factory-plugins --skill true-inputAfter installing, type/true-inputin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
platforms/linux.mdmacos.mdwindows.mdDetails
From the project READMETrue-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 the tuistory backend in terminal-use -- 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.