mcpbeat

Pty Capture

factory-ai/pty-capture

Background knowledge for droid-control workflows -- not invoked directly. Capture ground-truth byte sequences from real terminal emulators.

2k 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 pty-capture

What comes with it

5 104 bytes besides the instruction
platforms/linux.md
platforms/macos.md
platforms/windows.md

The instruction itself

4 sections, as written by the author

PTY Byte Capture

The orchestrator routed you here. Use these mechanics to execute your plan.

Capture the exact bytes a real terminal emits for a given keystroke. Use this when the question is "what sequence does terminal X send for key Y?" rather than "does the UI look right?"

Platform support

| Platform | Status | Read |

|---|---|---|

| Linux / Wayland | Implemented | platforms/linux.md |

| Windows (KVM) | Implemented | platforms/windows.md |

| macOS (QEMU) | Implemented | platforms/macos.md |

Read the platform file for your target OS. Each contains the capture architecture, prerequisites, usage pattern, and platform-specific notes.

Known dead ends

  • Xvfb + xdotool: bypasses real keyboard processing entirely
  • uinput + Xvfb: Xvfb does not consume kernel input devices
  • SSH PTY for keystroke injection: distorts the input encoding; SSH is only for output capture or deployment

Follow-on

Feed captured bytes into terminal compatibility fixtures and replay tests in apps/cli.

How to use it

Copy the folder

Take factory-ai/pty-capture 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.