Repository navigation
π godspeed 0.1.0
π godspeed 0.1.0 - the first release
The developer CLI for GodspeedOS: create, build, package, sign and publish Godspeed software from your workstation, for all four architectures at once, and verify anyone's, without touching the kernel, raw IPC or the supervisor.
godspeed new service hello && cd hello
godspeed build --all # π§© x86_64, aarch64, armv7, riscv64
godspeed publish # βοΈ signed, uploaded, installable as you/helloπ Guide and examples: https://godspeedhq.github.io/godspeed-cli/
β¨ What's in it
- π
godspeed new service | library: the smallest valid project of each kind, on the public stdlib only. Kinds the OS cannot run yet (utility,app,driver) are refused, with the reason and where the OS tracks it. - π
checkvalidates the project, its toolchain pin and its contract against the OS's own schema. - ποΈ
build [--arch | --all]builds one ELF per architecture.testruns a library's tests on your machine. - π©Ί
doctorchecks your toolchain, targets and QEMU, and this CLI's version, and prints the command that fixes each problem. - π¦
packageandverify: see exactly what would be published, with every file's size and SHA-256, before anything leaves your machine. Verifying a package needs no registry. - π
key generatemakes your Ed25519 signing key. It stays on your machine; only the public half is shared. - π«
loginmakes your publisher token on your machine, like an SSH key; the registry stores only its fingerprint.token newmakes one for CI. - π’
publish: package, sign, reserve, upload and finalise. A published version never changes, nothing half-published is ever visible, and if the network drops it reads the registry instead of guessing. - π‘οΈ
fetchdownloads a release and verifies the registry's whole chain of trust (root β timestamp β snapshot β namespaces β index β manifest β signature β files) before keeping anything. The design follows The Update Framework. - π Update notice: at most once a day, in the background, it tells you when a newer release is out. It's quiet in CI and scripts;
GODSPEED_NO_UPDATE_CHECK=1turns it off. - π¦ A distinct exit code for every kind of failure, and every refusal says what failed, why, and what to do next.
π The registry is live
godspeed/hello@0.1.0 is already published and verifiable:
godspeed fetch godspeed/hello --registry https://godspeed-registry.bankole-422.workers.dev \
--trust-root sha256:d769d1a64c3105c8da0ffcc2f54aba1c3a16ce4ae707a6d206556f08824a146dπ§ͺ Examples
examples/ has real projects, each built for every architecture in CI:
- π
heartbeat: a loop that sleeps - π£
shout: a request/reply server - π’
bootcount: files, a library dependency, and an honest unknown outcome - π§΅
fixedbuf: a no-heap text library
π§ Not yet: these wait on GodspeedOS
βΆοΈ godspeed runandgodspeed install: GodspeedOS starts only the services compiled into its image.- π οΈ Utilities, apps and drivers: the OS has no terminating task, no app interfaces, and no device grants for outside drivers yet.
- π¦ Rust only, for now: C and C++ wait on a C interface to the OS; Go would need its runtime ported.
The CLI says so instead of pretending. Each of these is the OS's to build, and the CLI will follow.
π» Builds
π§ Linux x86_64 and Arm64 (static, any distribution) Β· π macOS Apple silicon and Intel Β· πͺ Windows x64 and Arm64. Built against GodspeedOS v0.28.0.
β¬οΈ Install
Install on Linux or macOS:
curl --proto '=https' --tlsv1.2 -sSf https://github.com/godspeedhq/godspeed-cli/releases/latest/download/install.sh | sh
Install on Windows (PowerShell):
irm https://github.com/godspeedhq/godspeed-cli/releases/latest/download/install.ps1 | iex
The installers check each binary against SHA256SUMS before running it. A checksum shows the file is
the one this release lists; releases are not signed yet.