Command-line client for Kploy.
brew install bitcomplete/tap/kployOr download a binary from the releases page.
kploy auth loginRuns GitHub Device Flow: prints a code, opens the verification URL, polls until you approve the kploy GitHub App in your browser. Tokens are persisted at ~/.config/kploy/config.yaml (mode 0600).
kploy auth whoami # show the orgs your token can see
kploy auth logout # forget the saved token# Pick a default org so you can drop --org from later commands.
export KPLOY_ORG=bitcomplete
kploy org list
kploy repo list
kploy env list --repo my-service
kploy env get --repo my-service production
kploy env create \
--repo my-service --name staging \
--cluster <cluster-id> --branch staging --namespace my-service-staging \
--tracked-image my-registry/my-service
kploy image list --repo my-service --env staging
kploy image add my-registry/sidecar --repo my-service --env staging
kploy image remove my-registry/sidecar --repo my-service --env staging
kploy cluster list
kploy cluster create # prints a one-shot bearer token — save it!
kploy deploy list --repo my-service --env staging
kploy deploy logs 1234567 --repo my-service~/.config/kploy/config.yaml:
server: https://kploy.app
org: bitcomplete
access_token: ghu_...
refresh_token: ghr_...
expiry: 2026-08-13T12:34:56ZEnvironment variables override the file:
| Var | Effect |
|---|---|
KPLOY_SERVER |
Kploy server URL (defaults to production) |
KPLOY_ORG |
Default org for commands that take --org |
KPLOY_TOKEN |
Reserved; not currently consumed (login writes the file) |
--output json on any list / get / create command produces a JSON value suitable for piping to jq.
go build -o kploy .CI builds via GoReleaser (.goreleaser.yaml). Tagging vX.Y.Z on main cuts a release.
api.yaml is a copy of the canonical spec maintained in bitcomplete/kploy. When the server's API changes, run:
./scripts/sync-api.shThis pulls the latest api.yaml from kploy, regenerates client/client.gen.go, and reports whether anything changed. Commit the diff with a sync(api): … message.