mcpbeat

True Input

factory-ai/true-input

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

4k tokens
context cost
the whole folder, loaded on every use
4
files
instructions only
0
copies elsewhere
how many repositories repackaged it
101
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Factory-AI/factory-plugins --skill true-input

What comes with it

12 018 bytes besides the instruction
platforms/linux.md
platforms/macos.md
platforms/windows.md

The instruction itself

5 sections, as written by the author

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 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.

How to use it

Copy the folder

Take factory-ai/true-input from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.