NiriMac replaces the broken macOS Spaces experience with a developer-focused workspace orchestrator. One command creates a tiled workspace (4 terminals + browser), switchable instantly via hotkey, with live Claude Code agent status in your menu bar.
Built on AeroSpace (tiling WM) and SketchyBar (status bar).
# 1. Install dependencies
brew install --cask nikitabobko/tap/aerospace
brew install FelixKratz/formulae/sketchybar
brew install jq
# 2. Clone and set up
git clone https://github.com/YOUR_USER/niri-mac.git
cd niri-mac
chmod +x bin/niri-mac
# 3. Add to PATH (add to your .zshrc)
export PATH="$PATH:$(pwd)/bin"
# 4. Initialize
niri-mac init
# 5. Create your first workspace
niri-mac workspace create my-project+---------------------------+------------+
| Terminal 1 (claude code) | |
| + | Browser |
| Terminal 2 (shell) | (Arc) |
+---------------------------+ |
| Terminal 3 (shell) | |
| + | |
| Terminal 4 (logs/tests) | |
+---------------------------+------------+
~70% width ~30% width
SketchyBar shows live status per workspace:
[ 1: auth-api (opus|$0.42|67%) ] [ 2: frontend (sonnet|$0.15|23%) ] [ 3: docs (idle) ]
^-- green ^-- yellow (thinking) ^-- gray (no agent)
# Workspaces
niri-mac workspace create <name> # Create workspace with tiled windows
niri-mac workspace create <name> --layout focus --dir ~/src/app
niri-mac workspace switch <name> # Switch (also: Alt+1..9)
niri-mac workspace close <name> [--force] # Close all windows
niri-mac workspace list [--json] # List with Claude Code status
# Layouts
niri-mac layout list # dev, focus, review, monitor
niri-mac layout show <name> # Show layout config
niri-mac layout create <name> # Create custom layout
niri-mac layout windows <name> # Show window definitions
# Terminal
niri-mac terminal list # Show supported terminals
niri-mac terminal test # Verify integration
niri-mac terminal info # Current config
# Dashboard & Status
niri-mac status # Interactive TUI dashboard
niri-mac hotkeys list # Show keybindings
niri-mac doctor # Health check
niri-mac logs [-f] # View logs
niri-mac version # Version info| Key | Action |
|---|---|
Alt+1..9 |
Switch to workspace |
Alt+Shift+1..9 |
Move window to workspace |
Alt+Shift+N |
Create new workspace |
Alt+Shift+W |
Close workspace |
Alt+H/J/K/L |
Focus left/down/up/right |
Alt+Shift+H/J/K/L |
Move window |
Alt+F |
Toggle fullscreen |
Alt+/ |
Toggle tiling direction |
| Layout | Windows | Description |
|---|---|---|
dev |
4 terminals + browser | Default development setup |
focus |
1 terminal + browser | Deep work mode (50/50) |
review |
2 terminals + browser | Code review |
monitor |
1 terminal (fullscreen) | Dashboard/monitoring |
Custom layouts: ~/.config/niri-mac/layouts/
iTerm2, Warp, Kitty, Alacritty, WezTerm, macOS Terminal
Auto-detected during niri-mac init.
Config lives at ~/.config/niri-mac/config.toml:
[general]
terminal = "warp" # auto-detected
browser = "arc" # auto-detected
default_layout = "dev"
status_refresh_interval = 2
[hotkeys]
create_workspace = "alt+shift+n"
close_workspace = "alt+shift+w"
switch_prefix = "alt"
[claude_status]
enabled = true
show_model = true
show_cost = true
show_context_percent = true- macOS Sonoma (14.x) or Sequoia (15.x)
- AeroSpace — tiling window manager
- SketchyBar — menu bar (optional, for status display)
- jq — JSON processing
- A supported terminal emulator
MIT