wireexec
I'm developing wireexec as a temporary USB connection between a small Raspberry Pi and an unlocked computer. The aim is to run commands and move files with the logged-in user's permissions, without leaving a permanently installed service behind. The repository is private, and the complete connection flow is still in development.
A connection with an end
The design uses one explicitly armed keyboard bootstrap to start a verified helper, then carries commands and files over an authenticated USB network connection. The helper is supervised and temporary. Unplugging, a failed command or an interrupted transfer all need a defined outcome.
I track command execution, complete output and cleanup separately. If a connection disappears after a command ran, retrying it automatically could run it twice. An uncertain result has to stay uncertain until there is evidence to resolve it.
Did it run? Did the result arrive?What the hardware taught me
Working on the Pi Zero exposed problems that were easy to miss on a development machine. The first TLS connection spent roughly 19 seconds initializing entropy; moving that initialization ahead of readiness brought the measured warm handshake to about a tenth of a second without removing the entropy source.
A power interruption also exposed an incomplete deployment artifact. I changed the staging process around immutable, hash-named files and explicit verification before activation. These are small details until the device loses power halfway through an update.
The USB gadget configuration and on-device TLS probes have been exercised on the physical Pi. The host-side bootstrap and complete command-and-file flow still need their end-to-end hardware qualification.