This is a Go CLI application (no long-running services). Development commands are in the Makefile:
- Build:
make build→ produces./bin/kernel - Test:
make test→ runsgo vet+go test ./... - Lint:
make lint→ runsgolangci-lint run(requiresgolangci-lintonPATH)
When KERNEL_API_KEY is set (provided as a secret), the CLI hits the production Kernel API. After make build, test with ./bin/kernel. Useful smoke-test sequence:
./bin/kernel auth status— verify auth./bin/kernel app list— list deployed apps./bin/kernel browsers create— create a browser session (remember to delete it after)./bin/kernel browsers delete <session_id>— clean up
Be mindful that these operations affect production resources.
golangci-lintis installed viago installto$(go env GOPATH)/bin. This directory must be onPATH(the update script handles this via.bashrc).- The Makefile's
linttarget uses|| true, so it always exits 0 even when lint issues exist. Pre-existing lint warnings (errcheck, staticcheck) are present in the codebase and expected. - The
go-keyringdependency requires D-Bus andlibsecreton Linux. These are pre-installed in the Cloud VM. kernel createworks locally without authentication. Most other commands (deploy,invoke,browsers, etc.) require aKERNEL_API_KEYenv var orkernel loginOAuth flow.- Go module path is
github.com/kernel/cli. The project requires Go 1.25.0 (specified ingo.mod).