You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a Go CLI application (no long-running services). Development commands are in the `Makefile`:
6
+
7
+
-**Build:**`make build` → produces `./bin/kernel`
8
+
-**Test:**`make test` → runs `go vet` + `go test ./...`
9
+
-**Lint:**`make lint` → runs `golangci-lint run` (requires `golangci-lint` on `PATH`)
10
+
11
+
### Testing against production
12
+
13
+
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:
14
+
15
+
1.`./bin/kernel auth status` — verify auth
16
+
2.`./bin/kernel app list` — list deployed apps
17
+
3.`./bin/kernel browsers create` — create a browser session (remember to delete it after)
18
+
4.`./bin/kernel browsers delete <session_id>` — clean up
19
+
20
+
Be mindful that these operations affect production resources.
21
+
22
+
### Gotchas
23
+
24
+
-`golangci-lint` is installed via `go install` to `$(go env GOPATH)/bin`. This directory must be on `PATH` (the update script handles this via `.bashrc`).
25
+
- The Makefile's `lint` target 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.
26
+
- The `go-keyring` dependency requires D-Bus and `libsecret` on Linux. These are pre-installed in the Cloud VM.
27
+
-`kernel create` works locally without authentication. Most other commands (`deploy`, `invoke`, `browsers`, etc.) require a `KERNEL_API_KEY` env var or `kernel login` OAuth flow.
28
+
- Go module path is `github.com/kernel/cli`. The project requires Go 1.25.0 (specified in `go.mod`).
0 commit comments