BaneySpaces documentation
BaneySpaces documentation
Install BaneySpaces on a Mac, grant its one permission, choose shortcut keys, use the overview, script it with URLs, and uninstall it.
Install
Requires macOS 13 Ventura or later on Apple silicon or Intel. In Terminal:
curl -fsSL https://raw.githubusercontent.com/baney75/baneyspaces/main/install.sh | bashThe installer builds BaneySpaces from source with Apple's free command line tools and copies it to ~/Applications. If the tools are missing, macOS offers to install them; run the command again when it finishes. Because it is built on your Mac, there is no "unidentified developer" warning.
To build it yourself:
git clone https://github.com/baney75/baneyspaces.git
cd baneyspaces
make installSet up
A setup window opens on first launch. Each step checks itself off as soon as it's done:
- Let BaneySpaces arrange windows. macOS asks before any app can show and hide other apps' windows. The button opens System Settings › Privacy & Security › Accessibility.
- Pick your keys. ⌘ is the default. Choose ⌃, ⌥ or ⌃ ⌥ to keep ⌘1–⌘9 for your browser and editor. If macOS already uses the keys, Free Them turns those macOS shortcuts off.
- See every workspace at once. Choose whether the Mission Control key and Control–Up Arrow open the overview.
- Keep one macOS desktop, so no window is out of reach.
- Start with your Mac.
Open setup again from the menu bar icon, or by opening BaneySpaces from Finder or Spotlight.
Shortcuts
| Keys | What happens |
|---|---|
| ⌘1 – ⌘9 | Go to that workspace |
| ⌘ Shift 1 – ⌘ Shift 9 | Send the front window there and follow it |
| Mission Control key or Control–Up Arrow | Show all nine workspaces |
| Click a window in the overview | Go straight to it |
| Drag a window in the overview | Move it to another workspace |
| Esc in the overview | Return to where you were |
Scripting
open baneyspaces://switch/2 # go to workspace 2
open baneyspaces://move/5 # send the front window to workspace 5
open baneyspaces://restore # bring every window back onto workspace 1
open baneyspaces://viewer # show or hide the overview~/Library/Application Support/BaneySpaces/state.json holds the current workspace and the apps on each one.
The Deck and agents
| Keys | What happens |
|---|---|
| ⌃⌘B | Show or hide the Deck |
| ⌃⌘K | Jump to any terminal, tab or agent |
| ⌃⌘U | Go to the agent that just finished |
| ⌃⌘[ and ⌃⌘] | Back and forward through the rows you've visited |
baneyspaces hooks install # Claude Code and Grok sessions report to the Deck
baneyspaces skill install # teach Claude Code to use baneyspaces
baneyspaces ls # every row: terminals, tabs, agents, phones
baneyspaces agent on 9 # workspace 9 becomes the agent workspace
baneyspaces agent run --dir ~/code/app -- npm test # run a command there
baneyspaces agent open TextEdit ~/notes.txt # open a file there
baneyspaces phone ls # connected Android phones and iPhones
baneyspaces doctor # what's set up and what isn'tThe agent workspace's apps are parked out of sight instead of hidden, so Cua and other automation can click and type in them from behind. Nothing that happens there switches you to it.
baneyspaces remote on lets another Mac on your Tailscale network send work to this one's agent workspace with a token from baneyspaces remote token. It's off by default, and a remote caller can only list rows and start agent work.
Uninstall
curl -fsSL https://raw.githubusercontent.com/baney75/baneyspaces/main/uninstall.sh | bashIt quits BaneySpaces, which brings every window back, then removes the app and its settings.
Something unclear or out of date? Open an issue on GitHub.