Your dev stack is using 11.2 GB.
Get it back.

Ramback is a free menu bar app that shows every simulator, emulator, Gradle daemon, container and dev server eating your Mac's memory, and stops them in one click.

No account, no card. Apple silicon and Intel.

or with Homebrew
brew install --cask heykadirhan/tap/ramback
11.2 GB
dev stack · pressure critical · swap 2.1 GB
Gradle & Kotlin 3.4 GB
Gradle daemon 8.7idle 1dstarted by Android Studio · 1d2.2 GB
Kotlin daemonidle 1hstarted by Android Studio · 4h1.2 GB
Android 3.1 GB
Pixel 8 API 35started by Android Studio · 4h3.1 GB
Simulators 2.4 GB
iPhone 17 Prostarted by Xcode · 3h2.4 GB
shopper-web 2.3 GB
Next.js :3000started by Claude Code · 2h1.0 GB
Vite :5173idle 7hstarted by Cursor · 9h900 MB
Claude Code3 processes · 2h400 MB
⌫ stopP pin

The real panel, rebuilt for the web. Hover a row to find it on the desktop: ⌫ stops it, P pins it. ⌘⌫ is Clean slate.The real panel, rebuilt for the web. Tap a row's stop button or Clean slate.

How a 16 GB Mac runs out of memory by four o'clock

19.1 GB used of 16 GB · 3.1 GB in swap

  • macOS and your apps7.9 GB
  • postgres1.4 GB
  • iPhone 17 Pro1.8 GB
  • Gradle daemon ×43.8 GB
  • Pixel 83.1 GB
  • Metro0.4 GB
  • next dev0.7 GB
  1. Postgres has been up since Monday. That one can stay.

  2. You run the iOS app, and Xcode boots an iPhone 17 Pro simulator.

  3. Android Studio syncs the project. Gradle starts four daemons, and they keep their heap after every build.

  4. A Pixel 8 emulator for the Android side. That's past 16 GB, so macOS starts swapping to disk.

  5. Metro, for the React Native screen.

  6. You ask Claude Code to fix a page. It starts next dev, fixes the page and moves on. The server stays.

  7. You closed Xcode and Android Studio at lunch. Everything they started is still running, and the cursor starts to spin.

  8. One click on Clean slate: 9.8 GB back. Postgres keeps running.

Each thing gets stopped the way its own tool would stop it

Activity Monitor shows you qemu-system-aarch64 at 3 GB. Ramback shows you Pixel 8, says Android Studio started it four hours ago, and shuts it down with adb instead of a kill. Anything still running 5 seconds later gets a question, not a force quit.

And what it leaves alone

Your database
No rule, no Clean slate and no agent stops it. You can, after a confirm.
Anything mid-build
A broken build costs more than the RAM.
Your files
Disk cleanup moves them to the Trash. Only caches that download again are removed for good, after a second yes.
Your data
Process names, paths and projects stay on your Mac. Anonymous usage counts only if you opt in.
The Ramback panel grouped by type: Gradle and Kotlin daemons, an Android emulator, simulators, OrbStack, dev servers, a Claude Code session, Metro and Postgres, each with its RAM.
The panel grouped by type, on the app's sample data

Three Gradle daemons, two dev servers your agents left running, and a simulator you forgot

That's a normal afternoon. Ramback finds them in one pass over the process table and counts memory the way Activity Monitor does. Each row tells you enough to decide in a second:

idle 2h
Faded rows haven't done anything for that long. They're the first to go.
building
Mid-compile. Clean slate and the rules leave it alone until the build is done.
the pin
Pinned rows stay through Clean slate and every rule. Press P on any row.
the lock
Databases and their containers keep running until you stop them yourself.
started by
Claude Code, Cursor, Codex, Xcode, Android Studio or your terminal, read from the process tree.

Rules can do the tidying while you work

One switch each, at most one number, no editor. The dev server rules are free. Every automatic stop is logged, and with Pro, simulators, emulators and containers come back with Undo.

Dev serversFree

  • Stop dev servers idle for3 h
  • When an agent quits, stop the servers it started
  • When a project folder is deleted, stop its servers

Simulators, emulators and daemonsPro

  • When Xcode quits, shut down simulators
  • When Android Studio quits, stop emulators and daemons
  • Stop Gradle and Kotlin daemons idle for60 min
  • Before sleep, Clean slate

Rules never stop a database, anything pinned or anything building, and never force-stop.

The disk tab finds what Xcode and Android Studio leave behind

Old simulator runtimes, DerivedData per project, iOS DeviceSupport, Android images no emulator uses, Gradle caches, and node_modules you haven't touched in 90 days. The scan and the total are free.

Cleaning moves your files to the Trash. Only caches that download again are deleted for good, after a second yes, and Ramback never empties the Trash for you. Cleaning is part of Pro.

The Disk tab: 47.2 GB reclaimable, with DerivedData per project, iOS DeviceSupport, Android emulators and system images, Xcode Archives, node_modules and Gradle under Moves to Trash, and simulator runtimes, Docker, package caches and Xcode Previews under Deleted for good.
The Disk tab, on the app's sample data
Three Ramback notifications under the menu bar: Memory is getting tight, Pixel 8 API 35 3.1 GB plus 2 idle Gradle daemons 2.6 GB, free 5.7 GB? Then Freed 2.4 GB when Xcode quit, with Undo, and Freed 1.3 GB from an idle Gradle daemon.

A heads-up before it gets slow

When macOS reports memory pressure, Ramback picks the biggest idle things you haven't pinned and asks once, with the number it would free. At most one warning every 30 minutes. Rules tell you what they stopped, and Undo brings it back. Both are part of Pro.

Your agents can check before they boot another emulator

A CLI and an MCP server ship inside the app, free. An agent can see what's running, stop the servers it started and find a free port. It can't stop your database, your pins, a build or another agent's servers.

$ ramback status
Dev stack 3.7 GB · pressure warning · swap 4.4 GB · scanned in 181 ms

Databases
  MongoDB :27017                       0.1 GB  database · guarded · 1 proc
  PostgreSQL :5432                     0.0 GB  database · guarded · 6 proc
Xcode
  SWBBuildService                      1.4 GB  xcode · started by Xcode · 9 proc
ramback
  Claude Code                          0.4 GB  agent · not stoppable · 5 proc
# …and four more Claude Code sessions, 0.4–0.5 GB each
$ claude mcp add ramback -- /Applications/Ramback.app/Contents/Helpers/ramback mcp

MCP tools: list_running, stop, free_memory, find_free_port. CLI and MCP docs →

Everything in the demo above is free

No account, no card, no time limit. Free is the whole menu bar app. Pro adds the parts that work on their own, for $19 once.

Free

$0, for as long as you use it

  • Everything running, with its RAM and what started it
  • Stop, pin and Clean slate
  • The dev server and agent rules
  • The disk scan, with the total
  • The CLI and the MCP server for agents

Pro

$19 once for 2 Macs, with every 1.x update

Everything in Free, plus:

  • A warning when memory gets tight
  • Simulator, emulator, daemon and sleep rules
  • Undo for what a rule stopped
  • Disk cleanup
  • Activity log with a weekly total
Every install includes 14 days of Pro, no card. Then it goes back to Free by itself.

30-day refund, no questions. Team: one key for 10 Macs, $69.

Prefer the App Store? Ramback Lite, for ports and dev servers, is on its way.

I built it for my own Mac first

The terminal output above is mine, from an ordinary afternoon: memory pressure at warning, 4.4 GB in swap, and five Claude Code sessions holding half a gigabyte each.

Activity Monitor tells you something is using the memory. It doesn't tell you it's yesterday's simulator, or a dev server an agent started and never stopped. I wanted one list that does, and one button that stops the right things and leaves the database alone.

I'm building Ramback on my own. No company, no investors, so I can promise a few things directly:

  1. Free stays useful.The full list, Clean slate, the dev server and agent rules, the disk scan and the CLI never go behind the paywall.
  2. It asks before it forces.Everything gets a gentle stop first. If something won't quit, you decide.
  3. If you buy Pro, you pay once.$19 for 2 Macs, with every 1.x update. Nothing renews.
Tell me what Ramback should stop next, or what it got wrong: [email protected]. I read every email myself.

Questions

Is Ramback free?

Yes. The list, stopping, Clean slate, the dev server and agent rules, the disk scan, the CLI and the MCP server are free for as long as you use them, with no account. Every install starts with 14 days of Pro so you can try the rest; when they end, Ramback goes back to Free on its own. There's nothing to cancel. Pro is $19 once.

How is it different from Activity Monitor?

Activity Monitor lists processes. Ramback groups them by what they are (simulators, emulators, Gradle daemons, containers, dev servers, agent sessions), shows which tool started each one and how long it has been idle, and stops them the way their own tools do, with simctl, adb or docker instead of a kill.

Is it safe? What does it never stop?

It stops things gently first: simctl shutdown, adb emu kill, docker stop, or SIGTERM to the process tree. If something is still running after 5 seconds, it asks before forcing it. Databases only stop after you confirm, nothing mid-build is touched, and it never goes near root's processes, other users' processes or anything under /System.

Why isn't it on the Mac App Store?

App Store apps run in a sandbox that can't call simctl, adb or docker, or read ~/Library/Developer. That's most of what Ramback does. A smaller Lite version for ports and dev servers is on its way to the App Store.

What leaves my Mac?

Nothing about your work. Process names, paths and project names stay on your Mac. If you opt in, anonymous counts (what kind of thing was stopped, how often) go to TelemetryDeck. The only other calls are license checks with Polar and update checks with ramback.app. Privacy details →

Does it work with OrbStack, Colima or Podman?

Docker Desktop, OrbStack and Colima, yes. The VM counts toward the total, and containers show their share of it, grouped by Compose project. Podman isn't detected yet. Why the Docker VM holds on to memory →

Does it work on Intel Macs?

Yes, it ships as a universal binary. It needs macOS 14 Sonoma or later.

Does it need Full Disk Access or Accessibility?

No. If your projects live in Desktop or Documents, macOS asks once so Ramback can read folder names to find project roots.

How do I free port 3000 on a Mac?

Open Ramback and stop the dev server listening on :3000, or run ramback stop :3000 in a terminal. It stops the whole process tree, so the port is actually released. The manual way, with lsof →

Why are Gradle daemons using so much RAM?

Every Gradle version, JDK and set of JVM options gets its own daemon, and each keeps 1–2 GB after the build ends. Ramback lists every Gradle and Kotlin daemon with its RAM and idle time, and a rule stops idle ones after 60 minutes. Capping them in gradle.properties →

Can it clear Xcode DerivedData and old simulator runtimes?

Yes. The Disk tab finds old simulator runtimes, DerivedData per project, iOS DeviceSupport, Android images no emulator uses and stale Gradle versions, and shows the total for free. Cleaning is Pro: your files go to the Trash, and only caches that download again are deleted for good, after a second yes.

See what's running on your Mac right now

The first scan takes about a fifth of a second.

No account, no card. Apple silicon and Intel.

or with Homebrew
brew install --cask heykadirhan/tap/ramback