A shortcut for getting the current location and temperature from Weather, and displaying a text widget with the response.
Shortcut
Local Temp Widget
Running on a schedule
The launchd example below uses StartInterval = 3600 seconds (1 hour). Change that value to match how often you want this Shortcut to run.
1. Install the Shortcut
- Download
local-temp-widget.shortcutfrom this page. - Open it in Shortcuts.app (double-click on macOS, or use Share on iOS/iPadOS).
- Review every action, then add it to your library.
- Keep the Shortcut name as local temp widget so it matches the downloaded filename and the commands below.
- Run it once manually to confirm the widget updates and grant any permissions it requests.
2. macOS: launchd with shortcuts run
On macOS you can run the Shortcut headlessly from a user Launch Agent. Test from Terminal first, then install the plist:
mkdir -p ~/Library/LaunchAgents
# Test the Shortcut first:
shortcuts run 'local temp widget'
cat > ~/Library/LaunchAgents/com.terminalwidget.local-temp-widget.plist <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.terminalwidget.local-temp-widget</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/shortcuts</string>
<string>run</string>
<string>local temp widget</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>3600</integer>
<key>StandardOutPath</key>
<string>/tmp/com.terminalwidget.local-temp-widget.log</string>
<key>StandardErrorPath</key>
<string>/tmp/com.terminalwidget.local-temp-widget.err</string>
</dict>
</plist>
EOF
launchctl bootstrap "gui/$(id -u)" ~/Library/LaunchAgents/com.terminalwidget.local-temp-widget.plist
Example Launch Agent plist (runs /usr/bin/shortcuts run on the interval above):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.terminalwidget.local-temp-widget</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/shortcuts</string>
<string>run</string>
<string>local temp widget</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>3600</integer>
<key>StandardOutPath</key>
<string>/tmp/com.terminalwidget.local-temp-widget.log</string>
<key>StandardErrorPath</key>
<string>/tmp/com.terminalwidget.local-temp-widget.err</string>
</dict>
</plist>
launchd requires macOS and a logged-in user session. Logs are written to /tmp/com.terminalwidget.local-temp-widget.log and /tmp/com.terminalwidget.local-temp-widget.err.
For a GUI editor and troubleshooting, see LaunchControl from soma-zone.
3. Shortcuts automations (macOS, iOS, and iPadOS)
Without launchd, use a personal automation in Shortcuts.app:
- Open Shortcuts → Automation (or the Automations tab).
- Create a Personal Automation.
- Choose a trigger that matches your interval—for example Time of Day (daily or hourly repeats) or another trigger that fits this recipe.
- Add the Run Shortcut action and select local temp widget.
- Turn off Ask Before Running (or enable Run Immediately on iOS/iPadOS) so updates happen unattended.
On iPhone and iPad, background timing is handled by Shortcuts automations—not launchd. Some triggers still require confirmation unless Run Immediately is enabled.
4. Home app (optional)
If you use a Home hub (HomePod, Apple TV, or iPad as home hub), you can add a Home automation that runs this Shortcut on a time-based or accessory trigger. In the Home app, create an automation → add a Run Shortcut action → choose local temp widget.