Speak. Turn. See waiting state on the keys.
English · 日本語
· macOS · Stream Deck+ · MIT · Preview
Product page · Explore the controls · Get started · Build · Security
The keyboard-only Codex era ends here—not with another chat tab, but with a surface your hands already understand.
Multiple AI tasks. One control surface.
For years, working with AI meant typing into a window, waiting, scrolling, switching threads, hunting status. AGI Keys moves that loop onto Stream Deck+: speak the next move, turn model and reasoning on dials, send when ready, and keep task state and waiting cues where your eyes land without leaving the desk.
This is not a thicker prompt box. It is a physical control deck for Codex on macOS—unofficial, focused, and honest about being Preview. When the boundaries are clear, trust compounds.
Speak · Turn · See — renders from the running plugin UI (demonstration states).
Hero is a product visualization based on the running plugin UI (example AGI Keys layout). Task names are samples; fine details may differ from hardware. Table icons are plugin keycap/dial renders at demonstration states—not live Codex status.

Speak / Turn motion previews from plugin verification renders.

Key surfaces — dictation, task state, send, usage (demonstration).

Turn — model, reasoning, usage and task dial feedback.

See — values stay on the dial strip without hunting menus.

Task slots and waiting cues — the loop you keep in view.

LCD + dial renders from the plugin (not live Codex status).
Three verbs. One loop.
| Speak | Turn | See |
|---|---|---|
| An idea becomes voice at a key press. Send when the thought is ready. | Model, reasoning, task, and conversation controls live on dials—twist, don't dig. | Task state, current values, usage, and waiting cues stay in view. No menu safari. |
flowchart LR
A["✋ Stream Deck+
Keys · Dials · Touch"] --> B["AGI Keys
Your assignments"]
B --> C["Codex
Tasks · Input · Controls"]
C --> D["At-a-glance feedback
State · Model · Usage"]
D --> A
Less reaching. More creating. The connector uses Codex's native Micro path over local CDP. Some actions expose only dispatch acceptance rather than complete downstream confirmation—we say so up front. See connection and security limits.

Action catalog from the plugin — arrange the deck you actually work.
- 67 actions to arrange in Stream Deck's native action list—build the deck you work, not a fixed grid someone else imagined.
- Per-key English or Japanese, labels, appearance, and feedback.
- Custom press behavior for display actions such as usage.
- Record your own dictation shortcut, including left/right modifiers.
- Dial settings for direction, steps, and supported touch/press gestures.
- Everything in Stream Deck. No separate web settings app to babysit.
Task slots follow the recent Codex window. ACT06–ACT12 are compatibility key identifiers whose behavior follows Codex's mapping. The plugin UUID namespace is com.dualform.agikeys. Pre-release profiles that used the former development UUID must assign AGI Keys actions again.
Preview, with honest boundaries—and that honesty is part of the product. Hardware success has been reported for dictation on 0.1.0.60 and compaction on 0.1.0.62. All 67 actions and restart recovery have not passed exhaustive hardware acceptance. The connector's local CDP authentication limitation remains open. We would rather earn trust than oversell a finish line.
- Back up your Stream Deck profiles.
- Get a preview package from Releases when one is published. Draft releases are visible only to maintainers; you can also build from source.
- Open the
.streamDeckPluginfile, then arrange actions in Stream Deck. - Configure your keys and verify the Codex connection. Installing the plugin alone does not establish it; read installation notes and the connector guide.
Requires macOS, Stream Deck+, and a compatible Codex desktop version. Codex updates can change compatibility because this is not a public operation API.
Start at the product page: https://dualformai.com/agi-keys/
Voice input: choose the right shortcut
Register the receiving app's toggle recording shortcut, not its hold-to-talk shortcut. The default is Right Option. Press and release the shortcut in the property inspector to save it per key; Escape or loss of focus cancels capture.
The plugin sends a toggle on key-down and another on key-up. Start with recording stopped and avoid manually toggling it while holding the key. The receiving app does not directly acknowledge recording state. Supported bindings include left/right modifiers, letters, digits, Space, Enter and F1–F12.
npm ci
npm ci --prefix packages/microplus
npm run check
npm test
npm run microplus:packBuild on macOS with a Swift compiler. The plugin package is generated in packages/microplus/dist/. Tests and CI verify code and packaging; they are not substitutes for real-device acceptance. Release checklist →
Inside the project
| Path | Purpose |
|---|---|
packages/microplus/src/ |
Input, connection, state and rendering |
packages/microplus/static/property-inspector/ |
Native Stream Deck settings |
packages/microplus/launcher/ |
Explicit connection and launch assistance |
packages/microplus/native/ |
Registered shortcut press/release |
packages/discovery/, packages/desktop/ |
Investigation and verification adapters |
scripts/ |
Build checks and profile tools |
The public source export excludes private work records and development history. The retired web manager, managed-agent orchestration, scheduling and remote relay are outside the product scope—on purpose. The deck is the product.

Hardware plate: Stream Deck+ device photography © Elgato/Corsair (media kit). Not covered by this repo’s MIT license. AGI Keys is independent software — not an Elgato product. UI overlays on the live site are separate plugin renders.
MIT license · Third-party notices · Security · Product page
The Micro-compatible connection baseline uses MIT-licensed dazer1234/codex-stream-deck. Original license and attribution are preserved.
AGI Keys is an independent, unofficial Preview. Not OpenAI. Not Elgato. Not Work Louder. A quieter way to run Codex—with your hands on the work.


