Why I built this

The month I got used to the fan.

By Albert 4 min read

For almost a month, my MacBook sounded wrong.

Not broken exactly. Just constantly busy. The fan would come up, stay there, calm down for a minute, then start again. At first it annoyed me. Then, which is worse, I got used to it.

I blamed everything except the thing I should have checked.

Chrome. Slack. Docker. Some half-dead dev server from last week. A Next.js app I forgot to close. Maybe Spotlight. Maybe macOS doing some private Apple ceremony in the background.

And the stupid part is: I knew how to check.

I could have opened Terminal and run:

lsof -nP -iTCP -sTCP:LISTEN

Or, honestly, I could have just asked an LLM:

what is the macOS command to see what is listening on localhost?

It would have given me the same command in five seconds.

But I kept doing the thing I always do with small annoying problems: later.

Later after this task. Later after dinner. Later when the fan gets really bad. Later when I have the patience to read a wall of ports and PIDs and decide which one is mine, which one belongs to macOS, which one is Homebrew, and which one will immediately come back after I kill it.

That is the embarrassing part. Not that I didn't know. I knew enough to solve it, and still didn't solve it.

The night it went quiet

Then one evening it suddenly got quiet.

And I had this strange moment where I realized: wait, this is what the MacBook is supposed to sound like.

Nothing.

I had lived with the fan for so long that I had started treating it as normal. Warm keyboard, battery dying, this low constant noise under everything. Just part of the day.

But after it went quiet, I couldn't unhear the difference. I couldn't go back to pretending the fan was fine.

So that was finally the moment I started digging.

First Activity Monitor. Sort by CPU. Sort by Energy. Nothing dramatic at that exact second, but there were enough traces to make me suspicious. Then Terminal.

lsof -nP -iTCP -sTCP:LISTEN

And there it was:

Ollama, listening on 11434.

That by itself does not prove anything. Lots of things listen on localhost and do no harm. So I pulled the PID and checked how long it had been alive:

ps -p <PID> -o lstart,etime,%cpu,%mem,command

That was the part that made me laugh.

It had not been "running from earlier today."
It had been sitting there for weeks.

I had started Ollama for one quick test back in early May, because of course it was "one quick test," and then I never really shut the thing down. At some point it became part of the weather. Fan noise, warm keyboard, battery disappearing faster than it should. Just normal laptop misery.

Then I checked the Ollama side too:

ollama ps

Now the picture made sense. Local service still alive. Models loaded at different points. CPU and GPU spikes I had been mentally filing under "MacBooks are weird now."

Ollama was not the villain. It was doing what developer tools often do: stay useful in the background long after the moment you needed them.

The real problem was visibility.

The answer was one command away, but "one command away" is a surprisingly good hiding place when you are tired.

What I built

That is why I built Localhost Explorer.

It is a small Mac app that lives in the menu bar and shows what is listening on localhost right now. Ports, processes, working folders, and the boring but important context around them.

Not just:

"PID 7213 is listening on 11434."

But:

"This is Ollama. It has been around for a while. It is bound to localhost. Here is where it came from. Here is the sane way to stop it."

Because kill -9 is not a plan. Sometimes it works. Sometimes launchd brings the process right back. Sometimes Homebrew is managing it. Sometimes Docker is the real parent. Sometimes the port is not the problem, just the clue.

I built Localhost Explorer for the exact moment when you know there is probably a command for this, you could ask an LLM for it, you could read the man page, you could debug it properly…

…but you are done for the day.

One click should be enough to see the mess.

Try it on your Mac.

$5. One Mac. Yours to keep. Local-only, no telemetry, no account.