Claude-skill-registry aerospace
Configure and manage AeroSpace tiling window manager for macOS. Use when working with window layouts, tiling configurations, workspace management, monitor assignments, or AeroSpace keybindings. Keywords: aerospace, tiling, workspaces, window manager, i3-like.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/aerospace" ~/.claude/skills/majiayu000-claude-skill-registry-aerospace && rm -rf "$T"
skills/data/aerospace/SKILL.mdAeroSpace configuration skill
Overview
AeroSpace is an i3-like tiling window manager for macOS. It uses a tree-based tiling paradigm where windows are organized in nested containers with different layouts and orientations.
Configuration location
- Config file:
~/.config/aerospace/aerospace.toml - Alternative:
~/.aerospace.toml - Format: TOML
- Default config:
/Applications/AeroSpace.app/Contents/Resources/default-config.toml
Current configuration
Workspace organization
Internal monitor (built-in) - workspaces 1-5:
- Windows automatically maximize with fullscreen mode
- No gaps for maximum screen usage
- Perfect for focused single-window work
External monitor - workspaces 6-9:
- Three-column tiling layout
- 8px gaps between windows
- Flexible window arrangement
Workspace assignment
[workspace-to-monitor-force-assignment] # Internal monitor 1 = 'built-in' 2 = 'built-in' 3 = 'built-in' 4 = 'built-in' 5 = 'built-in' # External monitor (sequence number 2) 6 = 2 7 = 2 8 = 2 9 = 2
Gap configuration
[gaps] inner.horizontal = 8 inner.vertical = 8 outer.left = 8 outer.bottom = 8 outer.top = 8 outer.right = 8
Key bindings
Window navigation
- Focus left/down/up/right window (vim-style)alt-h/j/k/l
Window movement
- Move window left/down/up/rightalt-shift-h/j/k/l
Workspace switching
throughalt-1
- Switch to workspace 1-9alt-9
Move window to workspace
throughalt-shift-1
- Move window to workspace and followalt-9
Monitor management
- Focus left monitoralt-,
- Focus right monitoralt-.
- Move workspace to left monitoralt-shift-,
- Move workspace to right monitoralt-shift-.
Layout controls
- Toggle floating/tilingalt-shift-space
- Toggle fullscreenalt-f
- Create vertical split (for three-column layout)alt-shift-v
- Toggle horizontal/vertical orientationalt-shift-o
Resize mode
- Enter resize modealt-r
- Decrease widthh
- Increase heightj
- Decrease heightk
- Increase widthl
orenter
- Exit resize modeesc
Other
- Reload configalt-shift-r
- Close windowalt-shift-q
Core concepts
Tree-based tiling
Every workspace contains a tree where:
- Containers have a layout and orientation
- Windows are leaf nodes
- Containers can be nested arbitrarily
Layout types
- h_tiles - Horizontal tiles (side-by-side)
- v_tiles - Vertical tiles (stacked)
- h_accordion - Horizontal accordion (overlapping)
- v_accordion - Vertical accordion (overlapping)
Normalization
Two automatic normalizations keep layouts sensible:
- Single-child containers are flattened
- Nested containers must have opposite orientations
Creating three-column layout
- Open first window (takes full width)
- Open second window (splits horizontally - two columns)
- Focus second window and press
to create vertical splitalt-shift-v - Open third window (appears in the vertical split)
Result:
[Window 1] [Window 2 over Window 3]
CLI reference
Overview
aerospace [-h|--help] [-v|--version] <subcommand> [<args>...]
Query commands
list-monitors - List monitors
aerospace list-monitors aerospace list-monitors --focused aerospace list-monitors --format '%{monitor-id} | %{monitor-name}' aerospace list-monitors --json aerospace list-monitors --count
list-workspaces - List workspaces
aerospace list-workspaces --all aerospace list-workspaces --focused aerospace list-workspaces --monitor focused aerospace list-workspaces --monitor all --visible --empty no aerospace list-workspaces --format '%{workspace}' --json
list-windows - List windows
aerospace list-windows --all aerospace list-windows --focused aerospace list-windows --workspace focused aerospace list-windows --workspace 1 aerospace list-windows --monitor focused aerospace list-windows --pid <pid> aerospace list-windows --app-bundle-id <bundle-id> aerospace list-windows --format '%{window-id} | %{app-name} | %{window-title}' aerospace list-windows --json
list-apps - List running applications
aerospace list-apps
list-modes - List binding modes
aerospace list-modes
list-exec-env-vars - List environment variables for exec commands
aerospace list-exec-env-vars
config - Query config options
aerospace config <key>
Window management
focus - Focus window
aerospace focus left|down|up|right aerospace focus dfs-next|dfs-prev aerospace focus --window-id <id> aerospace focus --dfs-index <index> aerospace focus left --ignore-floating aerospace focus right --boundaries workspace --boundaries-action wrap-around-the-workspace
move - Move window
aerospace move left|down|up|right aerospace move --window-id <id> left aerospace move right --boundaries workspace --boundaries-action stop
swap - Swap windows
aerospace swap left|down|up|right
resize - Resize window
aerospace resize smart +50 # Smart resize (larger) aerospace resize smart -50 # Smart resize (smaller) aerospace resize width +100 # Increase width by 100px aerospace resize height -50 # Decrease height by 50px aerospace resize --window-id <id> smart +50
close - Close window
aerospace close aerospace close --window-id <id>
close-all-windows-but-current - Close all windows except current
aerospace close-all-windows-but-current
Layout commands
layout - Change layout
# Specific layouts aerospace layout h_tiles # Horizontal tiles aerospace layout v_tiles # Vertical tiles aerospace layout h_accordion # Horizontal accordion aerospace layout v_accordion # Vertical accordion # Orientations aerospace layout horizontal # Change to horizontal aerospace layout vertical # Change to vertical # Toggle commands (cycles through options) aerospace layout tiles accordion # Toggle tile vs accordion aerospace layout horizontal vertical # Toggle orientation aerospace layout floating tiling # Toggle float vs tiling # Window-specific aerospace layout --window-id <id> floating
join-with - Join windows under common parent
aerospace join-with left|down|up|right aerospace join-with right # Create nested vertical split aerospace join-with down # Create nested horizontal split aerospace join-with --window-id <id> right
split - Split focused window
aerospace split horizontal|vertical
flatten-workspace-tree - Flatten workspace tree
aerospace flatten-workspace-tree
balance-sizes - Balance window sizes
aerospace balance-sizes
Fullscreen commands
fullscreen - Toggle AeroSpace fullscreen
aerospace fullscreen aerospace fullscreen on aerospace fullscreen off aerospace fullscreen on --no-outer-gaps aerospace fullscreen --window-id <id>
macos-native-fullscreen - Toggle macOS fullscreen
aerospace macos-native-fullscreen
macos-native-minimize - Minimize window
aerospace macos-native-minimize
Workspace commands
workspace - Focus workspace
aerospace workspace 1 # Switch to workspace 1 aerospace workspace next # Next workspace aerospace workspace prev # Previous workspace aerospace workspace next --wrap-around aerospace workspace 5 --auto-back-and-forth aerospace workspace 3 --fail-if-noop
workspace-back-and-forth - Toggle between workspaces
aerospace workspace-back-and-forth
move-node-to-workspace - Move window to workspace
aerospace move-node-to-workspace 1 aerospace move-node-to-workspace next aerospace move-node-to-workspace prev --wrap-around aerospace move-node-to-workspace 5 --focus-follows-window aerospace move-node-to-workspace --window-id <id> 3
move-workspace-to-monitor - Move workspace to monitor
aerospace move-workspace-to-monitor left|down|up|right aerospace move-workspace-to-monitor next|prev aerospace move-workspace-to-monitor <monitor-pattern>
summon-workspace - Move workspace to focused monitor
aerospace summon-workspace 1
Monitor commands
focus-monitor - Focus monitor
aerospace focus-monitor left|down|up|right aerospace focus-monitor next|prev aerospace focus-monitor <monitor-pattern> aerospace focus-monitor next --wrap-around
move-node-to-monitor - Move window to monitor
aerospace move-node-to-monitor left|down|up|right aerospace move-node-to-monitor next|prev aerospace move-node-to-monitor <monitor-pattern>
move-mouse - Move mouse cursor
aerospace move-mouse monitor-lazy-center aerospace move-mouse monitor-force-center aerospace move-mouse window-lazy-center aerospace move-mouse window-force-center
Mode commands
mode - Activate binding mode
aerospace mode service aerospace mode resize aerospace mode main
trigger-binding - Trigger binding manually
aerospace trigger-binding --mode main --key alt-1
System commands
reload-config - Reload configuration
aerospace reload-config
enable - Enable/disable window management
aerospace enable on|off|toggle
volume - Manipulate volume
aerospace volume <args>
debug-windows - Debug Accessibility API
aerospace debug-windows
Focus back-and-forth
focus-back-and-forth - Toggle focus
aerospace focus-back-and-forth
Common operations
Quick status checks
# Current workspace aerospace list-workspaces --focused # All windows on current workspace aerospace list-windows --workspace focused # All monitors aerospace list-monitors # Current window tree aerospace list-windows --workspace focused --format '%{window-id} | %{app-name}'
Reload config
aerospace reload-config # or use keybinding: alt-shift-r
Monitor patterns
Workspace assignment supports:
- Primary monitormain
- Non-main monitor (2-monitor setups only)secondary
- Monitor sequence (1-based, left to right)<number>
- Case-insensitive substring match<regex>
- Full regex match'^pattern$'
Example:
[workspace-to-monitor-force-assignment] 1 = 'main' 2 = 'secondary' 3 = 1 # First monitor (leftmost) 4 = 2 # Second monitor 5 = 'built-in' # Substring match 6 = '^dell.*' # Regex match 7 = ['secondary', 'dell'] # Multiple patterns (fallback)
Configuration examples
Per-monitor gaps
[gaps] # Different gaps per monitor inner.horizontal = [{ monitor.main = 0 }, { monitor.secondary = 8 }, 5] outer.left = [{ monitor.'built-in' = 0 }, 10]
Window callbacks
# Auto-tile all new windows [[on-window-detected]] if.during-aerospace-startup = false run = 'layout tiling' # Specific workspace behavior [[on-window-detected]] if.workspace = [1, 2, 3] run = 'fullscreen on --no-outer-gaps' # App-specific layout [[on-window-detected]] if.app-name-regex-substring = 'Terminal' run = 'move-node-to-workspace 1'
Custom modes
[mode.service.binding] esc = 'mode main' r = ['flatten-workspace-tree', 'mode main'] f = ['layout floating tiling', 'mode main'] h = ['layout horizontal vertical', 'mode main'] [mode.main.binding] alt-shift-semicolon = 'mode service'
Troubleshooting
Check if AeroSpace is running
ps aux | rg -i aerospace
View current workspace
aerospace list-workspaces --monitor focused --empty no
View window tree
aerospace list-windows --workspace focused --format '%{window-id} | %{app-name} | %{window-title}'
Config not loading
- Check config file location:
~/.config/aerospace/aerospace.toml - Validate TOML syntax
- Reload config:
oraerospace reload-configalt-shift-r - Check AeroSpace logs in Console.app
Keybindings not working
- Check for conflicts with other apps (Hammerspoon, Karabiner, etc.)
- Verify modifier keys are correct
- Test with:
aerospace list-workspaces --monitor focused
Windows not tiling
- Check if window is floating:
aerospace list-windows --workspace focused - Toggle tiling:
alt-shift-space - Some apps force floating mode
Resources
- Repository: https://github.com/nikitabobko/AeroSpace
- Documentation: https://github.com/nikitabobko/AeroSpace/blob/main/docs/guide.adoc
- Default config: https://github.com/nikitabobko/AeroSpace/blob/main/docs/config-examples/default-config.toml
- i3-like config example: https://github.com/nikitabobko/AeroSpace/blob/main/docs/config-examples/i3-like-config-example.toml