Docs · v2.4.1 · updated Oct 09 2026

Install the CLI

The kubedevkit CLI is a single statically-linked binary. No runtime dependencies, no language-specific installer required.

macOS / Linux

# Homebrew (recommended)
$ brew install kubedevkit/tap/kubedevkit

# Or direct download
$ curl -sSL https://dl.kubedevkit.com/install.sh | sh

Windows

PS> winget install KubeDevKit.CLI

Docker

$ docker run --rm -it kubedevkit/cli:2.4.1 version
Note: The CLI auto-updates by default. Set KDK_AUTO_UPDATE=false to disable, or pin to a specific version with kubedevkit --version 2.4.0.

Connect a cluster

KubeDevKit uses an in-cluster agent for low-latency metrics and log streaming. The agent is deployed via a lightweight Helm chart and consumes under 50MB of memory per node.

# Log in with your KubeDevKit account
$ kubedevkit auth login

# Switch to the kube context you want to connect
$ kubectl config use-context prod-eu-west-1

# One-shot install (adds Helm repo + agent + RBAC)
$ kubedevkit cluster add --name prod-eu-west-1

  ✓ Helm chart installed in namespace kubedevkit-system
  ✓ Agent healthy on 24/24 nodes
  ✓ Metrics streaming (3.2 MB/s)

What the agent needs

  • Read access to all namespaces and resources (ClusterRole)
  • Permission to watch Events, Pods, Deployments
  • Outbound HTTPS to api.kubedevkit.com:443
Air-gapped? Enterprise plans support fully self-hosted deployments with offline licensing. See the Self-Hosted Guide.

Your first deploy

KubeDevKit works with any Kubernetes manifest format: raw YAML, Helm, Kustomize, or Jsonnet. We detect the format automatically from the project structure.

$ cd my-app
$ kubedevkit init

  Found: Dockerfile, chart/Chart.yaml
  Project type: helm

$ kubedevkit deploy --env staging

  ✓ Image built & pushed (ghcr.io/me/my-app:a3f21b)
  ✓ Helm chart rendered
  ✓ Preview environment created
  ✓ URL: https://my-app.staging.kubedevkit.app

Environments

Define environments in a single file, .kubedevkit/environments.yaml:

environments:
  staging:
    cluster: staging-eu-west-1
    namespace: my-app-staging
    strategy: rolling
  production:
    cluster: prod-eu-west-1
    namespace: my-app
    strategy: canary
    slo:
      error-rate: "< 0.1%"
      latency-p99: "< 200ms"

Any kubedevkit deploy command without a --env flag deploys to the first environment in the list.

SLOs & gates

SLOs defined per environment are enforced automatically during canary rollouts. If the live p99 latency exceeds the SLO during the canary phase, the rollout halts and auto-rolls back.

slo:
  error-rate: "< 0.1%"       # 5xx responses / total
  latency-p99: "< 200ms"    # 99th percentile
  saturation: "< 70%"       # CPU + memory ceiling
  burn-window: "5m"          # evaluation window

REST API

All CLI functionality is available via a stable JSON API at https://api.kubedevkit.com/v1. Authenticate with a Personal Access Token or a Service Account token.

$ curl https://api.kubedevkit.com/v1/clusters \
    -H "Authorization: Bearer $KDK_TOKEN"

{
  "clusters": [
    { "name": "prod-eu-west-1", "nodes": 24, "status": "healthy" },
    { "name": "staging-eu-west-1", "nodes": 4, "status": "healthy" }
  ]
}

See the full API reference at docs/api.

Still stuck? Email support@kubedevkit.com or hop into our Slack community (invite link). We answer within one business day on Pro and within one hour on Enterprise.