Close the window.
Quit the app.
On macOS, closing the last window doesn't actually quit the app. Safari, Notes, Preview, and dozens more keep running in the background. Nix notices, and cleanly quits them for you.
If you close a window, the app should quit. Period.


Closing a window isn't the same as quitting an app.
For apps like Music or Messages, background running is intentional and useful. For everything else, it just drains memory and clutters your dock. Nix gives you the control to decide which apps actually quit.
Three steps. Invisible to you.
Nix runs quietly in the menu bar. It only acts when you do.
Detect
Nix watches window events via the macOS Accessibility API. When the last window closes, it fires.
Decide
Each app gets its own rule. Quit, Hide, Ignore, or Prompt. Add a grace period in case a new window opens within seconds.
Act
Nix sends a clean termination — the same as ⌘Q. Apps handle their own shutdown safely. Nothing is force-killed.
Total control from
the menu bar.
Automatic Quitting
When the last window closes, Nix gracefully quits the app. Just like ⌘Q.
Per-App Rules
Quit, Hide, Ignore, or Prompt — set the behavior for every app individually.
Grace Period
Configurable delay before quitting, in case a new window opens.
Whitelist
Keep specific apps running forever. Background daemons stay untouched.
Pause Mode
One click pauses all monitoring. Resume whenever.
Privacy First
No analytics. No usage tracking. One network call for license validation only.
Launch at Login
Install once. Nix runs quietly in the menu bar from boot.
Native Performance
Written entirely in Swift. Event-driven. Near-zero CPU usage.
More control than any other quit-on-close tool.
Per-app rules, native performance, and a tiny footprint. One menu bar icon, no complexity.
Native, all the way down.
No Electron. No web views. No background polling. Pure Swift and the Accessibility API, driven by event observers. Built the way Mac utilities should be.
// Listen for the last window close — no polling.
import ApplicationServices
final class WindowMonitor {
private let observer: AXObserver
func onLastWindowClosed(app: NSRunningApplication) {
// Apply per-app rule: Quit · Hide · Ignore · Prompt
let rule = RuleStore.rule(for: app.bundleIdentifier)
switch rule {
case .quit: app.terminate()
case .hide: app.hide()
case .ignore: /* no-op */
case .prompt: NixPrompt.ask(for: app)
}
}
}Zero telemetry.
Zero tracking.
No analytics SDK. No crash reporter. No tracking of any kind. The only network call is a single license check at activation; after that, Nix never touches the network.
Questions, answered.
$9.99, once.
No subscriptions.
Lifetime License
Try Nix free for 7 days. Buy the full version directly inside the app. No subscriptions. No accounts. No tracking. Activate on up to 3 Macs.
- Unlimited apps & rules
- Smart whitelist
- Custom grace periods
- Native SwiftUI interface
- No usage tracking
7-day free trial included. Purchase available directly inside Nix.