In-browser Linux VM + WebUSB aims to rescue old Canon SELPHY printers from landfill

The pickup and the problem
A casual eBay score — a Canon SELPHY photo printer bought for less than the value of its paper and ink — turned into a mini-rescue mission. It has been reported that the owner could print from Linux immediately using a Manjaro box, CUPS and Gutenprint, then share the device over AirPrint so Macs and iPhones could print photos like it’s 1999. The emotional heart of the story is simple: real, hold-in-your-hand photos. Kids, grandkids, memories. Who doesn’t love that?
The hack
Rather than ship a Raspberry Pi or force an extra black box into someone’s living room, the developer decided to make the fix pure software. It has been reported that they paid £18 for a month of Claude Code and initially prototyped a native Mac app that would run a tiny Linux VM and forward USB traffic. That idea hit the App Store wall, so they pivoted to the web: an in-browser Alpine Linux instance running on v86 (x86 emulation to WebAssembly), with CUPS and Gutenprint inside. The browser connects to the physical printer via WebUSB, finds the closest Gutenprint driver using trigrams, runs lpadmin in the emulated VM, uploads jobs, and prints. Clever? Very. A little bit magical? Absolutely.
The plumbing and why it matters
Printing raw binary from an emulated machine to a physical USB device is the sticky bit. It has been reported that the project first used a custom CUPS backend that streamed bytes to the browser over the v86 TTY, then experimented further — allegedly bridging the VM to the printer by tunneling USB over USB/IP and WebUSB so the emulated Linux can talk to the hardware as if it were local. The upshot: a zero-install web app (printerface.app / printervention.app) that can make old printers usable again across platforms, reducing waste and saving Kodak moments from the bin. Neat hack. Bigger implication: if browsers can safely and reliably emulate full stacks and proxy hardware, a lot of abandoned peripherals might get a second life.
Sources: printervention.app, Hacker News
Comments