These automations are separate from keyboard shortcuts on Mac.
Shortcuts app
Section titled “Shortcuts app”The Shortcuts app can run Flow actions. Siri shortcuts exist for Start or Resume Session, Pause Session, Skip Session, Reset Cycle, Set Session Title, and Set Duration.
| Action | What it does | Platforms (all unless noted) |
|---|---|---|
| Start or Resume Session | Starts or resumes the current Flow or break | |
| Pause Session | Pauses the current Flow or break | |
| Toggle Timer | Switches between running and paused | |
| Skip Session | Skips the current session and moves to the next | |
| Previous Session | Goes to the previous session, or reloads the current one if it is running or paused (Flow Pro) | |
| Reset Cycle | Returns to a pending Flow at the start of the cycle | |
| Get Phase | Returns Flow, Short Break, or Long Break | |
| Get Remaining Seconds | Returns remaining seconds | |
| Get Session Title | Returns the current title | |
| Set Session Title | Sets the title (Flow Pro) | |
| Get Duration | Returns the duration of a Flow, Short Break, or Long Break in minutes | |
| Set Duration | Sets the duration of a Flow, Short Break, or Long Break in minutes. Custom values from 1–90 minutes require Flow Pro | |
| Get Tag | Returns the current tag, or empty | iPhone, iPad, Mac |
| Set Tag | Sets the tag by name (Flow Pro). An empty name clears it | iPhone, iPad, Mac |
| Get All Tags | Returns tag titles in display order | iPhone, iPad, Mac |
| Get State | Returns Pending, Running, or Paused | |
| Open App | Opens Flow | |
| Show Window | Shows the Flow window | Mac |
| Hide Window | Hides the Flow window | Mac |
Flow bundles a flow command-line tool inside the app, at Flow.app/Contents/Helpers/flow. It talks to a running copy of Flow over AppleScript.
"/Applications/Flow.app/Contents/Helpers/flow" statusTo run it as flow instead of the full path, symlink it onto your PATH:
ln -s "/Applications/Flow.app/Contents/Helpers/flow" /usr/local/bin/flowCommands that change the timer print the same JSON as status.
| Command | What it does |
|---|---|
status |
Print the current timer as JSON |
start |
Start or resume the timer |
pause |
Pause the timer |
skip |
Skip the current session |
previous |
Go to the previous session, or restart the current one if it has already started (Flow Pro) |
reset |
Reset the cycle progress |
session [--title <text>] [--tag <text>] |
Set the session title (Flow Pro) or tag (Flow Pro; empty clears it) |
duration <minutes> [--phase <phase>] |
Set the duration of a phase (flow, shortBreak, or longBreak, defaulting to the current phase) in minutes. Custom values from 1–90 minutes require Flow Pro |
tags |
List session tags as JSON, in display order |
status prints a JSON snapshot with phase, state, remainingSeconds, title, tag, cycleProgress, cycleLength, and willCompleteAt (ISO 8601, only when running).
AppleScript
Section titled “AppleScript”On Mac you can control Flow with AppleScript. For example:
tell application "Flow" to getState| Command | What it does |
|---|---|
start |
Start or resume |
stop |
Pause |
skip |
Skip to the next session |
previous |
Go to the previous session (Flow Pro) |
reset |
Restart the cycle |
show |
Show the window |
hide |
Hide the window |
getPhase |
Returns flow, shortBreak, or longBreak |
getTime |
Remaining time as m:ss |
setTitle to "..." |
Set the session title (Flow Pro) |
getTitle |
Current session title |
setDuration to … for "…" |
Set the duration of a phase (flow, shortBreak, longBreak) in minutes. Custom values from 1–90 minutes require Flow Pro |
getDuration for "…" |
Get the duration of a phase (flow, shortBreak, longBreak) in minutes |
setTag to "..." |
Set the tag by name (Flow Pro). An empty name clears it |
getTag |
Current tag, or empty |
getAllTags |
Tag titles in display order |
getState |
Returns pending, running, or paused |
getTimerStatus |
Snapshot record with phase, state, remainingSeconds, title, tag, cycleProgress, cycleLength, and willCompleteAt (ISO 8601, only when running) |