Open Source

Take Your Printer Back

An Epson app kept nagging me to upgrade its installer before it would keep talking to my printer, and buried a simple low-ink reminder under a p…

The Epson WorkForce Pro WF-3820 control panel

This one started the way these things usually do: with a printer that worked fine until its software decided it did not.

Two things wore me down. The Epson suite kept interrupting me to upgrade its installer to the latest version before it would keep working with the printer, as if a printer I already owned were a subscription. And it fired off a steady stream of alerts for something I only ever wanted a quiet reminder about. All I actually needed was to know when an ink was low, and maybe a small icon in the menu bar. Then macOS added its own warning on top: the bundled Epson app, built for Intel, "will not work with a future release of macOS." So I went looking at what it actually was.

The worst offender is the Epson Low Ink Reminder. A tiny background program whose entire job is to tell you when a cartridge is running low. On inspection it is still an x86 binary with no Apple-silicon version at all, so it only runs under Rosetta emulation. And it phones home while it does it. All of that, plus the upgrade nagging and the alert noise, to show you a number the printer already knows.

The printer was never the problem

Here is the part that makes the vendor software pointless. The printer already gives this information away. Ink levels come out over IPP, the standard printing protocol every modern printer speaks. Scanning works over Apple's driverless eSCL, no plug-in required. macOS already prints and scans this machine with nothing installed. The only thing the Epson suite added that I actually used was that one low-ink reminder, and it was the worst-behaved piece of the lot.

So I replaced it. PRPO (presto-reverso-print-o, named for pulling the magic back out of the vendor stack) reads the ink levels straight off the printer over IPP and tells you when one is low, as a few kilobytes of native shell script. There is an optional menu-bar indicator, a small native Swift app that shows a printer icon and flags a low cartridge. There is a driverless scan command that turns the flatbed into a PDF with no Epson software in the path. And there is a script that removes the rest of the Epson suite cleanly, while keeping printing and scanning fully working.

It is arm64-native and dependency-free. No Homebrew, no Electron, no telemetry. System tools only. It is on GitHub under an MIT licence, and you can read the whole thing in an afternoon.

Why bother, for a printer

Because it is the same move we make everywhere, at the smallest possible scale. Take something that only worked inside the vendor's walls, understand what it actually does, and replace it with a small thing you own and can read.

A low-ink reminder is a silly place for a principle to show up. But that is exactly why it is a good one. If a company ships you an emulated, telemetry-carrying background app just to report a number your own hardware already publishes, that is the whole pattern in miniature: convenience you did not ask for, built on dependency you did not need, collecting data that was none of its business. You do not have to accept the printer version of that, and you do not have to accept the serious versions either.

The tools that run your life, down to the one that watches your ink, should be ones you can hold, inspect, and run yourself. Sometimes that is a sovereign identity system or your own language model. Sometimes it is forty lines of shell that save you from Rosetta. It is the same idea either way.

Take your printer back on GitHub.

← All articles