All posts

Nobody could tell me whether to replace my Mac — including my Mac

It started as shopping. I pasted an Amazon listing for a new MacBook Air into a chat window and asked the obvious question: is this worth buying?

Three and a half hours later I had not bought anything, and there was a new open-source tool in `~/Developer`. This is how that happened, because the interesting part is not the tool — it is that nobody, including me, ever asked for it.

Thirty-five rounds of not answering the question

The conversation started where these always start. Is this the top-spec Air? Is it cheaper than the Apple Store? Is that a JIS keyboard? What would the Taiwan BTS configuration cost? Fine. Answerable.

Then it drifted, the way a real decision does:

  • Why are you recommending the Pro?
  • So why not the top-spec Air?
  • Why not a cheaper one?
  • Why isn't 512 GB enough?
  • Does every Mac user really fill that much?

Every one of those is a question about *my* machine, dressed up as a question about a product page. And the answers kept being general when I needed them specific. Somewhere in there I stopped asking about the laptop and started asking about this one:

  • Can you detect what temperature my machine is running at?
  • You can pull the *historical* temperature record?
  • Can you pull the historical memory pressure too?
  • What's the risk of constant SSD writes?
  • How do I track any of this over time — does macOS have a built-in tool for it?

That last one is where it broke. The honest answer was a list: Activity Monitor for one thing, System Information for another, `sysctl` for a third, `ioreg` for the battery, `df` for the disk. So I asked the question that ended the shopping trip:

The ways you described all mean looking in several places and collating the data myself, right?

Yes. That is exactly what they mean. The machine knows every number needed to answer "am I actually constrained?" and there is nowhere it puts them together.

The move I keep thinking about

At that point I did something I would not have predicted, and I think it is the reusable part of this story. I did not write a spec. I asked:

Given everything we have discussed — what do you think my real need is?

Handing the synthesis over rather than performing it. And then, two rounds later, the answer came out of my own mouth in one sentence:

So what I need isn't a resident monitor. It's something I launch whenever I might be about to replace this machine.

That sentence is the entire product. It is still the first bullet in the README today — *zero daemons, run it on demand when you are contemplating a hardware upgrade* — and every design decision since has been downstream of it. No menu bar icon. No background agent. No history file. Nothing to install and nothing to remember, because you are not supposed to be thinking about it until the day you are thinking about it.

I did not arrive at that by planning. I arrived at it by refusing to accept a general answer to a specific question for thirty-five rounds, and then asking what I had actually been circling.

The tool is the conversation, compressed

Here is the part that only became obvious afterwards.

I had just spent three hours getting a machine to read `sysctl`, `ioreg` and `df`, weigh the numbers against my actual hardware, and turn them into a buy-or-don't verdict. That is not a conversation. That is a program someone had not written yet.

So `sheerstatus` is not a monitoring tool that happens to answer an upgrade question. It is that transcript, tired of being re-run. Three pillars — memory, storage, battery — each with a verdict rather than a reading, because a number is not an answer. Thresholds that scale with the hardware in front of it rather than one somebody hard-coded years ago. And it stops talking when the machine is fine, in one line, because that is the honest answer and you have things to do.

It reads. It prints. It exits. Nothing stays running, nothing is sent anywhere, and the whole thing is a single Bash file you can read end to end in a sitting — which is the only real way to trust something that inspects your machine.

And then it told me not to buy

The last part is my favourite, and I did not plan it either.

I ran the finished tool on the Mac whose replacement had started all this. Storage: critical. Memory: critical. Battery: fine. And the recommendation it prints in that situation says *on your next machine, get more RAM and more storage.*

**Next machine.** Not this purchase. The tool built to help me decide whether to buy something had, on its first real run, quietly deferred the decision — and the thing actually hurting me was a disk at 95%, which is not a problem you fix with a credit card.

I did not buy the MacBook.

The boring footnote

`sheerstatus` is on GitHub — MIT, single-file Bash, zero dependencies, macOS and Linux, nine languages, no telemetry and no account. Its sister tool sheersweep handles the other half: this one tells you whether space is the problem, that one gets it back.

Two follow-ups, both less flattering than this one.

What 149 rounds of review still missed — the tool in this story shipped with a promise on its README that five of its nine languages could not keep, and I reviewed every single screen of it.

I wanted an e-ink monitor. There is no such thing. — what I bought a few days later instead, and why "buy nothing" was only the answer to the question I asked.

Keep reading

Notes from the workshop — the door is open.