true-input
作者: factory-ai
用于droid-control工作流的背景知识——不直接调用。通过无头方式实现真实终端模拟器自动化的true-input驱动机制…
npx skills add https://github.com/factory-ai/factory-plugins --skill true-inputTrue-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.
来自 factory-ai 的更多技能
full-stack-playbook
factory-ai
本手册指导您完成全栈Web应用程序任务的执行。适用于CRUD应用、仪表盘、电商网站以及具有明确前后端分层结构的类似项目。
official
agent-browser
factory-ai
用于droid-control工作流的背景知识——不直接调用。Agent-browser驱动机制,用于网页和Electron桌面应用自动化。
official
autoresearch
factory-ai
自主实验循环:尝试想法,保留有效的,摒弃无效的,永不停歇。
official
ban-type-assertions
factory-ai
Ban `as` type assertions in a package via the `@typescript-eslint/consistent-type-assertions` lint rule, replacing them with compiler-verified type-safe…
official
browser-navigation
factory-ai
全面的浏览器自动化,用于测试、数据提取和网页交互。
official
capture
factory-ai
用于机器人控制工作流的背景知识——不直接调用。记录终端和浏览器会话的生命周期。
official
commit-security-scan
factory-ai
使用LLM推理和威胁模型模式分析代码变更中的安全漏洞。适用于PR审查、预提交检查或分支比较。
official
compose
factory-ai
用于droid-control工作流的背景知识——不直接调用。通过Remotion进行视频组装——标题卡片、布局、转场、特效及展示……
official