An iPad app with nine lanes — one Codex task each. Hold the bar to talk to a lane, and the reply gets read back to you.
IPADOS APP · FINDS YOUR MAC ON ITS OWN
NARRATION
ONE LANE PER TASK — NINE ON THE PAD, TWELVE ON THE MICRO DECK.
You pick what goes on each key. Today that's one exact Codex task — the key shows the project, the git branch, the last exchange, and whether that task is live, idle, or queued. Routing is by task ID, so nothing depends on which window is focused or what the most recent thread is called.
The Micro Deck is a 4×4 key bank with the same binding model: one exact task per key, same fail-closed check. The bottom row is transport, which leaves twelve lanes.
Hold the bar and talk. The iPad records the audio and hands it to your Mac over the local network, where SpeakEasy's Parakeet model produces the transcript. Nothing goes to a speech server. Let go and the transcript is sent once, to the task bound to that lane.
Narration volume. Press it to pause playback; the task keeps running.
Status voice for binds, confirmations, and errors. Playback goes to your speakers or headphones.
Bridge, mic, and queue depth. If the bridge LED is dark, the Mac isn't connected and sends won't go through.
One exact Codex task each, with its project, branch, last exchange, and state.
REPLAY the last answer, STOP narration, AUTO-narrate completions, ACTIVITY inbox.
Momentary button, on-device Parakeet ASR. Releasing it sends the transcript once, to the bound task.
Dictation and narration both attach to the same Codex task, so there's no second conversation to merge back in later.
Your dictation and Codex's reply stay in the same task. SpeakEasy handles voice and playback; it doesn't run a conversation of its own.
Sends are addressed by exact task ID, not by title, recency, folder, or window focus. If the binding can't be verified, the send stops.
The queue is on disk, so it survives a relaunch. What you said arrives once, in order, even if the iPad slept in between.
Scrub the reply, change the speed, replay the last exchange with RPLY, or turn on AUTO to have completions narrated as tasks finish. The full text is still in Codex; this is for when you'd rather listen than read.
SCRUB · 0.5–2× SPEED · VOLUME ON THE ENCODER · DURABLE QUEUE
Tap one to repaint this page. It's the same CSS token set the deck itself uses.
THE PAD is an iPadOS app, and it does not work alone. It needs SpeakEasy and Codex Desktop running on an Apple silicon Mac. That Mac holds the Parakeet model, the narration voices, and the bridge the nine lanes bind to.
There is no pairing step — no QR code, no URL to type, no pin. Put both on the same Wi-Fi and the Mac shows up.
INTEGRATION BOUNDARY — THE CODEX BRIDGE USES PRIVATE, VERSION-CHECKED CODEX DESKTOP IPC AND FAILS CLOSED ON INCOMPATIBILITY. IT IS NOT PRESENTED AS A SUPPORTED PUBLIC CODEX API. SPEECH IS TRANSCRIBED BY THE PAIRED MAC; NO ARACH SPEECH SERVER SITS IN THE PATH.
The Mac half works today. The iPad half is going to TestFlight first — once both are on, they find each other with nothing to pair.
You already have Codex open. Give it this and it installs the SpeakEasy skill, starts the runtime the Pad talks to, and tells you what needs your approval.
Set up SpeakEasy on this Mac so I can talk to my Codex tasks from an iPad. Read https://speakeasy.arach.dev/agent.md and follow Path 2, then start the Deck and leave it running. Tell me what you installed and which permissions I still need to approve myself.
Rather do it by hand? bunx @arach/speakeasy plugin codex, then
speakeasy deck.
MACOS 14+ APPLE SILICON · CODEX DESKTOP
The Pad goes to TestFlight before the App Store. Say you want it and I'll send an invite when the build is up — that is the only thing this does with your address. Once it's installed there's nothing to pair: same Wi-Fi, and the nine lanes fill in.
IPADOS 17+ · IPAD AND IPHONE · HOW WE HANDLE YOUR EMAIL