speakeasy.Back to speakeasy.

Your key. Your setup

Build from source.

The source edition lets you run speakeasy. locally with your own Groq API key. The code is free under AGPL-3.0-or-later; provider processing is governed by your Groq account, limits and billing. No speakeasy. hosted account or subscription is required.

Get the source

Download the source archive

The archive contains shared desktop code, including the hosted app’s client code, locked dependencies and license notices. Hosted services, websites and private repository history are excluded. It is a source build for local development; a packaged BYOK installer is a later release.

1. Prepare your Mac

Use an Apple Silicon Mac with macOS 14 Sonoma or later, a microphone and internet access. Install Node 24.18.0, the version pinned in the archive’s .nvmrc. The Node process should run as arm64, without Rosetta.

Extract the archive into a new folder and open a terminal there. If you use nvm, run nvm install and nvm use. Otherwise, install the pinned version from Node.js. If a native dependency needs compilation, follow node-gyp’s macOS prerequisites for Command Line Tools and Python.

Start with a clean shell: no SPEAKEASY_* overrides, VITE_DEV_SERVER_URL or ELECTRON_RUN_AS_NODE. Keep the source folder free of environment files from other builds. No hosted secrets or environment file is needed. The included SOURCE-SETUP.md explains how to check variable names safely.

2. Install and build

node --version
node -p process.arch
npm ci
npm run typecheck
npm run build:renderer
npm run build:main
npm run dev

Expect Node v24.18.0 and arm64. Keep the supplied lockfile: npm ci installs its dependencies. The checks and builds do not need an API key or make dictation requests. npm run dev builds and starts the local Electron app, downloading Electron’s runtime first if needed.

3. Connect your Groq account

Create a key in the Groq console. Open the app’s menu-bar Settings, select Account & billing, enter it in Groq API key, then choose Save changes. The Loaded badge means the key is saved; a successful transcription checks that processing works.

Review your provider account’s billing, model access, spend controls and rate limits before dictating. Transcription uses Whisper Turbo and optional cleanup uses GPT-OSS 120B. Hosted Free, Standard and Pro allowances do not apply. Your provider account’s data controls govern your requests; the hosted service’s retention configuration does not configure BYOK.

Enter your key only in app settings. Do not put it in source files, terminal commands, screenshots or support messages.

4. Allow access and speak

In macOS System Settings → Privacy & Security, allow Microphone and Accessibility access for the development process macOS prompts for; it may appear as Electron. Restart the app if a permission change does not take effect.

Automatic paste also needs Automation access to send Command-V through System Events. Allow that control when macOS prompts for the development process you launched. If previously declined, check Privacy & Security → Automation → System Events under that process. You can use clipboard recovery and paste manually while that access is unavailable.

Click an ordinary editable text field. Hold Right Option, speak a short English sentence, then release. Change the key and optional cleanup in Settings → Dictation. Internet is required, and each capture has a five-minute maximum.

Keep the original field available while processing. If automatic paste cannot complete, use clipboard recovery and paste manually with Command-V. Failed cleanup preserves the raw transcript. Check the result before sending it; compatibility varies by app and field.

If something gets stuck

  • Install or build errors: check Node 24.18.0, arm64, network access and native build prerequisites, then rerun npm ci in the source folder.
  • Unexpected hosted sign-in: remove inherited build overrides and environment files, then rebuild. BYOK needs no hosted configuration.
  • No audio or hotkey response: check Microphone, Accessibility and the selected key; restart the development app.
  • Processing errors: check the saved key, provider account limits, model access and internet connection.
  • Missing text: use clipboard/manual recovery, check Accessibility and Automation → System Events, and try an ordinary text editor.

The archive’s SOURCE-SETUP.md covers the development watch loop, stopping the app, troubleshooting and source-manifest checks. Keep its license and third-party notices. For help, contact support with the source manifest checksum, macOS/Node versions and sanitized error. See our privacy page for the hosted/BYOK distinction.

Talk. It types.

PrivacySupportTerms