Speakeasy is a Hermes plugin with a native macOS client. A low-latency speech model handles the conversation. Real work goes to your own Hermes sessions, with their tools, skills, memory and approvals, and several tasks can run in parallel while you keep talking.
GPT-Live-1 via Codex OAuth or the OpenAI API · local or Tailscale · macOS 14+ client · MIT
Speakeasy has no brain of its own. The speech model only talks and dispatches; anything that needs a tool, a file or a decision becomes a Hermes run. No extra daemon, no hosted relay.
Registers as a gateway platform and serves its own endpoint. It talks to Hermes over the public API only, so it keeps working across Hermes upgrades.
Your Hermes writes the voice a compact brief: who you are, active projects, what it can do. Secrets and identifiers are filtered before anything reaches the speech provider.
Each request is its own run with live progress. Splitting compound requests, matching follow-ups and picking a channel is one call to a model you choose in your Hermes config.
Opt in any hermes send target and give each a topic. Name one out loud (“put this in work”) or let a quick classifier pick. Optionally opens a fresh thread per task that you can keep working in.
Ask about something already in flight and the run continues inside that existing session, with its history, posting back to the same chat. Toggleable.
The voice can't approve anything. Consequential actions stop at Hermes' own approval flow; outbound email renders as a card and only its button sends, bound to a hash of the exact draft.
Uses your ChatGPT account through Codex OAuth by default, so voice runs on the plan you already pay for. Or bring an OpenAI API key. Credentials stay on the Hermes host.
Hermes on a home server, Mac on the road: setup detects Tailscale and publishes the voice endpoint on your tailnet only via Tailscale Serve, never Funnel. Same-machine setups use loopback. Devices pair with a single-use link.
Global hotkey, floating panel with a slim mode, per-task progress, mute and pause. Handles AirPods switching sample rate mid-call.
On the Hermes host. Setup enables the API server if needed, signs in the speech provider, restarts the gateway with your confirmation, waits for the voice endpoint to come up, then opens a pairing link for the Mac client.
# add the plugin hermes plugins install rungmc357/speakeasy#plugin/speakeasy --enable # configure, restart, pair hermes voice setup # detects Tailscale automatically hermes voice setup --api-key # use an OpenAI API key instead
Audio and the voice brief go to the speech provider you chose (OpenAI, through your own account). Task content goes only to your Hermes. There is no Speakeasy server.
Setup adds one platform block and enables the plugin, and turns on the API server if it's off. hermes plugins disable speakeasy and a restart undo it.
Three, each your choice. The speech model (GPT-Live-1 through Codex OAuth or the API) only converses and hands off. A router model from your Hermes config (auxiliary.speakeasy_router) splits requests, matches follow-ups and picks channels. The work itself runs on whatever your Hermes already uses.
Yes. The brief is plain text, editable in the client's settings, and your Hermes can refresh it automatically.