Skip to content

Pipeline Examples & Ideas

This page contains complete pipeline examples and ideas to inspire your own automations.


Convert text to uppercase.

  • Trigger: “uppercase” (Contains)
  • Command:
Terminal window
tr '[:lower:]' '[:upper:]'

Convert text to lowercase.

  • Trigger: “lowercase” (Contains)
  • Command:
Terminal window
tr '[:upper:]' '[:lower:]'

Convert text to title case.

  • Trigger: “title case” (Contains)
  • Command:
Terminal window
python3 -c "import sys; print(sys.stdin.read().title())"

Strip all punctuation from text.

  • Trigger: “no punctuation” (Contains)
  • Command:
Terminal window
tr -d '[:punct:]'

Reverse the characters in the text.

  • Trigger: “reverse this” (Starts with)
  • Command:
Terminal window
rev

Get today’s date in a nice format.

  • Trigger: “what’s the date” (Exact match)
  • Command:
Terminal window
date "+%A, %B %d, %Y"

Output: “Monday, January 20, 2025”

Get the current time.

  • Trigger: “what time is it” (Exact match)
  • Command:
Terminal window
date "+%I:%M %p"

Output: “3:45 PM”

Insert a timestamp.

  • Trigger: “timestamp” (Exact match)
  • Command:
Terminal window
date "+%Y-%m-%d %H:%M:%S"

Output: “2025-01-20 15:45:30”

Insert ISO-8601 formatted date.

  • Trigger: “iso date” (Exact match)
  • Command:
Terminal window
date -u "+%Y-%m-%dT%H:%M:%SZ"

Output: “2025-01-20T22:45:30Z”


Copy text to clipboard without pasting.

  • Trigger: “just copy” (Starts with)
  • Command:
Terminal window
pbcopy
# Empty output = skip paste

Paste current clipboard contents.

  • Trigger: “paste clipboard” (Exact match)
  • Command:
Terminal window
pbpaste

Add text to existing clipboard content.

  • Trigger: “append to clipboard” (Starts with)
  • Command:
Terminal window
content=$(pbpaste)
echo -e "$content\n$(cat)" | pbcopy

Search Google for the spoken query.

  • Trigger: “search for” (Starts with)
  • Command:
Terminal window
query=$(cat | sed 's/^search for //')
encoded=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$query'))")
open "https://google.com/search?q=$encoded"

Open a spoken URL in browser.

  • Trigger: “open website” (Starts with)
  • Command:
Terminal window
url=$(cat | sed 's/^open website //')
open "https://$url"

Search Wikipedia.

  • Trigger: “wikipedia” (Starts with)
  • Command:
Terminal window
query=$(cat | sed 's/^wikipedia //')
encoded=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$query'))")
open "https://en.wikipedia.org/wiki/Special:Search?search=$encoded"

Search YouTube.

  • Trigger: “youtube” (Starts with)
  • Command:
Terminal window
query=$(cat | sed 's/^youtube //')
encoded=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$query'))")
open "https://youtube.com/results?search_query=$encoded"

Open a Mac application by name.

  • Trigger: “open app” (Starts with)
  • Command:
Terminal window
app=$(cat | sed 's/^open app //')
open -a "$app"

Lock the Mac.

  • Trigger: “lock screen” (Exact match)
  • Command:
Terminal window
pmset displaysleepnow

Empty the Trash.

  • Trigger: “empty trash” (Exact match)
  • Command:
Terminal window
osascript -e 'tell application "Finder" to empty trash'

Toggle Focus mode.

  • Trigger: “do not disturb” (Exact match)
  • Command:
Terminal window
osascript -e 'tell application "System Events" to keystroke "D" using {control down, command down}'

Take a screenshot.

  • Trigger: “take screenshot” (Exact match)
  • Command:
Terminal window
screencapture -i ~/Desktop/screenshot-$(date +%Y%m%d-%H%M%S).png

Create a quick note file.

  • Trigger: “new note” (Starts with)
  • Command:
Terminal window
content=$(cat | sed 's/^new note //')
filename=~/Desktop/note-$(date +%Y%m%d-%H%M%S).txt
echo "$content" > "$filename"
echo "Note saved to Desktop"

Append text to a specific file.

  • Trigger: “add to journal” (Starts with)
  • Command:
Terminal window
content=$(cat | sed 's/^add to journal //')
echo "$(date '+%Y-%m-%d %H:%M'): $content" >> ~/Documents/journal.txt
echo "Added to journal"

Read contents of a file.

  • Trigger: “read todo” (Exact match)
  • Command:
Terminal window
cat ~/Documents/todo.txt

Show git status for current directory.

  • Trigger: “git status” (Exact match)
  • Command:
Terminal window
cd ~/Projects/current && git status --short

Pretty-print JSON.

  • Trigger: “format json” (Starts with)
  • Command:
Terminal window
python3 -m json.tool

Decode base64 encoded text.

  • Trigger: “decode base64” (Starts with)
  • Command:
Terminal window
cat | sed 's/^decode base64 //' | base64 -d

Encode text to base64.

  • Trigger: “encode base64” (Starts with)
  • Command:
Terminal window
cat | sed 's/^encode base64 //' | base64

Generate a random UUID.

  • Trigger: “generate uuid” (Exact match)
  • Command:
Terminal window
uuidgen | tr '[:upper:]' '[:lower:]'

Display a system notification.

  • Trigger: “notify” (Starts with)
  • Command:
Terminal window
message=$(cat | sed 's/^notify //')
osascript -e "display notification \"$message\" with title \"Freeway\""

Use text-to-speech to read the text.

  • Trigger: “say this” (Starts with)
  • Command:
Terminal window
message=$(cat | sed 's/^say this //')
say "$message" &
echo "$message"

Play a system sound.

  • Trigger: “play sound” (Exact match)
  • Command:
Terminal window
afplay /System/Library/Sounds/Glass.aiff &

Evaluate a math expression.

  • Trigger: “calculate” (Starts with)
  • Command:
Terminal window
expr=$(cat | sed 's/^calculate //')
python3 -c "print(eval('$expr'))"

Convert between units (requires units package).

  • Trigger: “convert” (Starts with)
  • Command:
Terminal window
# Install with: brew install gnu-units
input=$(cat | sed 's/^convert //')
units "$input" 2>/dev/null || echo "Unknown conversion"

Get current weather.

  • Trigger: “weather” (Exact match)
  • Command:
Terminal window
curl -s "wttr.in/?format=%l:+%c+%t+%h" 2>/dev/null || echo "Could not fetch weather"

Look up a word definition.

  • Trigger: “define” (Starts with)
  • Command:
Terminal window
word=$(cat | sed 's/^define //')
open "dict://$word"

Open Google Translate.

  • Trigger: “translate” (Starts with)
  • Command:
Terminal window
text=$(cat | sed 's/^translate //')
encoded=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$text'))")
open "https://translate.google.com/?sl=auto&tl=es&text=$encoded"

  • Meeting timer — Start a countdown timer
  • Pomodoro — Start/stop Pomodoro sessions
  • Quick reminder — Create a reminder in Reminders.app
  • Email draft — Open Mail with pre-filled content
  • Slack message — Send to a Slack channel via webhook
  • SMS — Send text message via Messages.app
  • HomeKit control — Control smart home devices
  • Shortcuts — Run iOS/macOS Shortcuts
  • Run tests — Trigger test suite
  • Deploy — Trigger deployment script
  • Open in VS Code — Open current project
  • Random quote — Fetch and paste a random quote
  • Lorem ipsum — Generate placeholder text
  • Color picker — Open color picker

  1. Start simple — Begin with basic transformations, then add complexity
  2. Use scripts — For complex logic, write a script file
  3. Test in Terminal — Debug commands before adding to Freeway
  4. Handle edge cases — Check for empty input, errors
  5. Chain commands — Use && and || for conditional execution
  6. Background tasks — Use & for commands that don’t need output