For macOS 14.6 and later

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.

7-day free trial · One-time $9.99 · No tracking · macOS 14.6+
Nix Settings
Nix Menubar
The problem

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.

Without Nix
Seven apps still running. You closed every window an hour ago.
S
N
P
M
M
M
P
Active background apps7
With Nix
You closed the windows. The apps are actually gone.
S
N
P
M
M
M
P
Active background apps1
How it works

Three steps. Invisible to you.

Nix runs quietly in the menu bar. It only acts when you do.

01

Detect

Nix watches window events via the macOS Accessibility API. When the last window closes, it fires.

AXObserver · Event-driven · Zero polling
02

Decide

Each app gets its own rule. Quit, Hide, Ignore, or Prompt. Add a grace period in case a new window opens within seconds.

Per-app rules · Configurable grace
03

Act

Nix sends a clean termination — the same as ⌘Q. Apps handle their own shutdown safely. Nothing is force-killed.

Native termination · Safe by design
Features

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.

Why Nix

More control than any other quit-on-close tool.

Capability
Nix
Typical Quit-on-Close Apps
Native SwiftUI UI
Rare
Per-app rules
Limited
Grace periods
Often Missing
Hide Mode
Often Missing
Prompt Mode
Rare
Accessibility-based detection
Varies
Launch at Login
Varies
No Usage Tracking
Varies

Per-app rules, native performance, and a tiny footprint. One menu bar icon, no complexity.

One-Time Purchase · No subscriptions ever
Built for macOS

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.

SwiftSwiftUIAppKitAccessibility APISMAppServiceAXObserver
WindowMonitor.swift
// 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.

No analytics
No usage tracking
One network call (license only)
No Nix-hosted accounts
FAQ

Questions, answered.

Pricing

$9.99, once.
No subscriptions.

Lifetime License

$9.99
One-time purchase

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
Download Nix

7-day free trial included. Purchase available directly inside Nix.