aerospace
Control AeroSpace, the user's macOS tiling window manager, through the `aerospace` CLI. Use when the user mentions AeroSpace or asks you to find, focus, move, resize, tile or close windows, or to switch or rearrange workspaces or monitors, on their Mac.
- License 许可
- MIT
- 最近更新
- 2026-11-14
- Stars
- ★ 2
- Forks
- 0
01 前言 Front Matter
- name
- aerospace
- metadata
- { "requires-bin": "aerospace", "requires-tool": "bash|powershell" }
- description
- Control AeroSpace, the user's macOS tiling window manager, through the `aerospace` CLI. Use when the user mentions AeroSpace or asks you to find, focus, move, resize, tile or close windows, or to switch or rearrange workspaces or monitors, on their Mac.
03 SKILL.md 正文
AeroSpace
AeroSpace tiles every window into named workspaces, each shown on one monitor. A workspace holds a tree of containers (h_tiles, v_accordion, …) whose leaves are windows; floating windows sit beside the tree. The aerospace CLI queries and drives the running server, and accepts the same commands the config binds to keys.
Check the server
aerospace list-workspaces --focused
It prints the focused workspace's name when the server answers. "Can't connect to AeroSpace server" while pgrep -x AeroSpace finds the app means its socket, /tmp/bobko.aerospace-$USER.sock, was deleted: ask the user to restart AeroSpace.app, since the CLI cannot reach it until then.
Learn the CLI
The installed binary is the authority. aerospace --help lists the commands; man aerospace-COMMAND (for example man aerospace-list-windows) documents a command's flags, its --format variables and examples. aerospace COMMAND --help prints only the synopsis.
Every command acts as soon as it runs, so read syntax from those pages: aerospace close run to see what it does closes the user's focused window.
Target by id
Commands default to the focused window or workspace, which is the user's. Target another one explicitly, and focus stays where it is:
--window-id IDon window commands:move-node-to-workspace,move-node-to-monitor,move,swap,join-with,resize,layout,fullscreen,close, and more.--workspace NAMEon workspace commands such asbalance-sizes,flatten-workspace-treeandlayout.
A command whose man page offers neither flag acts only on the focused node; running it on anything else means moving the user's focus first.
Read ids and state as JSON; --format picks the fields, and the keys are the variable names (window-id, app-name, …):
aerospace list-windows --all --json --format '%{window-id} %{app-name} %{window-title} %{workspace} %{window-layout}'
aerospace list-workspaces --all --json --format '%{workspace} %{monitor-id} %{workspace-is-focused} %{workspace-is-visible}'
aerospace list-monitors --json
aerospace list-windows --focused --json
Match windows by app-name or app-bundle-id plus window-title, and confirm with the user when several match. Your own terminal window cannot be found from your process: your shell usually descends from a multiplexer daemon (Rex, Herdr, Tern), not from the terminal app.
Arrange windows
aerospace move-node-to-workspace --window-id ID 3 # focus stays put
aerospace layout --window-id ID floating # or tiling, h_tiles, v_accordion, …
aerospace resize --window-id ID width +100
aerospace balance-sizes --workspace 3
To open an app and place its window: new windows appear on the focused workspace and take focus. Record the focused window id, launch the app (open -na Ghostty), poll list-windows --all --format '%{window-id}' until a new id appears, move that window with --window-id, then hand focus back with aerospace focus --window-id <recorded-id>.
aerospace subscribe EVENT… streams JSON lines (focus-changed, window-detected, …) until killed; run it bounded, in a background job you stop.
Safety
- Focus belongs to the user.
focus,workspace,summon-workspace,move-mouseand--focus-follows-windowchange what they see and where their keystrokes land; use them when the user asked to be shown something, and restore focus after any focus change you needed. - Close only windows you opened or the user named:
closeandclose-all-windows-but-currentcan discard unsaved work. enable offstops tiling everywhere, andmodeswaps the user's keybindings; change them only on request.~/.config/aerospace/aerospace.tomlis chezmoi-managed: edit its source (chezmoi source-pathon that file), and runaerospace reload-configonce the change is applied.
04 同仓库更多 Skills
agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
writing-for-agents
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.
wizard
Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.
wayfinder
Plan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.
wait-what
Stop. That last message did not land: re-pitch it.
unslop
Cut AI tells from any writing.