Skip to main content
StageWhisper Lite is a stripped-down version of the app. It transcribes your calls on your own machine and lets you connect an AI assistant to them. There is no cloud transcription, no Playbooks, and no coaching. It is the same capture engine as the full product, with everything else turned off. The source is public. You can read it, audit it, and build it yourself.

How it differs from the full app

The full version of StageWhisper sends your transcript to EU infrastructure, runs it through a Playbook you define, and pushes live coaching signals to your screen. StageWhisper Lite does none of that.
LiteFull
On-device transcriptionYesYes
Audio leaves your machineNeverNever
Live coaching and signalsNoYes
PlaybooksNoYes
Tone analysisNoYes
Connect your own assistantYesYes
If you want the coaching, the Playbooks, and the session review, you want the full app. See plans.

What it does

  1. It captures the audio from your call and transcribes it locally. The transcription model runs on your machine, so the audio is never uploaded anywhere.
  2. It can capture your microphone too, so your own side of the conversation appears in the transcript, labeled separately from the other party.
  3. It connects to an AI assistant you run yourself, so the assistant can read the conversation and reply on your screen while you talk.
  4. It keeps the transcript and the assistant’s replies on a private overlay. The people on your call never see them.

Source-available

The code that ships in StageWhisper Lite is published to a public mirror at github.com/StageWhisperIO/stagewhisper. We publish it so you do not have to take our word for what the app does with your audio. You can read the capture path, see that transcription happens on-device, and build the app from the same source. The mirror is read-only and generated from our main repository, so it does not take pull requests. If you find a bug, email support@stagewhisper.io.

Connect an assistant

StageWhisper Lite is a channel, not an assistant. It carries your call to an AI agent you already run, and carries the agent’s replies back to your screen. You bring the assistant.

Hermes

Connect a Hermes agent to follow your call and respond in real time.

OpenClaw

Connect an OpenClaw assistant and let it act during the conversation.

Remote assistants over Tailscale

Most people run their assistant on a VPS, not on the same machine as the app. Tailscale connects the two over a private mesh, so nothing is exposed to the public internet. Both halves of the conversation travel over the mesh, and both are set up the same way: each side keeps its own server bound to 127.0.0.1, and tailscale serve carries the encrypted hop. Neither side is ever reachable from the public internet, and neither side relaxes its localhost binding. Reaching your assistant. Hermes and OpenClaw bind their listener to 127.0.0.1 and refuse to start on anything else, the same way the app does, so you cannot just point StageWhisper Lite at a tailnet address. On the VPS, expose the assistant’s loopback port over your tailnet:
tailscale serve --bg 127.0.0.1:8765
tailscale serve forwards your tailnet name to the assistant as the Host header, and the assistant rejects unknown hosts by default. Opt your assistant’s own tailnet name in:
STAGEWHISPER_ALLOW_INGRESS_HOSTS=my-vps.tailnet-name.ts.net
Then set the relay URL in StageWhisper Lite to that tailnet address:
https://my-vps.tailnet-name.ts.net
Getting replies back. For replies and notes to return, your assistant calls a small server the app runs on your machine. That server only binds to 127.0.0.1, by design, so a remote assistant cannot reach it on its own. Rebinding it to your tailnet address will not work; the app refuses to start if the server lands on anything but localhost. Open Settings → Connection and expand Remote assistant callback. Pick a fixed callback port, then expose that port over your tailnet. The app stays bound to localhost; Tailscale carries the encrypted hop:
tailscale serve --bg 127.0.0.1:8788
Back in the same panel, set the callback URL to your machine’s tailnet address, and use the same port you just exposed:
  • Callback URL: https://my-mac.tailnet-name.ts.net
  • Callback port: 8788
The app hands that address to your assistant, so replies come back over Tailscale instead of localhost.
By default Hermes and OpenClaw only accept callbacks on localhost, to stop requests being pointed at internal hosts. To let them reply to your tailnet address, set STAGEWHISPER_ALLOW_CALLBACK_URLS on the assistant to that exact base URL, for example STAGEWHISPER_ALLOW_CALLBACK_URLS=https://my-mac.tailnet-name.ts.net. The match is exact on scheme, host, and port, so a different port or plain http is still refused unless you list it.
If your assistant runs on the same machine as the app, skip all of this. The default localhost relay and callback work on their own, with no tailscale serve and no allowlists.

Requirements

  • macOS 14 (Sonoma) or later, Apple Silicon.
  • Microphone and Screen Recording permissions, which the app requests on first launch.
  • An assistant to connect to, if you want live replies.

Get it

Download the signed build from stagewhisper.io, or build it from source by following the README in the public mirror.

Privacy

Transcription runs entirely on your machine. Your call audio is never uploaded. The only thing that leaves your computer is the text you send to the assistant you connected, and that goes straight to your assistant. It does not pass through us.