C.W.K.
Stream
← C.W.K. Quests
🎙️

Firekeeper Quest

Updated: 2026-07-16

Build a voice layer you own, not a subscription you rent

The origin story of Firekeeper — Dad's own system-wide dictation app for macOS, the voice sibling of the image engine Ember and the music engine Bonfire. Why you build a voice layer on your own machine instead of paying a cloud service to hear you, and what every architectural choice teaches about trusting your own hardware with the most personal input there is: your voice.

8 tracks · 36 lessons · ~7h · difficulty: intermediate-to-advanced

Level 0Unlit
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
Firekeeper is not a cloud dictation subscription, not a second Pippa brain, not a chat UI with a mic bolted on. It is a native macOS app that owns the whole local voice loop — global hotkey, microphone, on-device speech-to-text, a cleanup pass, and OS-level insertion into whatever app you're in — and it runs fully offline when it has to. This quest walks that app end to end: what it is and why the name is Firekeeper, the discipline of cloning an interaction model without cloning a cloud, hearing on Apple Silicon (WhisperKit and the language-forcing trap that made Korean come out as garbage), the narrow adapter boundary inherited from the Pippa house, the insertion ladder that is the riskiest and most interesting layer in the whole app, why offline has to be real and not theater, the latency war that got shipped wrong the first time, and the trust boundary you cross the moment you ask an app to listen and to type. It is the voice engine telling its own origin story — conceptual open-sourcing, not a repo you clone.

Tracks

  1. 01🕯️The Keep

    0/4 lessons

    What Firekeeper is, where its name comes from, and why it exists

    Before any Swift, the orientation. Firekeeper is a system-wide dictation app for macOS — not a chat window with a mic, not a second Pippa brain, not a cloud subscription. This track decodes the Dark Souls name, places Firekeeper in the five-repo sibling family, answers the first question anyone asks a self-built tool — why not just rent Wispr Flow? — and draws the one product boundary that keeps the whole thing sane: dictation now, voice chat later.

    Lesson list (4)Quiz · 4 questions
  2. 02🔁Clone the Loop, Not the Cloud

    0/4 lessons

    Reverse-spec an interaction model without copying anyone's backend

    Wispr Flow is closed-source, so you can't read its code — and you shouldn't want to. This track is about the discipline of cloning a product's observable interaction model: how to reverse-spec from public docs and behavior alone, the exact anatomy of the dictation loop, what's worth cloning versus what to deliberately leave behind (cloud transcription, account gating, hidden data collection), and the three-mode taxonomy every good dictation tool converges on.

    Lesson list (4)Quiz · 4 questions
  3. 03👂Hearing on Apple Silicon

    0/5 lessons

    On-device speech-to-text, and the traps that make it sound broken

    The ear is where the whole privacy bet is won or lost: if transcription is on-device, your voice never has to leave the machine. This track surveys the Apple Silicon STT engines (WhisperKit, whisper.cpp, MLX, Apple SpeechAnalyzer), then digs into the two gotchas that make on-device STT look broken when it isn't — the silent English default that turns Korean into garbage, and the Hangul-transliteration trap — before covering how batch models fake real-time and how to manage model weights without bloating your repo.

    Lesson list (5)Quiz · 4 questions
  4. 04🔌Everything Is an Adapter

    0/4 lessons

    One narrow seam, many swappable engines and brains

    Firekeeper inherits a philosophy from the Pippa house: put the abstraction boundary in exactly one narrow place and let everything specialize downstream of it. This track shows how that seam works in a voice app — STT engines behind one interface, cleanup brains behind another, and connection modes as an explicit settings choice rather than a hidden fallback chain — so any piece can be swapped without the product logic noticing.

    Lesson list (4)Quiz · 4 questions
  5. 05🪜The Insertion Ladder

    0/5 lessons

    Getting text into the active app is the riskiest layer in the whole loop

    This is the track no other quest has, because insertion is where a voice app touches the whole rest of the operating system. It's the riskiest and most interesting layer: capturing the right target before focus can drift, climbing a ladder of insertion methods that each fail gracefully into the next, keeping undo intact, handling terminals and coding agents as first-class citizens, and treating the pasteboard with the etiquette it demands. Get insertion wrong and every other part of the loop is wasted.

    Lesson list (5)Quiz · 4 questions
  6. 06📴Offline Is Not Theater

    0/4 lessons

    The fallback path has to actually work, or it's a lie

    Lots of apps claim to work offline and mean it as a marketing checkbox — the offline path is a hidden retry that quietly phones home the moment it can. Firekeeper inherits a hard rule from its writing sibling Rekindle: provider selection happens before a single byte leaves the process, offline never leaks to online, and the offline cleanup is a real provider with real behavior — not a crash-recovery afterthought. This track is how you build an offline path you can actually trust on a plane.

    Lesson list (4)Quiz · 4 questions
  7. 07The Latency War

    0/5 lessons

    How the fast path got shipped slow, and the hotkey race that nearly broke it

    This is the war-story track: the part where Firekeeper got shipped wrong and had to be rebuilt. Every dictation was routed through the full Pippa brain — a 100KB+ vault prompt, a subprocess, and a deep reasoning pass, all to strip the word 'um' — and it cost 10 to 40 seconds against a competitor's 1. This track walks the diagnosis, the lane split that fixed it, the latency budgets that keep it honest, and the parallel war over hotkeys: why a suppressing event tap was the wrong tool, and how a double-tap race condition got settled with generation tokens and a typed state machine.

    Lesson list (5)Quiz · 4 questions
  8. 08🛡️Trust at the OS Boundary

    0/5 lessons

    You asked the machine to listen and to type. Now earn it.

    A dictation app asks for two of the most invasive permissions an operating system grants: hear everything, and act on every app. That's a trust boundary, and this closing track is about earning it rather than assuming it — the permission surface and how to ask for it honestly, the code-signing trap that makes macOS forget your grants, the visible-recording and no-retention contract, the secure fields you must refuse, and finally why owning your own voice layer is the whole point of having built any of this.

    Lesson list (5)Quiz · 4 questions
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.