Ships with 1.0
CLI and MCP
A command-line tool and an MCP server ship inside the app, so coding agents can check what's running before they boot another emulator, and stop their own servers when they're done.
Install
Both live inside the app, at /Applications/Ramback.app/Contents/Helpers/ramback. MCP clients can use that path as it is. To type ramback in a terminal, link it onto your PATH once:
$ sudo mkdir -p /usr/local/bin && sudo ln -sf /Applications/Ramback.app/Contents/Helpers/ramback /usr/local/bin/ramback
Commands
- ramback status
- Everything running, grouped, with RAM, memory pressure and swap.
- ramback status --json
- The same list as JSON, for scripts and agents.
- ramback stop <id|port|project>
- Stops one row by its id, by the port it listens on, or every row in a project. Same stop as the app: simctl, adb, docker or SIGTERM.
- ramback free <GB>
- Stops idle rows you haven't pinned, biggest first, until about that much memory is free. Skips databases and anything building.
- ramback mcp
- Runs the MCP server over stdio. Your MCP client starts it; you don't type it yourself.
Memory is in bytes, counted the way Activity Monitor counts it. Rows Ramback doesn't stop, like an agent itself or the Docker VM, are still listed.
$ ramback status --json
[
{
"building" : false,
"guarded" : false,
"id" : "sim:4F1A…",
"kind" : "simulator",
"memory" : 1800000000,
"pids" : [ 51022 ],
"startedBy" : "Xcode",
"title" : "iPhone 17 Pro"
},
{
"building" : false,
"cwd" : "/Users/you/code/shop",
"guarded" : false,
"id" : "server:48213",
"idleSince" : "2026-10-17T09:12:44Z",
"kind" : "server",
"memory" : 712000000,
"pids" : [ 48213, 48230 ],
"ports" : [ 3000 ],
"project" : "shop",
"startedBy" : "Claude Code",
"title" : "next dev"
}
]MCP server
Add it to any MCP client that reads a JSON config:
{
"mcpServers": {
"ramback": { "command": "/Applications/Ramback.app/Contents/Helpers/ramback", "args": ["mcp"] }
}
}Or, in Claude Code:
$ claude mcp add ramback -- /Applications/Ramback.app/Contents/Helpers/ramback mcp
Tools
- list_running
- Everything running, with RAM, who started it, and whether it's idle or building. The same data as status --json.
- stop
- Stops one row, if the agent is allowed to (see below).
- free_memory
- Frees up to the amount asked for, from rows the agent is allowed to stop, biggest idle first.
- find_free_port
- A local port nothing is listening on, so the agent doesn't start a second server on 3000.
What an agent can't do
The MCP server checks these itself. They don't depend on what the agent was told.
- Stop anything you pinned. Pinned rows are yours.
- Stop a database. Postgres, MySQL, Redis and Mongo stay up.
- Stop anything mid-build. It waits, like the rules do.
- Stop what another agent started. Its own servers are fair game.
- Clean the disk. Disk cleanup isn't available over MCP at all.
Raycast
A Raycast extension built on the same CLI comes next.