Open-source gamepad control for coding agents

Keep both handson the controller.

Run common actions, switch sessions, and confirm approvals without breaking flow.

View GitHub
Black game controller used to control coding agents
AgentsCodex CLI / Codex App / Claude Code
ControllersGameSir / Xbox / DualSense / DS4 / generic HID
RuntimeLocal service / no telemetry / browser simulation

Touch the keyboard less

Buttons commit actions. Sticks move across context. Every mapping is editable and profile-ready.

A / CrossSubmit. Hold 500ms when approval is waiting
B / CircleInterrupt or dismiss
X / SquareStart a new chat
Y / TrianglePush to talk
D-padNavigate agent UI
Left stickReview / Debug / Refactor / Tests
Right stickChange thinking depth
Home / TouchpadSwitch agent session

Six layers combine L1 with face buttons or the D-pad.

Agent state leaves the terminal

The local HUD shows mappings, active agent, execution state, and every tracked session. Mouse, touch, and keyboard simulation use the same event pipeline as HID.

CodingMacro local controller and agent status dashboard
The dashboard binds only to 127.0.0.1. Simulation is off by default.

Start from the menu bar

The macOS app starts agents, opens the dashboard, and runs Controller Doctor. Terminal users keep the full CLI.

Launch

Choose Codex App, Codex CLI, or Claude Code.

Map

Import, edit, and export controller profiles in the dashboard.

Verify

Simulate first, then connect hardware and run doctor.

Common hardware first, community drivers next

Recorded fixtures cover GameSir Cyclone 2, G7 Pro, Xbox One S, and DualSense. A generic HID driver offers best-effort compatibility.

GameSirXboxDualSenseDS4HID

An actual open control layer

MIT licensed. Configuration, drivers, and agent adapters live in the repository. Built on OpenMicro with original copyright and NOTICE preserved.

NOTICE.md

Install and try it

Requires macOS and Node.js 22+. The installer adds the CLI and opens the CodingMacro menu bar app.

No controller: codingmacro --simulate codex-appController connected: codingmacro doctor
Terminalzsh
curl -fsSL https://github.com/MisterBrookT/CodingMacro/raw/refs/heads/main/install.sh | sh

Keep your hands on the controller and your mind in the code.

Build the mapping in simulation, then connect your controller. Both paths share one event pipeline.

View GitHub