SAM ZAMOR/PROJECT FILES

Project File / 12 / Desktop AI experiment

I wanted push-to-talk for an AI, not another chat window

A Windows-first desktop experiment turns one global hotkey into recording, transcription, a contextual answer, and spoken playback.

Filed
Read
6 min
Status
Source-build Windows MVP
Holler shown across desktop and mobile product views

Most voice assistants still ask me to enter their world. Open the app, click the microphone, wait for the state change, speak, then look at a transcript in another chat surface.

Holler started with a smaller interaction: hold Ctrl+Shift+Space anywhere in Windows, talk, release, and get a spoken answer. The window exists to configure and debug that loop, not to become the product's permanent home.

Holler desktop diagnostic interface in its unauthenticated state
The source-build shell exposes the auth and voice loop without pretending it is already configured.

12.01

The hotkey is the interface

Pressing the global shortcut starts microphone capture. Releasing it writes a WAV file, sends it for transcription, adds the transcript to a short in-session conversation, requests an answer, then hands that answer to speech synthesis.

There is also a fallback text path because voice systems fail in more places than text boxes. The desktop panel exposes auth, hotkey status, the last transcript, the reply, and a small doctor action so the invisible interaction can be inspected while it is still young.

Target gesture

Hold, speak, release, hear.

12.02

The product is mostly plumbing

Holler is a Tauri application with a Rust core. It handles global shortcuts, CPAL microphone capture, WAV encoding, network requests, OpenRouter's PKCE exchange, callback parsing, and OS keyring storage before the assistant can say one useful sentence.

That plumbing is the point. A voice interface feels immediate only when authentication, recording state, errors, and secret handling are boring enough to disappear.

Holler OpenRouter auth and voice control panels
The two core setup surfaces are visible because the interaction is still being debugged, not hidden behind polish.

12.03

The MVP is real and visibly rough

The current source compiles with the pinned modern Rust toolchain. It has a usable push-to-talk path and limited in-session memory, but it is Windows-first, unsigned, and not packaged as a public installer.

Speech playback still hands an audio file to the system player. Conversation memory disappears with the process. There is no tray behavior, wake word, physical button, or polished permission flow. The screenshot shows the pre-auth diagnostic shell because presenting it as a finished assistant would be dishonest.

Current status

A source-build interaction prototype, not a distributed desktop product.

12.04

A physical button would change the feeling

A keyboard shortcut proves the interaction cheaply. A small desk button or wearable trigger could make it feel more like talking to a tool in the room and less like operating software.

That hardware is not necessary yet. First the voice loop has to become fast and dependable enough that reaching for it feels easier than opening a chat tab.

What survived

Three things I would carry into the next build

  1. A new interface can be one reliable gesture, not a new screen.
  2. Voice UX is mostly state, latency, permissions, and failure handling.
  3. Keep the diagnostic window until the invisible interaction earns the right to disappear.