Complete AeroSpace tiling window manager configuration assistant for macOS. Use for any AeroSpace configuration task including keybindings, workspace management, window rules, layouts (BSP, columns, rows, accordion), focus behavior, gaps, floating windows, app-specific settings, exec commands, or any window management customization. Also use for debugging and troubleshooting AeroSpace issues including log inspection, window state analysis, and diagnosing layout problems. This skill fetches fresh documentation for each request to ensure accurate, up-to-date guidance.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides comprehensive assistance for configuring AeroSpace, a tiling window manager for macOS. AeroSpace uses TOML for configuration and offers extensive customization for keyboard-driven window management, workspaces, layouts, and window behavior.
Config File: /Users/alex/.config/aerospace/aerospace.toml
Alternative locations: ~/.aerospace.toml
aerospace reload-config)Never embed documentation text. Always use WebFetch to retrieve current information from the AeroSpace documentation.
AeroSpace documentation is comprehensive and continuously updated. The configuration system supports many options across window management, keybindings, and layouts.
AeroSpace supports configuration across these comprehensive areas. For each request, fetch the relevant documentation:
AeroSpace configs use TOML format:
# Start AeroSpace at login
start-at-login = true
# Gaps between windows
[gaps]
inner.horizontal = 10
inner.vertical = 10
outer.left = 10
outer.bottom = 10
outer.top = 10
outer.right = 10
# Main mode keybindings
[mode.main.binding]
alt-h = 'focus left'
alt-j = 'focus down'
alt-k = 'focus up'
alt-l = 'focus right'
# Workspace keybindings
alt-1 = 'workspace 1'
alt-2 = 'workspace 2'
# Move windows to workspaces
alt-shift-1 = 'move-node-to-workspace 1'
alt-shift-2 = 'move-node-to-workspace 2'
# Layout commands
alt-slash = 'layout tiles horizontal vertical'
alt-comma = 'layout accordion horizontal vertical'
# Window detection callbacks
[[on-window-detected]]
if.app-id = 'com.apple.finder'
run = 'layout floating'
When user requests any configuration change:
aerospace reload-config)aerospace reload-config
Method 1: Using osascript (preferred for known app names)
osascript -e 'id of app "AppName"'
Example:
osascript -e 'id of app "Finder"'
# Returns: com.apple.finder
Method 2: List all running apps
aerospace list-apps
Method 3: Using mdls on the app bundle
mdls -name kMDItemCFBundleIdentifier /Applications/AppName.app
List all windows:
aerospace list-windows --all
List windows in specific workspace:
aerospace list-windows --workspace TER
List windows as JSON (for detailed analysis):
aerospace list-windows --all --json
Filter windows by app (example for Ghostty):
aerospace list-windows --all --json | python3 -c "import json,sys; data=json.load(sys.stdin); filtered=[w for w in data if 'AppName' in w.get('app-name','')]; print(json.dumps(filtered, indent=2))"
List active workspaces:
aerospace list-workspaces --monitor all --empty no
When troubleshooting issues (window resizing, layout problems, unexpected behavior), use these debugging techniques:
pgrep -l AeroSpace && echo "AeroSpace is running" || echo "AeroSpace is NOT running"
AeroSpace logs to the macOS unified logging system. Use the log command to retrieve logs:
Get recent AeroSpace logs (last 30 minutes):
/usr/bin/log show --predicate 'processImagePath CONTAINS "AeroSpace"' --last 30m --info --debug | tail -200
Get logs for specific time period:
/usr/bin/log show --predicate 'processImagePath CONTAINS "AeroSpace"' --last 10m --style compact
Stream live logs (useful during testing):
/usr/bin/log stream --predicate 'processImagePath CONTAINS "AeroSpace"' --style compact
Note: Use /usr/bin/log with full path to avoid shell interpretation issues.
To debug a specific problematic window:
aerospace debug-windows
Focus the problematic window
Run the command again to get results:
aerospace debug-windows
Window not floating/tiling as expected:
aerospace list-windows --workspace WORKSPACE_NAME --jsonLayout issues after config change:
aerospace reload-configApp windows behaving unexpectedly:
osascript -e 'id of app "AppName"'aerospace enable-debug-mode
AeroSpace is actively developed. When in doubt, fetch the documentation.