true-input

v2026.09.24

Background knowledge for droid-control workflows -- not invoked directly. True-input driver mechanics for real terminal emulator automation via headless Wayland compositor.

GitHub
Install command
npx skhub add factory-ai/true-input
Markdown
SKILL.md

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 the tuistory backend in terminal-use -- it's faster and more deterministic.

Platform support

PlatformStatusDriverRead
Linux / WaylandImplementedcage + wtype + any Wayland terminalplatforms/linux.md
macOS (QEMU)ImplementedQEMU monitor sendkey to a macOS VMplatforms/macos.md
Windows (KVM)Implementedvirsh send-key to a KVM/QEMU VMplatforms/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

Concerntuistorytrue-input
Snapshot sourceVirtual screen bufferScrubbed PTY log (Linux) or screenshot (VM platforms)
Wait mechanismEvent-driven (screen redraws)Log polling (Linux) or sleep-based (VMs)
RecordingMust wrap launch (--record)Can start/stop any time
Keyboard encodingSynthetic (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 via wf-recorder (Wayland screen capture), not asciinema. Use tctl --record or tctl record start/stop. Calling asciinema rec directly has no access to the compositor and produces nothing useful.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

plugins/droid-control/skills/true-input

Default branch

master

Latest commit

d362dc1

Tree SHA

8ba2de2