Scripts
Put any executable file into ~/Library/Application Support/Raven/Scripts and it becomes a Raven command.
Deploy a website, turn off the thermostats: whatever you can script, Raven can run, without Raven growing a feature for it. Scripts run in the background. Whatever they print arrives as a notification when they finish. If a script fails, Raven’s menu bar icon shows a badge and the launcher shows a note the next time you open it, so a failure isn’t lost to Do Not Disturb.
Describing a script
Optional # raven. comments at the top of the file set how it appears:
#!/bin/zsh
# raven.name: Deploy Website
# raven.keyword: deploy
# raven.icon: 🚀
# raven.description: rsync the site to the server
# raven.argument: optional
# raven.confirm: true
| Field | Meaning |
|---|---|
name |
What the result is called. Defaults to the file name, tidied up: deploy-website.sh becomes “Deploy Website”. |
keyword |
Type it, a space and some text, and the text is passed to the script as $1. |
icon |
An emoji or the name of an SF Symbol. |
description |
The line under the name. |
argument |
none (the default), optional or required. A script that requires one reopens Raven with its keyword typed. |
confirm |
true asks before running. |
Raven only reads these comments; it never runs a script to find out about it. Files without the executable bit are ignored, and a new script is searchable within a second of arriving in the folder.