Open source★ Star
uttrflow /uttrflow-swiftMIT

Native macOS dictation and clipboard. Built in the open.

    Star on GitHub

    You just talk.
    It writes at the
    speed of sound.

    Talk in any app on your Mac, and it types for you.

    Download for macOS

    Uttrflow for macOSneeds macOS 26 or later

    Uttrflow is not notarised by Apple yet, so macOS has not been told to trust it: it will say the app is damaged, which it is not. Once Uttrflow is in your Applications folder, however it got there, run this once in Terminal.xattr -dr com.apple.quarantine /Applications/Uttrflow.app
    Documentation

    $ brew install --cask uttrflow/tap/uttrflow

    01 · Dictation

    Talk like you’d explain it.
    It lands like you wrote it.

    hold⌥Space

    # backend
    CI
    deploy-bot 09:41
    Deploy to api-2 failed.
    ✕ too many clients already
    OP
    on-call 09:42
    Anyone know what happened?
    YOU
    you 09:43
    The pool on api-2 is maxed out. I’m raising max_connections to 200.
    Message #backend
    ⌥Space

    “um so the pool on api two is like maxed out uh i'm raising max connections to two hundred”

    on your Mac

    The pool on api-2 is maxed out. I’m raising max_connections to 200.

    • On-device
    • Any app
    • Your dictionary
    • Works offline

    02 · Smart clipboard

    Everything you copied.
    One shortcut away.

    ⇧⌘V

    Terminal · ~/infra
    Last login: Sun Sep 13 09:40 on ttys002
    ~/infra $ psql "
    • sqlSELECT pid, state FROM pg_stat_activity
    • postgres://analytics@db.internal:5432/analytics
    • ••••••••••••pg-prod
    • shpg_dump -Fc analytics > backup.dump
    • #29C0B4
    • ~/infra/postgres/pgbouncer.ini
    ↑↓ choose · ⏎ paste · esc close
    • Code with language
    • Secrets masked
    • Pins & aliases
    • Stays on this Mac

    03 · Suggestions

    Get suggestions
    at the speed of thought.

    Tabor→

    ssh · api-2psql · analytics
    ubuntu@api-2 · Ubuntu 24.04 LTS
    ubuntu@api-2:~$ systemctl status gunicorn
    × gunicorn.service failed
    ubuntu@api-2:~$ sudo journalctl -u gunicorn -p err -n 20→
    1SELECT u.plan, count(o.id) AS orders
    2FROM users u
    3LEFT JOIN orders o ON o.user_id = u.idTab
    your historywhat’s on screenlocal model

    04 · Privacy

    Your voice goes nowhere.
    That is the architecture.

    It dictates with the Wi-Fi off, which is the only test of this claim that means anything. Try it on a plane.

    Your Mac

    Everything that hears you lives here.

    • Microphoneon-device
    • Speech modelon-device
    • Recordingsdeleted once they are text

    The internet

    Your account travels. Your voice does not.

    • Your voicenever
    • Your dictionarysynced

    05 · Open source

    Built together.
    For everyone.

    MITSwift 64,000+ tests

    Your first build
    $ git clone https://github.com/uttrflow/uttrflow-swift.git
    $ cd uttrflow-swift && make verify
    $ make app && open dist/Uttrflow.app

    No account, API key or server of ours needed. Every merged pull request makes you part of Uttrflow.

    06 — Questions

    The things people ask
    before they download it.

    Does Uttrflow work offline?

    Yes, after the first run. Signing in needs the network once; dictation never does, because your speech is turned into text on your own Mac. It works on a plane, on hotel Wi-Fi, and behind a corporate proxy.

    Is my voice uploaded anywhere?

    No. The audio is transcribed on the Mac in front of you and no recording is uploaded. It is deleted the moment it becomes text, and kept on this Mac for a day only if it couldn’t be, so you can retry.

    Do I need an account?

    Yes, once. You sign in on first run, and the account is what carries your dictionary and your subscription to your next Mac. Your recordings never travel with it.

    Which apps does it work in?

    All of them. It types at your cursor in whatever app is already in front of you — a message, a document, an editor, a browser field — because it inserts text the way your keyboard does rather than living in a window you copy out of.

    What do I need to run it?

    An Apple-silicon Mac (M1 or later) running macOS 26 or later. Intel Macs are not supported, and there is no Windows, iPhone or Android version.

    Can I install it with Homebrew?

    Yes, and it is the shorter route if you already have Homebrew. One line, no disk image to open and nothing to drag:

    brew install --cask uttrflow/tap/uttrflow

    Uttrflow updates itself from then on, so there is nothing to run again. The step below still applies the first time.

    Why does macOS say the app is damaged?

    Because Uttrflow is not notarised by Apple yet, not because anything is wrong with the file. It applies however you installed it — Homebrew quarantines what it downloads just as a browser does, and offers no way to skip it. Once Uttrflow is in your Applications folder, run this once in Terminal:

    xattr -dr com.apple.quarantine /Applications/Uttrflow.app

    07 — Guides

    Written for the Mac,
    not for us.

    Each of these solves the problem it names on a stock Mac, with nothing installed. Uttrflow gets a mention at the end of one or two, where it is genuinely the answer.

    • The Mac dictation shortcut.

      Where to set it, why the double-press option is the one that fails, and how to read what is actually bound when the settings screen disagrees with your keyboard.

    • Mac dictation not working? Start here.

      Nine causes, ordered by how often each is actually the problem, with the fix for each on macOS 26.

    • Clipboard history on a Mac.

      macOS remembers one thing you copied. What Universal Clipboard really does, and what to look for in a clipboard manager — starting with where it keeps your passwords.

    • Offline speech to text on a Mac.

      Two different things get called offline. What runs on your machine, what still needs a network, and how to tell which you are getting.

    A more focused you starts here.

    Less typing. More doing.

    Download for MacOpen source on GitHub

    Free · macOS 26 or later · Apple silicon, M1 or later