How it works
Why nothing is embedded in the binary
The CLI ships with no packages built in. Every package — even the ones
every machine gets — is fetched from a pinned release of
github.com/mydevmachine/packages, checked against a checksum, and
cached.
What that buys
Fixing how Docker is installed is a push, not a release. Nobody
upgrades a binary to receive it, and the fix reaches every machine on the
next sync.
The CLI stays small enough to reason about. It knows how to fetch a package, send it to a machine and run it — it does not know what Docker is, and never needs to.
One mechanism instead of two. A package you wrote and one somebody published are the same kind of thing, resolved by the same code — no “built-in” set with different rules to learn.
What it costs, plainly
A machine cannot be set up for the first time while GitHub is unreachable. There is nothing embedded to fall back on:
error: fetching https://github.com/mydevmachine/packages/releases/download/v1/packages-v1.tar.gz: ...
Once a release is in the cache this stops mattering — the packages are on your disk, and bringing a machine up to date needs no network at all. The limit is only the first fetch of a new pinned version, not every run, and it is worth the simplicity of one mechanism.
Why the checksum is on a release asset
The CLI fetches packages-v1.tar.gz from the release, not the tarball
GitHub generates for the tag — a tag can be moved, and its generated
archive changes with it silently. A release asset is uploaded once, with
its checksum published beside it, so packages.lock can record what was
actually installed and refuse content that changed. Without that,
“pinned” would be a word rather than a guarantee.
Why only one source
A package runs as root on a machine you own. Fetching one from anywhere and running it is the shape of a supply-chain attack, so a third-party source is not supported. Your own configuration directory is the exception, and not really one: a package you wrote is a package you already trust.