"You're not stealing the engine. You're watching how the car drives and building your own that drives the same way."
The Only Thing You Can See
Wispr Flow is closed-source. You cannot read its code, and you should not try to. What you can see is everything that matters for a clone: its public docs, its support pages, and its observable behavior when you use it. Push a hotkey — audio starts. Release — text appears. Speak a filler word — it vanishes in the output. Say "actually, make that Tuesday" — the correction is applied, not appended. None of that requires reading source. It's all observable, and observable behavior is a spec you're free to reproduce.
Reverse-Spec vs Reverse-Engineer
These are different acts with different ethics. Reverse-engineering pulls apart the implementation — decompiling binaries, extracting algorithms, copying the backend. Reverse-spec writes down the observable interaction model — the hotkeys, the insertion behavior, the cleanup feel — and rebuilds it independently. The first copies how they did it; the second copies what the user experiences. Firekeeper does only the second, and only from public sources.
Reverse-ENGINEER (avoid) Reverse-SPEC (do this)
--------------------- ----------------------
decompile the binary read the public docs
copy internal algorithms note the observable behavior
replicate the backend rebuild the interaction on your stack
lift prompts / branding write your own prompts, your own name
What Stays Yours
Because you rebuild from behavior, everything underneath is genuinely yours: your STT engine, your cleanup prompts, your insertion code, your name. That's not a legal fig leaf — it's why the clone is better for your purpose. Wispr transcribes in the cloud; your rebuild transcribes on-device. You couldn't have inherited that by copying their backend even if you wanted to, because their backend is the thing you're deliberately rejecting.