Automation

SpeakWith has two recorders you can drive from outside the app: Live dictation (real-time, finalised at each pause) and Live audio (voice-activated). You can start, stop, and control either one from the command line, a macOS Shortcut, Automator, or a hotkey launcher — with no extra setup. There are two equivalent ways to send a command: the speakwith:// URL scheme (simplest) and AppleScript (for scripting environments that prefer it).

Quick start: start recording

The fastest way to begin a take is the URL scheme — one line any shell can run. Start the Live dictation recorder:

open "speakwith://live-dictation/start"

Prefer AppleScript? This does the same thing:

osascript -e 'tell application "SpeakWith" to start recording recorder live dictation'

Start the Live audio (voice-activated) recorder instead:

open "speakwith://batch/start"

Stop the current take (the microphone stays powered on, ready to start again):

open "speakwith://live-dictation/stop"

Full command reference

Each recorder supports ten actions. The table below shows the Live dictation recorder. For the Live audio recorder, replace “live dictation” with “batch” in the AppleScript command, and “live-dictation” with “batch” in the URL, with one exception, noted under the table. Two further commands control typing into other apps and name no recorder at all; they have their own section below.

ActionAppleScript commandURL scheme
Power on (microphone only)power on recorder live dictationspeakwith://live-dictation/power-on
Power off (release the microphone)power off recorder live dictationspeakwith://live-dictation/power-off
Start a takestart recording recorder live dictationspeakwith://live-dictation/start
Start a take, keeping the words in SpeakWithstart recording in app recorder live dictationspeakwith://live-dictation/start-in-app
Stop a takestop recording recorder live dictationspeakwith://live-dictation/stop
Set standby on / offset standby recorder live dictation enabled true (or false)speakwith://live-dictation/standby?on=true (or false)
Toggle power (flip the microphone)toggle power recorder live dictationspeakwith://live-dictation/toggle-power
Toggle recording (flip the take, microphone stays on)toggle recording recorder live dictationspeakwith://live-dictation/toggle
Toggle standbytoggle standby recorder live dictationspeakwith://live-dictation/toggle-standby
Bring the app forward and show the recorderfocus recorder live dictationspeakwith://live-dictation/focus

The three toggle actions flip whatever the recorder is doing right now. They take no on or off argument: the recorder’s current state is the argument, read at the moment the command arrives. That is what lets a single hotkey mean both start and stop. They sit at different levels: toggle power holds or releases the microphone, toggle recording starts or ends a take with the microphone kept on, and toggle standby flips level mode.

“In app” means in SpeakWith. If you have turned on typing into other apps, start-in-app turns it back off before the take begins, so your words land in SpeakWith rather than in whatever window happens to be in front. Plain start leaves that setting exactly as you left it. This is the one action with no Live audio counterpart — the Live audio recorder never types into other apps, so speakwith://batch/start-in-app simply does the same thing as speakwith://batch/start. And on any build that does not offer typing into other apps at all — the Mac App Store build, for one — the two are identical as well.

Focus never touches the microphone. focus brings SpeakWith forward and opens that recorder’s pane, and that is all it does: it does not power the microphone on, start a take, or change the typing-into-other-apps switch. Bind it when you want the recorder in front of you before you decide what to do next. Running it again when SpeakWith is already frontmost changes nothing.

Each AppleScript command runs inside tell application "SpeakWith" to … — for example, osascript -e 'tell application "SpeakWith" to power off recorder batch'.

A few things worth knowing. The directional commands are safe to repeat: running “start” while already recording, or “power on” while already on, simply does nothing. The four toggle commands are the exception, and deliberately so: sending one twice returns you to where you started. Standby only affects the recorder that is currently powered on; it never powers a recorder on by itself.

Typing into other apps

Typing into other apps is the switch that sends what you say into whatever window is in front, instead of into SpeakWith. Two commands control it. Neither names a recorder: only Live dictation can type elsewhere, so there is nothing to choose.

ActionAppleScript commandURL scheme
Toggle typing into other appstoggle type into appspeakwith://dictation/toggle
Turn typing into other apps onset type into app enabled truespeakwith://dictation/type-into-app?on=true
Turn typing into other apps offset type into app enabled falsespeakwith://dictation/type-into-app?on=false

These do exactly what the in-app switch and the global hotkey do. That includes moving the recorder, not only the setting: turning typing on starts dictating (and if a take is already running, it begins a fresh recording from that point, so the dictated audio is its own file), and turning it off ends that take, unless you have asked SpeakWith to keep recording when typing stops.

toggle flips the switch, so sending it twice returns you to where you started. The two set commands are directional and idempotent: asking for a state you are already in does nothing at all, so a script can assert “typing off” on a timer without ever interrupting a take. Both set forms require you to say which way: set type into app with no enabled, or the URL without ?on=, is refused rather than assumed to mean on.

Turning typing off is not the same as start-in-app. set type into app enabled false only turns the switch off. start-in-app turns it off and starts a take. Bind the first when you want your next words to stay in SpeakWith, the second when you want to start capturing right now.

On builds that do not offer typing into other apps at all, such as the Mac App Store build, all three commands are accepted and do nothing.

Targeting a specific build

By default these commands find SpeakWith by name. If you have more than one SpeakWith build installed, pin the exact one you want by its bundle identifier:

osascript -e 'tell application id "com.ikisystems.speakwith.macos.gumroad" to start recording recorder live dictation'

The shipping bundle identifiers are com.ikisystems.speakwith.macos.gumroad (Gumroad), com.ikisystems.speakwith.macos.appstore (Mac App Store), and com.ikisystems.speakwith.macos (Developer ID direct download).

Wire it to a hotkey

Because these are ordinary commands and URLs, you can turn any of them into a keyboard shortcut today. Drop one into a macOS Shortcut, an Automator “Run Shell Script” action, or a launcher such as Raycast, Alfred, or Keyboard Maestro, and give it the hotkey you like.

If the hotkey is how you begin dictating, start-in-app is usually the one to bind: it means “capture this here” no matter how you last left the typing-into-other-apps switch.

open "speakwith://live-dictation/start-in-app"

If your launcher would otherwise need a separate “activate the app” step first, focus replaces it: the command brings SpeakWith forward on its own, and it leaves the microphone alone, so a macro can put the recorder in front of you without starting a take.

open "speakwith://live-dictation/focus"

For push-to-dictate into whatever window is in front, bind the typing toggle. One key turns typing on and starts dictating; the same key turns it off again.

open "speakwith://dictation/toggle"