nikitabobko/AeroSpace
AeroSpace is an i3-like tiling window manager for macOS
About nikitabobko/AeroSpace
nikitabobko/AeroSpace is an open-source project on GitHub, mainly written in Swift. AeroSpace is an i3-like tiling window manager for macOS It currently holds 23,218 stars and 697 forks with 208 open issues, and was last pushed on 2026-09-21 (repository created 2023-05-21).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #100 with 31 new stars today.
GitHub Repository Details
README
AeroSpace Beta 
AeroSpace is an i3-like tiling window manager for macOS
Videos:
Docs:Key features
- Tiling window manager based on a tree paradigm
- i3 inspired
- Fast workspaces switching without animations and without the necessity to disable SIP
- AeroSpace employs its own emulation of virtual workspaces instead of relying on native macOS Spaces due to their considerable limitations
- Plain text configuration (dotfiles friendly). See: default-config.toml
- CLI first (manpages and shell completion included)
- Doesn't require disabling SIP (System Integrity Protection)
- Proper multi-monitor support (i3-like paradigm)
Installation
Install via Homebrew to get autoupdates (Preferred)
brew install --cask nikitabobko/tap/aerospace
In multi-monitor setup please make sure that monitors are properly arranged.
Other installation options: https://nikitabobko.github.io/AeroSpace/guide#installation
[!NOTE]
By using AeroSpace, you acknowledge that it's not notarized.
> Notarization is a "security" feature by Apple.
You send binaries to Apple, and they either approve them or not.
In reality, notarization is about building binaries the way Apple likes it.
> I don't have anything against notarization as a concept.
I specifically don't like the way Apple does notarization.
I don't have time to deal with Apple.
> Homebrew installation script is configured to
automatically delete com.apple.quarantine attribute, that's why the app should work out of the box, without any warnings that
"Apple cannot check AeroSpace for malicious software"
Community, discussions, issues
AeroSpace project doesn't accept Issues directly - we ask you to create a Discussion first. Please read CONTRIBUTING.md for more details.
Community discussions happen at GitHub Discussions. There you can discuss bugs, propose new features, ask your questions, show off your setup, or just chat.
There are 7 channels:
- #all.
Project status
Public Beta. AeroSpace can be used as a daily driver, but expect breaking changes until 1.0 is reached.
What stops us from 1.0 release:
- [x] https://github.com/nikitabobko/AeroSpace/issues/131 Performance. Implement thread-per-application to circumvent macOS blocking AX API.
- [ ] https://github.com/nikitabobko/AeroSpace/issues/1215 _Big refactoring_. Rewrite mutable double-linked core tree data structure to immutable single-linked persistent tree.
- [ ] https://github.com/nikitabobko/AeroSpace/issues/1216 The big refactoring will help us to fix stability issue that windows may randomly jump to the focused workspace
- [ ] https://github.com/nikitabobko/AeroSpace/issues/68 The big refactoring will help us to support macOS native tabs
- [x] https://github.com/nikitabobko/AeroSpace/issues/278 Implement shell-like combinators.
||, &&, ; and eval command to send multiple commands in one go.
- [ ] https://github.com/nikitabobko/AeroSpace/issues/1012 Investigate a possibility to use
CGEvent.tapCreateAPI for global hotkeys - [ ] https://github.com/nikitabobko/AeroSpace/issues/28 Maybe it will allow to distinguish left and right modifiers. Maybe not
- [ ] https://github.com/nikitabobko/AeroSpace/issues/2 sticky windows
- [ ] https://github.com/nikitabobko/AeroSpace/issues/260 Dynamic TWM
Development
A notes on how to setup the project, build it, how to run the tests, etc. can be found here: dev-docs/development.md
Project values
Values
- AeroSpace is targeted at advanced users and developers
- Keyboard centric
- Breaking changes (configuration files, CLI, behavior) are avoided as much as possible, but it must not let the software stagnate.
- AeroSpace doesn't use GUI, unless necessarily
- AeroSpace will never provide a GUI for configuration.
- Status menu icon is ok, because visual feedback is needed
- Provide _practical_ features. Fancy appearance features are not _practical_ (e.g. window borders, transparency, animations, etc.)
- "dark magic" (aka "private APIs", "code injections", etc.) must be avoided as much as possible
- Right now, AeroSpace uses only a single private API to get window ID of accessibility object
_AXUIElementGetWindow.
- AeroSpace will never require you to disable SIP (System Integrity Protection).
- The goal is to make AeroSpace easily maintainable, and resistant to macOS updates.
- Play nicely with existing macOS features.
- Ricing.
macOS compatibility
- AeroSpace binary runs on: macOS 13+
- AeroSpace debug build from sources is supported on: macOS 14+
- AeroSpace release build from sources is supported on: macOS 15+ (Requires: Swift 6.4, Xcode 26.6+)
Sponsorship
AeroSpace is developed and maintained in my free time. If you find it useful, consider sponsoring.
People who have write access
In alphabetical order:
Tip of the day
defaults write -g NSWindowShouldDragOnGesture -bool true
Now, you can move windows by holding ctrl+cmd and dragging any part of the window (not necessarily the window title)
Source: reddit
Related projects
In alphabetical order:
- Amethyst -
- rift -
- yabai -