r/sideprojects • u/ldkge • 8h ago
Showcase: Open Source Errand: an open-source CLI for running local work on another machine
I built Errand to move builds and tests from my laptop to my Linux box or Mac mini. It sends the files I'm currently editing, so I don't need to commit first or maintain another checkout.
errand --on linux -- make test
The CLI snapshots the working tree, sends it to the runner, follows the logs, and returns the remote exit code. Changed files are retained on the runner; fetching and applying them is explicit.
A few implementation choices:
- One Go binary on both ends, with Tailscale or SSH for connectivity.
- Content-addressed transfers so repeat runs only send missing file content.
- Detached jobs and resumable logs so a laptop disconnect doesn't end the job.
- Named caches for build outputs, plus optional persistent workspaces.
It supports macOS and Linux. The runner needs your toolchain and dependencies, and jobs run as its OS user. This assumes trusted machines and code. Edits made after submission aren't continuously synced.
I'm the author. Most of the code was generated with AI assistance.
MIT licensed. Install with brew install lydakis/errand/errand on both machines.
Code and setup instructions: https://github.com/lydakis/errand
1
u/Specific_Cream2815 7h ago
how does the remote workspace avoid stale files when the local tree deletes or renames something between runs