Skip to main content
Loop supports a URL scheme for window management automation. This allows you to control Loop from scripts, shortcuts, and other applications.

URL Format

All Loop URL commands follow this format:
loop://<command>/<parameters>

Available Commands

Window Direction Commands

Move windows to specific positions on the screen. Format: loop://direction/<direction>
CommandDescription
loop://direction/leftMove window to left half
loop://direction/rightMove window to right half
loop://direction/topMove window to top half
loop://direction/bottomMove window to bottom half
loop://direction/maximizeMaximize window
loop://direction/centerCenter window
Example:
open "loop://direction/right"

Screen Management

Move windows between displays. Format: loop://screen/<command>
CommandDescription
loop://screen/nextMove window to next screen
loop://screen/previousMove window to previous screen
Example:
open "loop://screen/next"

Action Commands

Execute window actions. Format: loop://action/<action>
CommandDescription
loop://action/maximizeMaximize window
loop://action/leftHalfMove to left half
Use loop://list/actions to see all available actions in your Loop configuration.
Example:
open "loop://action/maximize"

Keybind Commands

Trigger custom keybinds by name. Format: loop://keybind/<name> Example:
open "loop://keybind/myCustomLayout"
Use loop://list/keybinds to see all available custom keybinds.

List Commands

Discover available commands and configurations. Format: loop://list/<type>
CommandDescription
loop://list/actionsList all window actions
loop://list/keybindsList all custom keybinds
loop://list/allList everything
Example:
open "loop://list/all"

Usage Tips

All commands are case-insensitive. Both loop://direction/LEFT and loop://direction/left work.
Parameters with spaces must be URL encoded. Use %20 for spaces.
Window commands operate on the frontmost non-terminal window.
Use list commands to discover available options in your configuration.

Error Handling

Loop provides helpful feedback for invalid commands:
# Invalid command
open "loop://invalid"
# Returns: Available commands

# Missing parameter
open "loop://direction"
# Returns: Available directions

# Invalid keybind
open "loop://keybind/nonexistent"
# Returns: Available keybinds

Next Steps

AppleScript Integration

Control Loop with AppleScript

Scripting Examples

Real-world automation workflows

Build docs developers (and LLMs) love