Skip to the content
2 layers150 × 110 mmAgentDeckV2, the printed circuit board in 3D

RP2040 macropad for supervising AI coding agents: 13 hot-swap keys with per-key RGB status, encoder, joystick, 4-layer PCB, CircuitPython firmware, printable enclosure

Size
150 × 110 mm
Copper layers
2
Thickness
1.6 mm
Parts
126
Nets
94
Pads
452
Tracks, vias
0, 0
Pours
3
Routed
Not yet
KiCad
KiCad 10.0 (file 20260206)
Created
23 Jul 2026
Updated
2 Sep 2026

Overview

AgentDeckV2 is an open-source printed circuit board by Brillar0101, from the Brillar0101/agentdeck repository on GitHub, published under the MIT licence. It is a 2-layer board of 150 × 110 mm with 126 parts on 94 nets.

It is built around the M2.5, MSK12C02 and SKQUCAA010. Its parts include 41 diodes, 31 capacitors, 23 switches, 13 resistors and 5 ICs. It belongs with the keyboards and input boards and the ESP32 and RP2040 boards of this library.

Main components

3

README

README.md
AgentDeck v1

AgentDeck

AgentDeck is an open-source desk macropad for supervising AI coding agents.

AgentDeck is optimized for people running several coding agents at once who want glanceable status and one-hand control. It is a desk device, not a portable one: USB-C only, no battery, no radio.

Six agent keys light up with each agent's live state (idle, thinking, working, blocked, done). Press one to focus that session. The command keys accept or reject work, the dial scrubs and confirms, and the joystick navigates. A host bridge maps Claude Code hooks to the key colours, so the board answers "which of my sessions needs me?" without alt-tabbing.

This is a Codex Micro-inspired project. The concept follows OpenAI and Work Louder's Codex Micro, and the control layout deliberately echoes it. It is an independent build, not affiliated with, endorsed by, or produced with OpenAI, Work Louder, or Anthropic. The board, firmware and enclosure are original work; no Codex Micro files were used. Some material in this repository (vendor footprints, datasheets, reference photographs, third-party cap and knob models) is not ours to license. See LICENSING.md.

Renders

frontside
reartop

Changelog

Hardware revisions are tracked in the changelog. Because the board is text-based KiCad, every fabricated revision maps to a tagged commit, and a physical board can be traced back to the exact design it was made from.

Versions

VersionWhat it isWhere
V1 (this release)95 x 95 mm 4-layer RP2040 board, 13 keys, JLCPCB PCBAv1/hardware/

What comes next (v1.0 bring-up, the v1.1 depth release, and what is deliberately parked) is in the roadmap.

Status

PartState
Schematic + PCBComplete. 4 layers, fully routed, 0 DRC errors, 0 ERC errors
FirmwareWritten (CircuitPython, plus an Arduino/C++ port), untested on hardware
Host bridgeWritten. Maps Claude Code hooks to agent-key colours
EnclosureModelled and fit-checked in Blender, STLs exported, not yet printed
Fab packageGerbers, BOM and CPL generated for JLCPCB

Nothing has been manufactured yet, so none of it is hardware-verified.

Packages

The repository is organized by discipline. Each directory is self-contained and has its own README where the workflow needs explaining.

DirectoryContents
v1/hardware/KiCad 10 project: AgentDeck.kicad_pcb, AgentDeck.kicad_sch, footprint / symbol / 3D libraries
v1/enclosure/Blender assembly (AgentDeck-v2-assembled.blend), the parametric case generator (src/generate_case.py), printable STLs, keycap icon art
v1/firmware/CircuitPython firmware (boot.py, code.py) and the Arduino port
v1/host/agentdeck_bridge.py, the Claude Code hook bridge
v1/fab/Gerbers, drill files, BOM and CPL for JLCPCB
docs/design notes, datasheets, reference material, renders in docs/img/
LICENSES/full licence texts

Hardware

The board is a 95 x 95 mm 4-layer PCB, drawn in KiCad 10.

  • 13 Kailh Choc hot-swap keys on an 18.7 x 19.3 mm grid, each with a reverse-mount SK6812MINI-E RGB LED shining up through the cap
  • EC11 rotary encoder (top left) and Alps SKQUCAA010 5-way joystick (top right)
  • RP2040 with W25Q128 16 MB flash, USB-C, BOOT button, SWD pads
  • Everything is wired directly to GPIO. There is no key matrix, so there is no ghosting to debounce around
  • All SMD parts sit on the back of the board and hang down into the case tray; only the switches, encoder and joystick face up

Keycaps carry simple engraved-style icons (dice for the six agent keys, thumbs up and down for accept and reject) rendered from Lucide glyphs. The encoder and joystick caps are white.

Enclosure

Two printed parts plus four printed cover caps. The PCB drops into the bottom tray component-side down, the lid closes over it, and four screws clamp the stack into brass inserts.

FeatureSpec
ScrewsM2.5 x 8 mm button head (ISO 7380), head 4.7 x 1.3 mm
Lid5.2 mm counterbore, 2.5 mm deep, over a 2.9 mm shaft hole
InsertsM2.5 brass heat-set, 4.0 mm OD x 5.0 mm, melted into a 3.6 mm boss bore
Cover capsprinted 5.0 x 1.2 mm plugs that hide the screw heads
Fit0.4 mm pocket clearance around the board (a deliberately loose fit)
USBside port through the tray wall, sized for the plug plus a slim overmould
Walls2.6 mm, with a 0.6 mm bevel on exposed edges

Print v1/enclosure/case-bottom.stl, v1/enclosure/case-top-lid.stl, and four of v1/enclosure/case-cover-plug.stl. The case is generated, not sculpted: edit the parameters in v1/enclosure/src/generate_case.py and re-run it to get new STLs.

Firmware

Copy v1/firmware/boot.py and code.py onto a CIRCUITPY drive running CircuitPython 9.x, with adafruit_hid and neopixel in lib/. An Arduino port with identical behaviour lives in v1/firmware/arduino/ if you prefer a compiled build.

The command keys send Ctrl+Alt chords, the dial sets reasoning effort, and the joystick navigates. v1/firmware/README.md has the full control table, colour legend, pin map, and the three constants to confirm on first hardware.

Development

  • Board edits: open v1/hardware/AgentDeck.kicad_pcb in KiCad 10. After copper changes, refill zones before running DRC, then regenerate v1/fab/ with kicad-cli.
  • Case edits: run v1/enclosure/src/generate_case.py in Blender to rebuild the STLs from parameters.
  • Renders: the assembly lives in v1/enclosure/AgentDeck-v2-assembled.blend; reference renders are committed under docs/img/.
  • Derived files (board 3D exports, .dsn/.ses routing intermediates, autorouter logs) are gitignored and regenerate from the board.

Licence

Multi-licensed, as is normal for open hardware. See LICENSING.md.

WhatLicence
Software (v1/firmware/, v1/host/)MIT
Hardware (board, enclosure, fab files)CERN-OHL-S v2
DocumentationCC-BY-4.0

Vendor footprints, datasheets and reference images keep their original terms. Keycap icons are from Lucide (ISC).

Parts

126
QtyValueFootprintReferences
27C_0603_1608MetricC_0603_1608MetricC1, C2, C10, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24 +11
20ChocV1_DirectChocV1_DirectSW1, SW2, SW3, SW4, SW5, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20 +4
20D_SOD-123D_SOD-123D1, D2, D3, D4, D5, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20 +4
20LED-SMD_4P-L3.2-W2.8-LS5.9_SK6812MINI-ELED-SMD_4P-L3.2-W2.8-LS5.9_SK6812MINI-ELED1, LED2, LED3, LED4, LED5, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20 +4
13R_0603_1608MetricR_0603_1608MetricR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13
6M2.5V2:MountingHole_M2_5MH1, MH2, MH3, MH4, MH5, MH6
4C_0805_2012MetricC_0805_2012MetricC4, C6, C7, C11
2SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BRSOT-23-5_L3.0-W1.7-P0.95-LS2.8-BRU2, U5
2SW-SMD_4P-L5.1-W5.1-P3.70-LS6.5-TL_H1.5SW-SMD_4P-L5.1-W5.1-P3.70-LS6.5-TL_H1.5SW26, SW27
1D_SMAD_SMAD25
1ESOP-8_TP4056ESOP-8_TP4056U4
1JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_HorizontalJST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_HorizontalJ2
1MSK12C02MSK12C02SW25
1OLED_HS96L03OLED_HS96L03OLED1
1SKQUCAA010SKQUCAA010JS1
1SOT-23SOT-23Q1
1SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLSOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLU3
1SW-TH_EC11E1820402SW-TH_EC11E1820402ENC1
1SWDProgPads_1x4J3
1USB-C_SMD-TYPE-C-31-M-12_1USB-C_SMD-TYPE-C-31-M-12_1J1
1WIRELM-SMD_ESP32-S3-WROOM-1WIRELM-SMD_ESP32-S3-WROOM-1U1

More from Brillar0101/agentdeck

1
  • 4 layers95 × 95 mmAgentDeck, the printed circuit board in 3D

    AgentDeck

    Brillar0101/agentdeck

    RP2040 macropad for supervising AI coding agents: 13 hot-swap keys with per-key RGB status, encoder, joystick, 4-layer PCB, CircuitPython firmware, printable enclosure

    101 partsMIT

Similar boards

  • 2 layers102 × 92 mmMacropad, the printed circuit board in 3D

    Macropad

    Sheepy3/Sheepypad

    open source Macropad for art, gaming... whatever you want, man.

    16 parts2GPL-3.0
  • 2 layers59.7 × 64.8 mmMobile tag, the printed circuit board in 3D

    Mobile tag

    jkelleyrtp/rwm-fa2020

    Real World Microcontrollers - Fall 2020

    25 parts
  • 2 layers33.5 × 15 mmPanel, the printed circuit board in 3D

    Panel

    marqs85/ossc_pro_hw

    OSSC Pro HW files

    5 parts31CERN-OHL-P-2.0
  • 2 layers64 × 46 mmWeatherframe, the printed circuit board in 3D

    Weatherframe

    amselgesang/weatherframe_v01

    My weather station hardver

    50 partsMIT
  • 2 layers223.5 × 160 mmBase, the printed circuit board in 3D

    Base

    bread-modular/bread-modular

    Modular Synths for Everyone

    201 parts67MIT
  • 2 layers309.9 × 119.8 mmCockpit, the printed circuit board in 3D

    Cockpit

    ozkan/Cockpit-Keyboard

    A hot swap system column staggered mechanical keyboard, running QMK Firmware on Pro Micro controllers.

    144 parts43MIT

Questions

How big is the AgentDeckV2 PCB?

It measures 150 × 110 mm and has 2 copper layers, 1.6 mm thick.

What parts does the AgentDeckV2 use?

126 parts, built around the M2.5, MSK12C02 and SKQUCAA010. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the AgentDeckV2 KiCad files?

From the Brillar0101/agentdeck repository on GitHub, at the commit this page was made from: the board is v2/hardware/AgentDeckV2.kicad_pcb and its schematic v1/hardware/AgentDeck.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the AgentDeckV2 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).