lo is one Go binary. Every command runs natively in it. The binary embeds the frozen argsh tree, and the tree stays runnable: a project selects it per command through lok8s.yaml (spec.implementation).
Install
New installs use lo-install.sh. Download it and checksums.txt from the release, verify, read, then run it. See Installation.
Two builds, and both install as lo:
lo(core, about 18 MB) renders through the pinnedkustomizebinary and the exec plugins thatlo toolchain installinstalls withb.lo-full(lo-install.sh --full) links the kustomize API and khelm and renders in-process. The two builds give byte-identical output.
New
lo initruns a wizard on a terminal. It detects where you stand, asks, prints the plan, then writes.lo init --planprints the plan and writes nothing. Every answer has a flag twin on a subcommand.lo toolchain installwrites.bin/b.yamlwith the pins of thislobuild. It installsb(SHA-256 verified) and runsb install.lo toolchain doctorverifies what landed.lo assetsis the eject model. The binary embeds the addons, the driver templates, the CRD mirror, the Tilt extension and the bash tree. They land in.lok8s/on first use.lo assets list|diff|eject|updatemanage the copies. A local copy always wins.lo mcpserves the MCP server for editors and agents from the same binary.lo secretsuses the kernpilot age-only sops fork. The fork drops the cloud KMS, Vault and PGP backends.lorejects a rule with such a recipient.
Removed
LO_IMPLandLO_GO_BASH. Nothing in the environment selects the implementation.lok8s.yamldoes.lo assets show. Uselo assets diff <rel>.lo init project --env both. Pickmise,direnvornone.
Deprecated
lo init toolchainis a hidden alias oflo toolchain install. This release keeps it, the next one removes it.
Breaking
.lok8s/lono longer marks a project root. The binary walks up to the nearestclusters/directory or akind: Projectlok8s.yaml(D30).Install through
lo-install.shor the release archives.lo-upstays online as legacy and does not install the Go binary.Go refuses
go install github.com/kernpilot/lok8s/cmd/lo@v0.3.0. The module carriesreplacedirectives.
Upgrade an existing project
Install the binary:
bash lo-install.sh.Add
lok8s.yamlat the project root if there is none:yamlkind: Project spec: implementation: default: goRun
lo toolchain install. It never overwrites an existing.bin/b.yaml. It prints a diff against the pins.Optional:
lo assets eject bashwrites the frozen tree into.lok8s/. Thenspec.implementation.bash.commandscan route a command to it.Run
lo doctor.
Deviations
Where the binary does not match the bash on purpose: the deviations catalogue.
Assets
For linux and darwin, amd64 and arm64: lo-<os>-<arch>.tar.gz, lo-full-<os>-<arch>.tar.gz, kustomize-secret-<os>-<arch>, lochat-<os>-<arch>, plus lok8s-v0.3.0.tar.gz (the framework tree), lo-install.sh and checksums.txt.