Link Search Menu Expand Document

Quick Reference



Bunch Lines start at the left column unless they’re in an indented logic block. Indentation within a logic block must be consistent with other lines at the same level of the block.


if social

Line Breaks

Bunch Lines should be a single line, but can be split by ending the line with a backslash and continuing immediately on the next line. A backslash followed by a blank line will not be joined.

(display bunch-internal/first-bunch.html \
 500x600 level:floating)


Comments can be block (/*...*/), lines (# Comment), or inline at the end of a line (Preview // inline comment). Comment markers must be followed by a space.

Bunch Syntax

Bunch Line Action
App Name Launch app
%App Name Launch when opening the Bunch, but ignore when closing
App Name ~5 Launch app after 5 second delay
- XX close all windows of preceding app
- File open a file in preceding app (can be repeated)
- 'spotlight search' Run a spotlight search and open the results in preceding app
- #tag1 #tag2 Search for macOS tags
- {@~w} send a key command to the preceding app
- [string] type a string in the preceding app
!AppName Quit app
!!AppName Launch app when closing bunch (double negative)
!!!AppName Quit app when closing bunch (triple negative)
@AppName Focus app (run at end of bunch to hide all other apps)
AppName_ Hide an app
< my.snippet An external file to be included in the bunch
- KEY=value A variable to define for use in the snippet as ${KEY}
< my.snippet#id Reference a section of a snippet file
< my.snippet#id ?"Run this Snippet?" Allow interactive confirmation of a snippet
http://url Open URL in browser
urlhandler:// Open a system url handler
Bunch Commands
(command) Run a Bunch command
(dark mode [on|off]) dark mode on/off
(do not disturb [on|off]) do not disturb on/off
([hide|show] dock) hide/show dock
(dock [left|right|bottom]) dock left/right/bottom
([hide|show] desktop) hide/show desktop
(wallpaper [path(s)]) change wallpaper
(audio [input|output] device_name) audio input/output
(audio [input|output] volume [0-100]) audio volume
(audio [input|output] [mute|unmute]) mute/unmute audio
* AppleScript command Execute Applescript
Automator Workflows
& Automator Workflow Run an Automator Workflow
- key=value variable to pass to preceding workflow (can be repeated)
Shell Scripts/Commands
$ script_or_cmd [args] Shell script to execute
- KEY=value Environment variable to export for preceding shell script (can be repeated)


You can control some aspects of your Bunch using Frontmatter, including the title and icons it uses in the menu. See the Frontmatter docs for details.

Key Effect
close after Automatically close after an interval (e.g. 1h)
close at Set a time to close daily (e.g. 5pm)
close on
Set a day and time to close weekly (e.g. Mon 5pm)
Multiple day/times can be combined with commas
from file A file path to load additional key/value pairs
from script A shell script path that returns YAML
ignore Boolean determines menu display of a Bunch
ignore if Logic to determine if Bunch displays in menu
ignore unless Negative version of ignore if
ignores state true allows open/close when already open/closed
menu divider Add a menu divider before or after
menu order Menu order, 099 at beginning, >100 at end
only opens true has the same effect as toggles: false
open at Set a time to open this bunch daily (e.g. 6:30am)
open every Repeat open at intervals (e.g. 30m)
open on
Set a day and time to open weekly (e.g. Tue 8am)
Multiple day/times can be combined with commas
quits apps always close apps open in other Bunches
run after Comma-separated paths to scripts to run after opening
run after close Comma-separated paths to scripts to run after closing
run before Comma-separated paths to scripts to run before opening
run before close Comma-separated paths to scripts to run before closing
schedule if Only schedule on specific Mac(s) (UUID1)
schedule unless Negative version of schedule if
sequence parallel or sequential, determines execution order
shortcut Keyboard shortcut for opening the Bunch (e.g. @a)
single bunch mode ignore prevents closing
true, false, or ask to open on launch
Can also be a UUID1 run only on a specific Mac
tags Add tags to the Bunch for organization and batching
title Set the menu display title. Emojis OK.
title prefix
Set a prefix that goes before the menu title.
Prefixes set by folder/tag frontmatter are combined
toggles false prevents toggling this Bunch open/closed

URL Handler

See documentation for details.

URL Method
x-bunch://open?bunch=[BUNCH NAME] Open a Bunch
x-bunch://[BUNCH NAME] Open shorthand
x-bunch://close?bunch=[BUNCH NAME] Close a Bunch
x-bunch://close/[BUNCH NAME] Close shorthand
x-bunch://toggle?bunch=[BUNCH NAME] Toggle a Bunch
x-bunch://toggle/[BUNCH NAME] Toggle shorthand
x-bunch://raw?txt=[BUNCH TEXT] Run raw text as a Bunch
x-bunch://snippet?file=[SNIPPET PATH]&fragment=[FRAGMENT]&foo=bar Run a snippet with fragment and variables
  1. UUID can be retrieved using “Copy UUID” in Preferences.  2

See Also: