Control the AeroSpace tiling window manager from Raycast.
The extension uses AeroSpace's CLI as its runtime interface. It does not synthesize keyboard events or require Accessibility permission to trigger your bindings.




aerospace trigger-bindingon-window-detected rule for an app without automatically changing the config filetrigger-binding)The extension detects the aerospace binary in common Homebrew, Nix, and nix-darwin locations. If you installed AeroSpace elsewhere, set AeroSpace Binary Path in the extension preferences to the executable's full path. Run which aerospace in a terminal to find it.
AeroSpace to view the available commandsIn extension preferences, turn off Show Menu Bar Extras to keep only bindings, status, refresh, and preferences in the menu bar. Show Full Bindings remains on by default; turn it off to show only the main mode. The menu bar shows only its icon by default; turn on Show Workspace Name to add the live workspace and binding mode beside it. The menu bar's View What’s New… item opens the extension's Store page, where Raycast shows its native Version History.
The config view deliberately checks two sources. View Full Config opens the complete file returned by aerospace config --config-path. View Loaded Binding Configuration calls aerospace config --get . --json; AeroSpace currently exposes only mode.* values through that command. The health summary compares those bindings and runs reload-config --dry-run --warnings-as-errors. A real reload only runs after that validation succeeds. Shortcut activation prefers the loaded configuration and falls back to the file for older CLI versions.
The menu bar uses aerospace subscribe for live workspace and mode updates when the installed AeroSpace version supports it. The rest of the menu remains usable if live events are unavailable.
The extension supports programmatic access via Raycast deeplinks using launchContext. This allows integration with window tile manager tools like SketchyBar, Alfred, Keyboard Maestro, or custom scripts.
raycast://extensions/limonkufu/aerospace/switchApps?context={\"workspace\":\"all\",\"searchText\":\"AppName\"}
Parameters:
context.workspace - optional focused, visible, or all scope overridecontext.searchText - optional initial search textThis enables external tools to choose a scope or pre-filter the app switcher without displaying argument input prompts. Normal launches open the command immediately and use the last scope selected inside it.
Contributions are welcome. Please open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.