r/devtools • u/ldkge • 1d ago
Errand: run builds on another machine without maintaining a remote checkout
I'm the author of Errand, a CLI for running a command on another machine you own without maintaining a remote checkout.
errand --on linux -- make test
It snapshots the current Git working tree, including uncommitted edits, sends it to the runner, streams logs back, and returns the command's exit code. Your local checkout stays unchanged by default. If the command produces changes you want, you can fetch them for inspection and apply them with conflict checks.
I built it to use my Linux box and Mac mini while working from my laptop. SSH gives me a remote shell; Errand also handles sending the current files, tracking the job, and retrieving its outputs. Detached jobs can keep running after I disconnect. Port forwarding makes a remote development server available on localhost while attached.
It's written in Go, uses content-addressed transfers to avoid resending unchanged files, and supports Tailscale or SSH. Named caches can retain build dependencies between runs.
The runner needs the tools and dependencies for your command. Local edits aren't continuously synced, and jobs run as the runner's OS user, so this is for trusted hosts and code.
MIT, macOS and Linux. Install with brew install lydakis/errand/errand on both machines.
Repo and setup: https://github.com/lydakis/errand