Read the complete illustrated teardown
Open, clean-room macOS integration for the Work Louder Creator Micro 2 sold as the OpenAI Codex Micro: USB/BLE HID forensics, Report 6 JSON-RPC, lighting, joystick control, a signed native helper, and a six-lane agent console.
This project is a non-invasive technical teardown and clean-room host probe for
the Work Louder device sold by OpenAI as the Codex Micro. The enclosure in
hand is labeled Creator Micro 2; its USB product string is Codex Micro;
OpenAI's product page names the design/SKU kbd-1.0-codex-micro. Those are
three layers of identity, not three different observed devices.
The central result is practical: this is a programmable ESP-class HID device, not a closed button box. Its shipping firmware exposes a 63-byte bidirectional vendor HID report carrying framed JSON-RPC. A host application can listen for keys, encoder ticks, and joystick motion; query firmware/battery state; and drive lighting without using the ChatGPT user interface.
- Technical dossier: the full sanitized, evidence-led teardown, including host architecture and unresolved facts.
- Public technical article: a sanitized narrative suitable for publication.
- Self-contained visual review edition: the rendered story with pretty-printed JSON evidence cards, three runnable control walkthroughs, editorial illustrations, and an expandable 13-diagram technical atlas.
- Diagram specifications: Mermaid sources, captions, provenance labels, and evidence links for every technical view.
- Game-controller and six-agent blueprints: implemented mappings, platform limits, state model, and stretch designs.
- Hybrid capability matrix and visual control manual: exact HID capabilities, Navigate/Pointer/Swarm operation, and recovery procedures.
src/codex_micro_probe/: dependency-free Python 3.11+ IOKit transport, framing, parser, descriptor decoder, firmware parser, and safe CLI.tests/: offline tests for both transports, report reassembly, descriptor structure, firmware metadata, event normalization, and prohibited methods.evidence/: redacted raw captures, public-image metadata, claim provenance, and the safety classification. Every useful capture ships in this repository.
The checked-in docs/ tree is the lightweight GitHub Pages edition.
The 13 MB article build remains a self-contained offline edition with its CSS,
photographs, and technical atlas embedded.
| Fact | Result | Evidence class |
|---|---|---|
| USB identity | Work Louder 303A:8360, product Codex Micro |
exact unit |
| USB state | USB 2.0 full speed, active HID, 500 mA allocation | exact unit |
| Firmware status | v0.4.1; status exposes profile, layer, battery, charging |
exact-unit probe round trip |
| USB HID descriptor | 275 bytes; reports 1, 2, 3, 4, and 6 | exact unit |
| BLE HID descriptor | 216 bytes; reports 1, 2, 3, and 6; no gamepad Report 4 | exact unit |
| Private channel | usage page 0xFF00, Report ID 6, 63-byte input/output |
exact unit |
| Inputs over BLE | all 13 switch IDs, encoder press/turns, full-range joystick | exact unit |
| Runtime lighting | ambient preview and six independent Agent LEDs, including animation | exact unit |
| Device filesystem | one 939-byte keymap.json; read-only inventory performed |
exact unit |
| Static firmware | ESP32-S3 image, ESP-IDF 5.3.2 lineage, factory/NVS/LittleFS/coredump | public v0.4.0 image |
The public v0.4.0 binary is the closest firmware artifact currently available, not the v0.4.1 image running on this unit. The dossier maintains that boundary for every static claim.
Run directly from the checkout; installation is optional:
git clone https://github.com/arthurcolle/codex-micro-open.git
cd codex-micro-open
PYTHONPATH=src python3 -m codex_micro_probe discover --json
PYTHONPATH=src python3 -m codex_micro_probe descriptor
PYTHONPATH=src python3 -m codex_micro_probe permissions
PYTHONPATH=src python3 -m codex_micro_probe doctor
PYTHONPATH=src python3 -m codex_micro_probe status --json
PYTHONPATH=src python3 -m codex_micro_probe listen --duration 15
PYTHONPATH=src python3 -m codex_micro_probe gamepad --duration 15
PYTHONPATH=src python3 -m codex_micro_probe agents \
--mapping config/agent-map.current.json --duration 15
PYTHONPATH=src python3 -m codex_micro_probe agent-animation \
--pattern evil-eyes --duration 12 --fps 4
PYTHONPATH=src python3 -m codex_micro_probe voice-swarm \
--cwd "$HOME/Dsco"
# Against the running daemon:
PYTHONPATH=src python3 -m codex_micro_probe mode \
--json-request '{"command":"hybrid-mode","value":"navigate"}'
PYTHONPATH=src python3 -m codex_micro_probe mode \
--json-request '{"command":"hybrid-mode","value":"pointer"}'
PYTHONPATH=src python3 -m codex_micro_probe mode \
--json-request '{"command":"hybrid-mode","value":"swarm"}'The user's current physical cap arrangement is preserved in
physical-layout.png and mapped by
physical switch ID in config/agent-map.current.json.
The Codex Micro has no observed audio-input interface of its own. DSCO voice control records from the selected Mac microphone and plays its spoken state confirmations through the Mac speakers; the Micro supplies the physical gestures and visual feedback.
macOS requires Privacy & Security → Input Monitoring for the terminal or
application hosting Python. Discovery and descriptor capture remain possible
without it; opening the report stream returns kIOReturnNotPermitted.
Machine-readable events are emitted as JSON Lines, so non-Python software can consume the probe as a subprocess:
PYTHONPATH=src python3 -m codex_micro_probe listen | your-serviceProvenance: this is a host-side DSCO control policy built on exact-unit HID events and reversible lighting calls. It is not a hidden firmware mode and it does not describe the official Codex application's behavior.
The six transparent Agent positions are stable model lanes. Holding a pair while pressing an ordinary action addresses both lanes:
| Pair | Physical IDs | Ordinary DSCO target |
|---|---|---|
| Top | AG00 + AG01 |
both Sol lanes |
| Left | AG02 + AG03 |
both Terra lanes |
| Right | AG04 + AG05 |
both Luna lanes |
| Middle | AG03 + AG04 |
cross-pair: the inner Terra and Luna lanes |
These ordinary jobs remain resumable Codex lanes under workspace-write.
Pair targeting by itself never raises their privilege.
These controls execute only through the local DSCO daemon; none changes the Micro firmware, macOS security permissions, or the default sandbox.
| Physical control | DSCO action | Scope / guardrail |
|---|---|---|
| Encoder clockwise/counter-clockwise | Increase/decrease the selected lane's effort marker by 0.1 |
Clamped to 0.0–1.0, runtime-only, visible in menu-bar state |
| Encoder press | Arm a resume for the selected lane(s) | Applies to the next dispatch only, and only when a durable DSCO/Codex thread exists |
Play / ACT06 |
Primary action | In the command cockpit it picks/drops an agent; in Mac-control mode hold it to click-drag; otherwise it arms a durable-lane resume |
YOLO / ACT07 |
Approve / confirm | Left of YEET on the current physical layout; also completes the explicit one-shot privilege sequence |
YEET / ACT08 |
Reject / cancel | Right of YOLO on the current physical layout; cancels pending fan-out or privilege arming |
Stop / ACT09 |
Stop / back | Stops an active voice brief, cancels selected work, backs out of the cockpit, or sends Escape in Mac-control mode |
Wide voice/spacebar / ACT10+ACT11 |
Voice input | One visible cap over two switches; both physical reports are coalesced into one logical microphone action |
Four-dot / ACT12 |
Open the graphical command surface | Brings up contextual suggestions and repurposes the encoder for safe menu navigation while open |
| Joystick | Agent cursor or explicitly armed Mac pointer | Raw polar position remains available through gamepad; desktop injection is off by default and requires the visible Joystick Controls This Mac toggle |
The top six keys therefore remain agent addresses, while the action row and encoder select execution posture without binding work to a particular chat.
native/CodexMicroVoice now ships a local macOS command surface rather than a
bare key mapper. It is a floating overlay backed by the same localhost-only,
allowlisted control socket as the daemon. It shows the six agent lanes, their
model and live status, selected-lane effort, the current focus, and a short
contextual command list.
Press the four-dot ACT12 key to open it. While it is open, turn the encoder
to highlight an action and press the encoder to invoke it. Mouse clicks use the
same commands. The six available actions are deliberately small and visible:
- Voice brief — start a selected single-lane brief.
- Fast path — arm one concise next dispatch; it changes neither sandbox nor governance.
- Model pair — select the focused model's two lanes.
- Resume — arm a single durable-thread resume.
- Confirm fan-out — explicitly start a displayed multi-lane brief.
- Stop listening — close the active local microphone brief.
The overlay cannot send arbitrary prompts, shell commands, RPC methods, or
firmware changes. Voice or typed injection still supplies task text, and the
one-shot red privilege latch remains the only path to a native
--systems-agent --gov-model none dispatch.
The macOS menu app now owns and supervises the Python daemon, so the cockpit continues running after the build terminal closes and restarts the daemon after an unexpected exit. Official Codex Mode releases the HID handle; DSCO Swarm Mode reacquires it. Normal physical actions never open a browser; the article is behind a separate, explicitly named menu item.
The non-key diffuser is now a first-class swarm display rather than a static accent. In DSCO mode the daemon maps swarm state to a named, runtime-only backpiece scene and keeps key backlight near minimum so the enclosure glow is optically distinct from the six Agent tiles. The normal baseline is Forest; work, approvals, completion, and failure can temporarily take priority.
Open Backpiece Visual Lab from the menu bar or the floating command cockpit to preview one of eight bounded scenes: Forest, Emerald Tide, Ocean, Aurora, Ember, Gold Alert, Moonlight, and Fault. A preview lasts 15 seconds, uses a five-frame transition, and then restores the swarm-derived scene. Restore Swarm State ends it immediately. Approval and failure signals preempt a manual preview so visual experimentation cannot conceal a critical state.
Only named scenes cross the local socket. There is no arbitrary lighting or
RPC field in this UI, and the renderer uses lights.preview; it does not alter
the saved device lighting configuration. The cockpit exposes the current
scene, source (swarm, preview, or a critical override), reason, and remaining
preview time so unexplained blinking has a visible cause.
DSCO mode also provides a deliberately conspicuous, short-lived privilege latch for one native DSCO job:
- Tap and release the top chord (
AG00+AG01). The host speaks the first arming confirmation and sets the reversible runtime background to immediate, solid bright yellow. - Before that stage expires, tap and release the middle chord (
AG03+AG04). The host speaks the second confirmation and changes the background to immediate, solid bright red. - Press
ACT07/ YOLO. This creates an in-memory authorization for exactly one subsequent single-lane native DSCO dispatch. The token is consumed once and the host returns to the calm green baseline.
The privileged dispatch uses an argument vector equivalent to:
dsco --profile worker --model MODEL \
--systems-agent --gov-model none --prompt PROMPTIt deliberately does not use -e codex, shell interpolation, or Codex's
danger-full-access sandbox flag. That distinction is material: DSCO's own
source describes --systems-agent --gov-model none as UNGOVERNED and as
having no safety envelope. The physical sequence controls entry into that
state; it does not make the resulting job safe or governed.
ACT08, an incorrect sequence, stage expiry, switching modes, or a device
disconnect cancels the latch. Arming state and tokens are never written to the
state file. Cancellation, expiry, and one-shot consumption restore green
runtime-only lighting; official Codex mode does not receive DSCO lighting
writes.
Exact-unit live proof (2026-07-31): the USB-connected v0.4.1 unit rendered
the full yellow and red background previews, played all three Mac-speaker cues,
transcribed “Run LS.” from the Mac microphone, consumed the authorization once,
and completed a native Sol-lane DSCO job with systems_agent=true,
governance_model=none, and exit code 0. The sanitized record is
evidence/live/2026-07-31/privilege-latch-live-proof.json.
Install an isolated command if desired:
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/codex-micro-probe doctorThis device-probe RPC surface fails closed. It has no arbitrary-RPC command and permanently blocks:
sys.bootloaderfs.writeandfs.writebinfs.deletefs.format
Self-test, charger diagnostics, and focused-app mutation are also unavailable
through the public CLI. fs-inventory sends one bounded fs.list request and
does not recurse or write. Runtime lighting must be selected explicitly;
v.oai.rgbcfg additionally requires acknowledgement because its persistence
semantics are not fully characterized. The bounded agent-animation command
uses only runtime v.oai.thstatus notifications, caps duration at 30 seconds
and frame rate at 8 fps, and leaves saved device lighting configuration
untouched.
No bootloader entry, firmware flashing, factory reset, case opening, or device filesystem mutation was performed for this study.
That device-firmware boundary is separate from the explicitly ungoverned one-job DSCO execution path documented above. The latter is protected against accidental activation, but once consumed it is not constrained by this HID/RPC allowlist.
Run the offline suite with the standard library:
PYTHONPATH=src python3 -m unittest discover -s tests -vRe-analyze a locally downloaded public firmware image without committing it:
PYTHONPATH=src python3 scripts/analyze_firmware.py \
/private/tmp/codex-micro-firmware-v0.4.0.bin \
--expected-sha256 93596dec08f36a74e6860cd47ff7951e11ca3c8e4f3a2870665d1f95f768dee8New macOS evidence can be staged under ignored dist/captures/ with
scripts/capture_host.sh. Redact serial numbers, location IDs, and personal
paths, run python3 scripts/audit_release.py, and then promote useful captures
into the tracked evidence/captures/ or evidence/live/ trees.
Build and validate both publication editions:
CODEX_MICRO_REUSE_DIAGRAMS=1 python3 scripts/build_html_article.py --target all
python3 scripts/build_substack_article.py
python3 scripts/check_links.py
python3 scripts/audit_release.pyPrimary commercial and operational sources are the OpenAI Codex Micro page, Work Louder setup guide, and official firmware release repository. The independently developed MIT-licensed FreeMicro protocol notes are used as corroborating interface evidence, especially for BLE behavior.
The probe contains no vendor source code, private package contents, firmware binary, or copied ChatGPT implementation. It was written against observed HID interface facts, Apple's public IOKit headers, and independently documented wire behavior.
