Last updated: 26 July 2026

This privacy policy describes how Cadence (“the Software”) handles information when you run it. Cadence is free software developed by Oisin McGrath (“I”, “me”, “the developer”) under the GNU General Public License, version 2.

Plain summary: Cadence collects nothing. It is a program you run on your own computer. There is no Cadence account, no Cadence server, no telemetry, and no analytics. I never receive your voice, your transcripts, your keystrokes, or any information about how you use the Software.

Cadence is dictation software, so it genuinely does need access to your microphone and your keyboard. Those are strong permissions and you deserve a straight explanation of each one rather than a reassuring sentence. Sections 3 to 5 give exactly that: what is accessed, why it is unavoidable, and what the code actually does with it. The source is public — every claim on this page can be checked against it.

This document is not legal advice. For the “use at your own risk” rules, see the Terms of use and the LICENSE file shipped with the Software.

1. What Cadence is

Cadence is a small desktop application that lives in your system tray. You hold a key, speak, and it types what you said into whatever window has focus. It is not a hosted service, has no login, and does not sync anything.

I operate no Cadence server. There is nowhere for your data to go, because the Software never sends anything off your machine on its own initiative.

2. Where speech recognition happens

Transcription is done by a speech-recognition server running on your own computer — by default whisper.cpp listening on 127.0.0.1, the loopback address that never leaves the machine. Your audio is sent to that local address and nowhere else.

Every network address compiled into Cadence is a 127.0.0.1 loopback address. There are no others in the source code. If you deliberately reconfigure it to point at a remote transcription server, that is your choice and your audio then goes wherever you sent it — the Software will not stop you, and I have no involvement in or visibility of that.

3. The microphone, and when it is live

Cadence needs the microphone because it is dictation software. It is not listening continuously and there is no wake word.

One honest detail about disk. Each phrase is written to a temporary WAV file (cadence_phrase.wav in your system temp directory) so it can be posted to the local transcription server. The same file is overwritten by the next phrase, but the most recent one remains on disk until your temp directory is cleared, typically at reboot. It is readable by your user account. Nothing uploads it; it is simply a local file, and I mention it because “nothing touches disk” would not be true.

4. The keyboard, and why access is broader than one key

To support a real press-and-hold, Cadence has to know the exact moment the trigger key goes down and comes back up. On Linux this means reading the keyboard input device, which requires membership of the input group.

That group grants the ability to read all key events, not just one. Linux permissions on input devices are per-device; there is no mechanism to request a single key. I am not going to pretend otherwise, and it would be dishonest to describe this as narrow access.

What the Software does with that access:

This is roughly 90 lines of readable code in src/hold_to_talk_over_evdev.rs. If you are evaluating whether to trust it, that file is the one to read — and reading it is a more reliable basis for trust than this paragraph.

An earlier version avoided the input group entirely by using the desktop's own global-shortcuts portal, which never exposes the raw key stream. It was abandoned for a functional reason: that portal force-releases a held shortcut after about 3.6 seconds, which cut dictation off mid-sentence. The tradeoff is recorded in the project's decision log rather than hidden.

5. Typing into other applications

Transcribed text has to get into the application you are using, so Cadence creates a virtual keyboard device and types the text as if you had typed it yourself. This is what allows dictation to work in any window rather than in one special box.

Cadence types only what the transcription server returned for audio you recorded. It does not read the contents of the window it types into, and has no ability to see what is on your screen.

6. What is stored on your machine

Cadence keeps very little, all of it local and all of it yours to delete:

There is no transcript history, no dictation log, and no database of anything you have said. Text goes to the focused window and is not retained by Cadence afterwards.

7. No accounts, no cloud storage

There is no Cadence account to create, no cloud database, and no cloud backup. Nothing about your identity is collected, because nothing is collected.

8. Third-party components

Cadence drives tools that are not mine — whisper.cpp, PipeWire, ydotool — and uses openly published speech models. They are governed by their own licences and privacy practices. During installation the setup script downloads the speech model from Hugging Face and the whisper.cpp source from GitHub; those are ordinary downloads from third parties, visible in the script, and happen once at your direction.

9. Security

You remain responsible for your machine's security — who has local access to it, what else runs on it, and keeping it updated. A program that can read the keyboard and type into windows is worth installing only from a source you trust; that is true of Cadence as much as of anything else, which is why the source is public and the sensitive parts are small enough to read.

10. Children

Cadence is a desktop utility intended for adults aged 18 and over. It is not directed at children.

11. Free software and honesty about risk

Cadence is free software, provided in the hope that it is useful. This page describes how the Software is designed to behave. Bugs, misuse, or problems in third-party components it relies on can still cause unexpected results — that risk sits with you under the GPL and the Terms of use.

12. This website

Public pages on this site are static. They use no tracking, no analytics, and no advertising cookies that I configure. Your browser and host may still produce ordinary server or TLS logs outside my product design; I do not run ad trackers on these pages.

13. Changes

If Cadence's behaviour changes in a way that affects this policy, I will update this page and the “Last updated” date.

14. Contact

Privacy questions about Cadence: [email protected]

Developer: Oisin McGrath · github.com/oisinmcgrath

This policy is provided for transparency. It is not a guarantee against all legal claims in every jurisdiction.