mac-dev-station

One command sets up a complete productivity stack on a fresh Mac. Karabiner · AeroSpace · Hammerspoon · kitty · Raycast · zsh + starship — all wired together.

Homebrew (recommended)
brew tap oleg-koval/tap brew install mac-dev-station mac-dev-station
or
Without Homebrew
curl -fsSL https://raw.githubusercontent.com/oleg-koval/mac-dev-station/main/install.sh | bash

13 idempotent phases

00
Pre-flight
macOS version, brew, xcode-select, gh auth check
01
Foundations
Install/update Homebrew and xcode-select
02
Brewfile
Install all CLI tools and GUI apps
03
Folders
Create ~/Work (PARA), ~/oss, ~/code
04
Karabiner
Hyper key config + app launchers
05
AeroSpace
Tiling WM with auto-routing to workspaces
06
Hammerspoon
Display dock/undock auto-detection
07
kitty
Terminal config + project switcher (Cmd+P)
08
Shell
zsh + starship + aliases + 9am backup cron
09
Raycast
Open for first-time setup (Cmd+Space)
10
OSS starters
Clone oleg-koval/starters
11
Permissions
Walks through Accessibility and Driver Extensions
12
Verification
Final smoke test of every component
13
Cheatsheet
Prints all hotkeys to terminal

What gets installed

CLI tools via Homebrew

gitghfnm uvstarshipzoxide atuinfzfripgrep fdbateza glowbtopjq yqdeltatmux neovimdisplayplacer

GUI apps via cask

kittycursorraycast karabiner-elementshammerspoon aerospaceorbstack 1password-cli

Fonts

Geist Mono JetBrains Mono Nerd Font

Hotkey map

Hyper Key (Caps Lock)

Caps tapEscape
Caps+TWS 3 → kitty
Caps+BWS 1 → Chrome
Caps+CWS 2 → Cursor
Caps+SWS 4 → Slack
Caps+LWS 4 → Linear
Caps+FWS 5 → Figma
Caps+NWS 6 → Notion
Caps+H/J/K/;Arrow keys

AeroSpace (Alt prefix)

Alt+1-9Switch workspace
Alt+Shift+1-9Move window to WS
Alt+H/J/K/LFocus window (vim)
Alt+Shift+H/J/K/LMove window
Alt+FFullscreen
Alt+/Tiling layout
Alt+,Accordion layout

Hammerspoon

Cmd+Ctrl+Alt+DForce display layout
(auto)Monitor connect/disconnect

kitty

Cmd+PProject switcher (fzf)
Cmd+TNew tab
Cmd+DVertical split
Cmd+Shift+DHorizontal split

Shell aliases

dev <name>      # Full env: Cursor + kitty + GitHub in correct workspaces
work <name>     # kitty only, workspace 3
proj            # fzf project picker → cd
go              # fzf picker → full dev env
newproj <name>  # Scaffold new (project|area|scratch|oss)
sync_projects   # Refresh kitty picker
dock / undock   # Manual display layout trigger
dclean          # Docker compose nuke + rebuild