A voice layer for coding agents

Every agent needs its own voice.

SpeakEasy is how an agent talks, and how you talk back. The primitives are the same in every harness. Codex and Claude have a turnkey hook. Everywhere else, the agent reads the runbook and does the last mile.

Each system gets a hook

The primitives are the product. A turnkey hook is just the last mile, packaged. If there isn’t one, the agent wires it.

Any agent
SupportedPrimitives

Speak, verify, stop

One sentence, macOS system voice, nothing written into the project. No API key. This is what “follow it” means if you do not name a hook.

Install SpeakEasy and set up TTS.

Codex
SupportedTurnkey

Talk both ways, into the exact task

Spoken replies through the skill and player. Talk back through the Mac app. The Pad is that loop on a tablet.

Install the Codex hook and set up TTS.

Claude
SupportedTurnkey

Skill and player, its own hook

Queue, pause, speed, transcript. Talk-back into a Claude task uses the same two-way shape as Codex.

Install the Claude skill and set up TTS.

Cursor · others
SupportedPrimitives

Same primitives. The agent does the last mile.

There is no packaged hook yet. The runbook is enough: speak, verify, stop. The agent wires that into the harness it is already running in.

Install SpeakEasy and wire TTS into Cursor.

What a sentence sounds like

System voice, no key. This is the default path making sound.

Text to speech, with nothing in the way.

Talk-back, first on Codex

The Pad is the Codex hook made visible. Other agents will get a surface in the same shape, not a different product.

The Pad

SEE IT →

Nine lanes for Codex tasks already running. Hold to speak, hear the same task answer. The Mac is required. The iPad build is still coming.

If you are writing an app

The original library is still here. Add it only when you asked for a dependency.

bun add @arach/speakeasy