true-inputот 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

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

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.

NotebookLM Web Importer

Импортируйте веб-страницы и видео YouTube в NotebookLM одним кликом. Более 200 000 пользователей доверяют нам.

Установить расширение Chrome