Installation
Diverge consists of 6 core binaries built on a hardened distroless nonroot base:
diverge-controller— Kubernetes operator reconcilingEnvironment,PreviewGroup, andAgentTaskCRDsdiverge-server— ConnectRPC API server (:8443and:8080; listens in plaintext by default unless--tls-certand--tls-keyare supplied, so production deployments must either configure server TLS files or terminate TLS at an Ingress/Gateway),/mcpendpoint, LLM metering (POST /api/v1/agenttask/meter), and embedded React Web Dashboarddiverge-proxy— L7 header/subdomain router and<diverge-toolbar>preview banner injectoractivator-proxy— Scale-to-zero cold-start wake-up proxy with202 Acceptedbrowser splash screendiverge-agent-runner(ghcr.io/divergedev/agent-runner) — Reference autonomous sandbox runner with Macaroon metering and build-verify-fix loopdiverge— Developer CLI and localstdioMCP server (diverge mcp)
Helm Chart (Kubernetes Operator)
Section titled “Helm Chart (Kubernetes Operator)”The recommended way to install Diverge on a Kubernetes cluster is using the official OCI Helm chart. Because diverge-controller starts its admission webhook server unconditionally and mounts the diverge-webhook-tls Secret, either enable certManager.enabled=true (when cert-manager and its CRDs are installed on the cluster) or pre-create the diverge-webhook-tls TLS Secret in diverge-system before installing:
# Option A: With cert-manager already installed on the clusterhelm install diverge oci://ghcr.io/divergedev/charts/diverge \ --namespace diverge-system \ --create-namespace \ --set certManager.enabled=trueProduction Installation (Server, Web Dashboard & AgentTask Sandboxes)
Section titled “Production Installation (Server, Web Dashboard & AgentTask Sandboxes)”Prerequisite: Setting
certManager.enabled: truecreates cert-managerIssuerandCertificateresources for webhook TLS; ensurecert-manager(including its CRDs) is already installed in your cluster before runninghelm upgrade --install, and terminate TLS fordiverge-serverat your Ingress/Gateway (or mount TLS cert/key files intodiverge-server).
To enable the ConnectRPC server, embedded Web Dashboard, autonomous AgentTask sandboxes with shared Macaroon capability keys, and admission webhooks, create a shared Macaroon root key secret and configure values.yaml:
kubectl create namespace diverge-systemkubectl create secret generic diverge-macaroon-key \ -n diverge-system \ --from-literal=root-key="$(openssl rand -hex 32)"server: enabled: true dashboard: enabled: true
sandbox: enabled: true provider: agent-sandbox # or "pod" ("k8s-pod") when agent-sandbox CRDs are not installed macaroonSecretRef: name: diverge-macaroon-key key: root-key
certManager: enabled: true
webhook: validatingWebhook: enabled: true admissionPolicy: enabled: trueThen upgrade or install the chart:
helm upgrade --install diverge oci://ghcr.io/divergedev/charts/diverge \ --namespace diverge-system \ --create-namespace \ -f values.yamlCLI Installation
Section titled “CLI Installation”Install the latest diverge CLI using the official install script:
curl -fsSL https://divergedev.com/install.sh -o install.sh && sh install.shIf you prefer to inspect the script and its SHA-256 digest before executing, download it first:
curl -fsSL -o install.sh https://divergedev.com/install.shsha256sum install.shsh install.shOr install directly with Go 1.26+:
go install github.com/divergedev/diverge/cmd/diverge@latestBinary Download & Container Images
Section titled “Binary Download & Container Images”- Pre-built CLI binaries for macOS and Linux (
amd64/arm64): GitHub Releases - Container images on GitHub Container Registry:
Terminal window docker pull ghcr.io/divergedev/diverge:latestdocker pull ghcr.io/divergedev/agent-runner:latest
