Skip to content
UTC

Interject

Interject is a push-to-talk dictation tool: hold a hotkey, speak, and the transcribed text is typed into whatever application currently has focus, running a local Whisper-family speech model on-device with nothing sent over the network.

Launch Interject

Live at interject.liminallayers.com

Problem & approach

Typing to coding harnesses and LLMs felt slow and unintuitive. The want was a voice mode like talking to a language model, but self-hosted: no external API cost and no audio leaving the machine. It also couldn't be tied to one app: hotkey, speak, and the text lands wherever the cursor is, whether that's a terminal, an email, or notes.

A hotkey-triggered dictation daemon runs faster-whisper locally on CPU, int8 and tuned for low latency, so voice never leaves the machine and there is no API cost. The decision that made "works in anything" actually true was decoupling transcription from injection.

Challenges

Problem

X11 vs Wayland and application focus.

Solution

Typing directly into whatever holds the cursor's focus is unstable on Wayland, so the daemon writes to the clipboard first and pastes rather than injecting keystrokes.

Problem

The overlay landing off-screen on Linux.

Solution

Queries the primary monitor's geometry as the service starts, instead of assuming one.

Stack

  • Whisper
  • Python
  • Tkinter

Demonstrates

  • CPU-based inference
  • Designs for graceful degradation
  • Operating as a background service, not a script
  • Latency considerations
Built 2026-06Agent Claude Code, Opus 4.7, Gemma4 12bactive