Install the native Codex companion or the TypeScript speech library
SpeakEasy has two installation paths. Most Codex users should install the signed native app. Developers who only need TTS can install the package.
Requirements:
Paste this bounded task into Codex Desktop:
Install SpeakEasy 0.2.19 on this Mac. Read https://speakeasy.arach.dev/agent.md and follow Path 3. Do not build from source or bypass Gatekeeper. Tell me which human-only steps remain.
0.2.19 is the first complete dual-mode release: exact-task dictation and
narration on the Mac, plus the paired-HTTPS browser/iPad Deck. The older
0.2.18 artifact remains an immutable Mac-only proof build.
Codex downloads and inspects the pinned installer. The installer verifies the
published checksum, Gatekeeper acceptance, Developer ID team, bundle identity,
and exact app version before replacing /Applications/SpeakEasy.app. It then
opens Settings → Deck.
The packaged app does not require Bun, Node, Xcode, a terminal workflow, or a SpeakEasy checkout.
Install and trust the one-time local CA from the shown bootstrap link, then open the paired HTTPS device link on another Mac or iPad. The browser/PWA is the supported device path; the native iPad shell remains a developer preview.
See Listening mode for routing and privacy details.
Requirements:
# project dependency
bun add @arach/speakeasy
# or install the CLI globally with your preferred package manager
pnpm add --global @arach/speakeasy
import { say, SpeakEasy } from '@arach/speakeasy';
await say('Hello, world!');
await say('Hello from OpenAI', 'openai');
const speaker = new SpeakEasy({
provider: 'openai',
openaiVoice: 'nova',
rate: 180,
cache: { enabled: true },
apiKeys: { openai: process.env.OPENAI_API_KEY },
});
await speaker.speak('The task is complete.');
speakeasy "Hello, world!" --provider system
speakeasy "Build completed" --provider openai --voice nova --cache
speakeasy --doctor
export OPENAI_API_KEY="sk-..."
export ELEVENLABS_API_KEY="..."
export GROQ_API_KEY="gsk_..."
export GEMINI_API_KEY="AIza..."
Or configure providers once in ~/.config/speakeasy/settings.json. Caching is
automatic for API providers when credentials are present.