---
title: "What’s running on a developer’s Mac. — iSurge"
description: "Dev servers, ports, containers and Homebrew pile up in a workday. How to find them on a Mac, and how iSurge’s Dev tab shows them in one place."
url: https://isurgemac.com/blog/whats-running-on-a-dev-mac/
---

[BLOG](https://isurgemac.com/blog/)

# What’s running on a developer’s Mac. Why iSurge has a Dev tab, and what it shows.

Dev servers, ports, containers and Homebrew pile up in a workday. How to find them on a Mac, and how iSurge’s Dev tab shows them in one place.

By Ruthran Baskar · 27 October 2026 · 6 min read

A developer’s Mac collects programs all day. A dev server for one project, a second one for another, a database in a container, a file watcher, a test runner, the helpers a coding agent starts. Close the terminal or end the session and most of them stop. Some don’t. By evening, the Mac is running things nobody is using, and holding ports and memory for them.

This post is about finding all of that on a Mac: first with the commands macOS and your tools already have, then with iSurge’s Dev tab, which puts it in one place.

IN SHORT

- A dev Mac fills up with servers, open ports, containers, Homebrew tools and programs left running after their terminal closed.

- Terminal can find each kind, but with a different command each time, and none of them says which project a program is for.

- iSurge’s Dev tab shows it in one window: Running, Containers, Ports and Homebrew.

- Left behind lists what kept running after you closed it, and Pause stops a whole project until you Resume it.

DEV

## What fills up a developer’s Mac during the day?

Five kinds of things, mostly:

- **Dev servers and watchers.** `next dev`, `vite`, `uvicorn`, `tailwindcss --watch`. Each is its own program, and one project can run several.

- **Ports.** Every server holds one. Start a project twice, or forget the first one, and the second gets “port already in use”.

- **Containers.** A database, a search engine, a mock API. They run inside a container engine’s own virtual machine, which holds memory of its own.

- **Homebrew.** The tools under all of it: node, python, git, redis. They get updated, they pile up, and old versions stay on disk.

- **Things left behind.** A server started in a terminal you closed, or by an agent whose session ended. It keeps running and keeps its port.

None of this is a fault. It’s what a workday of building things looks like. The trouble is seeing it.

DEV

## How do you find it with Terminal?

Each kind has its own command. To see which programs are listening on a port:

`lsof -iTCP -sTCP:LISTEN -n -P`

Or just one port:

`lsof -i:3000`

For containers, the Docker command (if your engine speaks Docker’s way):

`docker ps`

And for Homebrew, what has a newer version and which services it runs:

`brew outdated brew services list`

Programs left behind are the hardest. A program whose parent went away is handed to launchd, so its parent process number becomes 1. This lists node programs with their parent:

`ps -axo pid,ppid,command | grep node`

All of this works. But it’s five commands with five kinds of answers, and none says which project a program belongs to, who started it, or how much memory the whole project takes. Activity Monitor doesn’t either: a busy day shows up as row after row of `node`. We wrote about why Activity Monitor has so many rows in [A thousand processes](https://isurgemac.com/blog/a-thousand-processes/).

DEV

## Why iSurge has a Dev tab

iSurge already reads every program on your Mac to show which apps use the most. Dev is built on the same reading, with more detail for your own programs: the folder each one runs in, the command that started it, its parent and the ports it listens on. From that it can tell three things Terminal leaves to you.

- **Which project it’s for.** The folder a program runs in, up to the nearest folder with a `.git`, `package.json`, `Package.swift`, `pyproject.toml` or the like.

- **Who started it.** You in a terminal (Terminal, iTerm2, Warp, Ghostty, kitty), a coding agent, or an editor.

- **Whether its starter is gone.** If the terminal closed or the session ended and it’s still running, it was left behind.

Dev sits in the iSurge window’s sidebar, with four side tabs: Running, Containers, Ports and Homebrew. It shows up on its own once your Mac runs dev servers, containers or Homebrew, and Settings › Dev can show or hide it.

DEV

## Running: every project, and what it costs

Running has one card per project. Each card says where it lives, who started it and when, and the memory it uses, split by what it runs: its own programs, its containers, an agent working in it. Below that are its CPU, the battery it used today and the size of its build folders. **Runs** opens the list of commands behind it.

Running, on a sample Mac: each project with its memory, battery and a Pause button.

If a project asks for one version of a tool and runs on another, the card says so, as on the api card above.

**Pause**stops everything a project runs, its containers too, and gives its memory back. It shows what will stop first. It isn’t a freeze:**Resume** opens Terminal in the project’s folder and runs the same commands again, and starts its containers.

For a long build or test run, the ⋯ menu has **Tell Me When It’s Done**. Its time shows beside the notch, and when it ends iSurge says so under the notch.

DEV

## Left behind: what kept running after you closed it

At the end of Running is **Left behind**: programs still running after what started them went away. A closed terminal window, an ended agent session, a quit editor. Each shows the memory and ports it holds.

**Put Away** shows what goes, then asks each one to stop, as Ctrl-C would in its terminal. Nothing is deleted. A program that ignores that is asked once more, and Force Quit is only there if you choose it. When left-behind programs hold 1 GB or more, the notch tells you once (you can change that in Settings › Dev).

DEV

## Ports: who’s on 3000

Ports shows every port in use on your Mac, grouped by who holds it: your projects, what was left behind, your containers, and the ports apps and macOS keep. Each one names the project and command, who started it and when, and whether only this Mac can reach it or others on your network can too.

Ports: each port with its project, who started it, and Free.

Type a number to see who has it, or that nothing is on it. **Free** asks the program holding the port to stop, as Ctrl-C would. If a server listens on every address, Dev says that others on the network can reach it, and tells you again when you join a new network.

DEV

## Containers and Homebrew

**Containers** reads Docker Desktop, OrbStack, Colima, Rancher Desktop and Podman through their own sockets, and Apple’s own container tool on macOS 26 and later. Each container is filed under its project, with how much of its memory limit it uses. It also shows how much memory each engine’s virtual machine holds, beside what its containers use. Containers stop and start through the engine itself, and nothing is removed unless you ask.

**Homebrew** lists what’s installed, with when each tool last ran and which of your projects use it, then Not used lately, Updates, Services and Clean up. Every change is Homebrew’s own command, shown before it runs, with Homebrew’s own output as it works. iSurge never uses sudo: a step that needs your password gives you the command for Terminal instead. More on each: [projects and what they leave running](https://isurgemac.com/blog/mac-dev-projects-running/), [containers and ports](https://isurgemac.com/blog/containers-and-ports-mac/), and [Homebrew](https://isurgemac.com/blog/homebrew-on-mac/).

NOTCH

## At the notch and in the menu bar

You don’t need the window open. While something runs, the notch has a Dev tab with your projects and their Pause buttons, a task being watched, and your containers. The menu bar’s dropdown has a Dev card too, and both open the full Dev page.

The notch’s Dev tab, while projects run.

PRIVACY

## What stays on your Mac

Everything Dev shows is read on your Mac, and nothing is sent anywhere. It reads your own programs without a password. Homebrew still uses the network itself when it installs or updates something.

## Questions

### Does iSurge stop anything without asking?

No. Put Away, Pause, Free and every Homebrew change ask first and show what will happen. Programs are asked to stop as Ctrl-C would, and Force Quit is only used if you pick it.

### Does Dev need a password or admin rights?

No. It reads your own programs as you, and it never runs sudo. When a Homebrew step needs your password, iSurge shows the command to run in Terminal.

### What if I don’t write code?

Then you won’t see Dev. It appears once your Mac runs dev servers, containers or Homebrew, and Settings › Dev can turn it on or off.

### Is Dev part of the paid version?

Dev came in iSurge 0.4, the first paid version. See [pricing](https://isurgemac.com/pricing/) for Lifetime and the yearly plan. If you had iSurge before 0.4, it stays free for you.

## Get iSurge

Pay once, yours for good.

[Buy iSurge](https://isurgemac.com/pricing/)

Already have it? [Download](https://isurgemac.com/download)

Requires a Mac with Apple silicon (M1 or later) and macOS 15 Sequoia or later. Notch features need a MacBook with a notch; everything else works on any supported Mac.
