Skip to content

Troubleshooting

This page covers common issues you might encounter when using pipelines and how to resolve them.


If your pipeline uses AppleScript to control other applications (like sending keystrokes or automating apps), you may need to grant Freeway permission to control those apps.

When a pipeline runs an AppleScript that controls another application, macOS requires explicit permission. Without it, the script will fail silently or show an error.

For example, if you create a pipeline to open a new browser tab with ⌘T:

Pipeline example - Command+T to open new tab
  • Trigger: “new tab” (Exact match)
  • Command:
Terminal window
osascript -e 'tell application "System Events" to keystroke "t" using command down'

This pipeline sends a ⌘T keystroke to the frontmost application. If you’re in Safari, Chrome, or any browser — this opens a new tab.

To allow Freeway to control other apps via AppleScript:

  1. Open System SettingsPrivacy & SecurityAutomation
  2. Find Freeway in the list
  3. Enable the apps you want Freeway to control (e.g., System Events, Safari, Chrome)
macOS Privacy Settings - Automation access for Freeway
Terminal window
osascript -e 'tell application "System Events" to keystroke "t" using command down'
Terminal window
osascript -e 'tell application "System Events" to keystroke "w" using command down'
Terminal window
osascript -e 'tell application "System Events" to keystroke "z" using command down'
Terminal window
osascript -e 'tell application "System Events" to keystroke "s" using command down'
Terminal window
osascript -e 'tell application "System Events" to keystroke "a" using command down'

  • Check that the trigger pattern matches what you’re saying
  • Remember that matching is case-insensitive and punctuation is ignored
  • Make sure there isn’t another pipeline with a higher priority that matches first
  • Test your command in Terminal first
  • Add logging to debug: echo "Debug: $FREEWAY_TEXT" >> /tmp/pipe-debug.log
  • Check for missing dependencies (e.g., python3, brew packages)
  • Ensure your command produces output on stdout
  • Check that the command exits with code 0 (success)
  • If using background tasks (&), the output won’t be captured

Pipelines have a 45-second timeout. For long-running tasks:

Terminal window
# Run in background without waiting
nohup your-command &>/dev/null &