SnapState
Native Swift window manager for macOS
Last verified:
What is SnapState?
SnapState is a native Swift menu bar utility for macOS that preserves and restores desktop workspace layouts. It captures window coordinates, monitor configurations, active browser tabs, and application layouts, then restores them instantly with a keyboard shortcut or automatically when displays change. The tool is built entirely on macOS native APIs (Accessibility Services, Carbon hotkeys, Core Graphics) with no Electron bloat, making it lightweight and performant.
Key features include precise window coordinate mapping across all spaces using CGWindowListCopyWindowInfo, deep browser session spying for Safari/Chrome/Edge/Brave/Arc to restore tab context, hardware topology auditing that detects monitor arrangement changes and remaps layouts accordingly, global keyboard triggers (⌃⌘1-6) to restore workspaces from any app, monitor auto-restore that rebuilds layouts when screens reconnect, and zero-footprint operation as a background menu bar process with no Dock icon. SnapState stores layouts locally in ~/Library/Application Support/SnapState/states.json with ISO-8601 timestamps.
SnapState is designed for macOS power users, developers, designers, and anyone who works with multiple monitors or frequently connects/disconnects external displays. It's particularly valuable for users whose window layouts get scrambled when changing display configurations. The tool serves individuals who want deterministic, fast workspace restoration without cloud services, accounts, or tracking.
SnapState pricing
Pricing model: Freemium
SnapState is completely free to use with no subscription, premium tier, or hidden fees. It is open-source under the MIT license, available forever without cost. No accounts, sign-ins, or cloud services are required. The source code is public on GitHub for anyone to audit, modify, or self-host.
SnapState pros
- Completely free with no subscription or hidden fees
- Open-source under MIT license with public GitHub repository
- Native Swift/SwiftUI built on macOS core APIs, no Electron bloat
- No accounts, sign-ins, or cloud services required
- Fully offline with no tracking or analytics
- Lightweight menu bar app with negligible resource overhead
- No Dock icon for clean, unobtrusive operation
- Precise window coordinate mapping across all active spaces
- Deep browser session spying supports Safari, Chrome, Edge, Brave, Arc
- Automatically detects monitor arrangement and resolution changes
- Global hotkeys (⌃⌘1-6) work from any active application
- Monitor auto-restore rebuilds layouts when screens reconnect
- Deterministic and fast restores using low-level AXUIElement system calls
- Zero-footprint background agent using LSUIElement subsystem
- Programmatic layout injection without requiring root access
- 1.2-second thread settling interval ensures heavy apps spawn safely
- Carbon global hotkey integrations for reliable keyboard triggers
- Window focus restoration maintained after layout restore
SnapState cons
- macOS-only, no Windows or Linux support
- Requires Accessibility Services permission to function
- Browser spying limited to Safari, Chrome, Edge, Brave, Arc only
- No cloud sync for layouts across multiple Macs
- No mobile or tablet companion app
- Local storage means layouts lost if Library folder deleted
- No team collaboration or shared workspace features
- No advanced automation beyond hotkeys and monitor detection
Frequently asked questions about SnapState
What is SnapState?
SnapState is a native Swift menu bar utility for macOS that captures and restores your entire desktop workspace layout. It preserves window positions, monitor configurations, and browser tab states, then restores them instantly with a keyboard shortcut or automatically when you reconnect external monitors.
Is SnapState free?
Yes, SnapState is completely free to use with no subscription, premium tier, or hidden fees. It is open-source under the MIT license, and the developer has confirmed there are no plans for monetization.
Do I need to create an account?
No, SnapState requires no accounts, sign-ins, or cloud services. Everything runs locally on your Mac, and all layout data is stored in ~/Library/Application Support/SnapState/states.json.
Which browsers does SnapState support for tab restoration?
SnapState supports deep browser session spying for Safari, Chrome, Edge, Brave, and Arc. It reads active tab URLs and window state from these browsers to provide full context restoration when you restore a workspace.
What keyboard shortcuts does SnapState use?
SnapState uses global system-wide hotkeys ⌃⌘1 through ⌃⌘6 to instantly restore target workspaces from any active application. These are Carbon-based global hotkeys that work regardless of which app is in focus.
Does SnapState work with external monitors?
Yes, SnapState is specifically designed to handle external monitor scenarios. It detects monitor arrangement and resolution changes using NSApplication.didChangeScreenParameters, then automatically remaps layouts onto the correct displays. Monitor auto-restore rebuilds layouts when screens reconnect.
Is SnapState open-source?
Yes, SnapState is licensed under MIT and is completely open-source. The source code is publicly available on GitHub at https://github.com/SoulSniper-V2/SnapState, allowing anyone to audit, modify, or contribute to the project.
Does SnapState track my data or send it to the cloud?
No, SnapState is fully offline with no tracking, no analytics, and no cloud services. All layout data stays local on your Mac, and the app has no internet connectivity requirements.
How does SnapState capture window positions without root access?
SnapState utilizes macOS Accessibility Services (AXUIElement) to query active window positions and programmatically inject position/size attributes. It uses low-level system calls like CGWindowListCopyWindowInfo and AXUIElementSetAttributeValue without requiring root or kernel extensions.
What happens if I close SnapState or restart my Mac?
SnapState runs as a lightweight menu bar background process with no Dock icon. Your saved layouts persist in ~/Library/Application Support/SnapState/states.json even after restarts. You can restore layouts anytime by triggering the global hotkey, even after a reboot.