Skip to main content
radar (or kubectl radar when installed via Krew) accepts the flags below. Defaults come from ~/.radar/config.json if present - see Configuration files.

General

FlagDefaultDescription
--port9280HTTP port the UI / API serve on.
--no-browserfalseDon’t auto-open the browser.
--browser""Browser to open the UI in, overriding the OS default launcher. Local runs only (in-cluster and Cloud can’t open a user browser). On macOS, app names and .app bundles work, e.g. --browser Safari or --browser "Google Chrome". Empty uses the OS default.
--namespace""Initial namespace filter (empty = all namespaces).
--version-Print version and exit.
--debug-eventsfalseVerbose event-drop logging.

Cluster connection

FlagDescription
--kubeconfigPath to a kubeconfig file. Falls back to KUBECONFIG env or ~/.kube/config.
--kubeconfig-dirComma-separated directories whose kubeconfigs are merged. Mutually exclusive with --kubeconfig.

Timeline storage

FlagDefaultDescription
--timeline-storagememorymemory or sqlite. SQLite persists across restarts.
--timeline-db~/.radar/timeline.dbPath to the SQLite database when --timeline-storage=sqlite.
--history-limit10000Max events retained in the timeline (memory mode).
--timeline-max-size1GiMax SQLite timeline size (DB + WAL) before the oldest events are pruned, e.g. 800Mi, 8Gi. 0 disables size-based pruning.

Metrics & traffic

FlagDescription
--prometheus-urlManual Prometheus / VictoriaMetrics URL. Skips auto-discovery (handy for out-of-cluster Prometheus).
--prometheus-headerHTTP header to send with Prometheus requests, e.g. 'Authorization=Bearer <token>' (repeatable). Required for auth-protected backends.
--prometheus-header-from-envLike --prometheus-header, but the value is read from an env var, e.g. 'Authorization=PROMETHEUS_TOKEN' (repeatable) - keeps secrets out of ps.

Feature toggles

FlagEffect
--no-mcpDisable the MCP server (AI tools won’t be able to connect).
--mcp-catalog-onlyStart only the MCP endpoint for registry / inspector catalog introspection (e.g. Glama); skips Kubernetes initialization.
--mcp-catalog-stdioStart only the MCP catalog over stdio for registry / inspector introspection; skips Kubernetes initialization.
--disable-helm-writeRead-only Helm: hide install / upgrade / rollback / uninstall buttons.
--disable-execNo pod terminal / debug shell.
--disable-local-terminalDisable the local-machine terminal pane.
--pod-shell-defaultOverride the default pod exec shell (runs as sh -c <value>; empty falls back to bash -il → ash → sh).
--debug-imageImage for ephemeral debug containers and node debug pods. Defaults to busybox:latest; point at a mirror for air-gapped / private-registry clusters.
--list-page-sizePaginate the initial LIST of high-cardinality kinds (Pods, ReplicaSets) at this size. Defaults to 0 (single LIST). Helps very large clusters whose initial sync fails; only used when WatchList streaming is unavailable on the apiserver. Try 2000.
--namespace-scopePin namespaced informer caches to a single namespace instead of watching the whole cluster - for very large clusters where cluster-wide caches are too heavy. Cluster-scoped resources (Nodes, Namespaces, PVs, and cluster-scoped CRDs) still load cluster-wide. Requires --namespace, a namespace on the kubeconfig context, or a saved local pick. Scoping to multiple namespaces is not supported yet. Local sessions can switch the scoped namespace from the picker (rebuilds the cache in place); auth / shared deployments lock it to the startup namespace so one user can’t reshape the shared cache for everyone.

Tuning for slow or large clusters

Clusters reached over high-latency tunnels, or with thousands of namespaces, can trip Radar’s default deadlines. Each flag also reads from the matching RADAR_* env var.
FlagDefaultEnvDescription
--context-switch-timeout30sRADAR_CONTEXT_SWITCH_TIMEOUTMax time a kubeconfig context switch may take. Widen to 120s+ for clusters over high-latency tunnels.
--first-paint-backstop5mRADAR_FIRST_PAINT_BACKSTOPHard upper bound on the initial critical-cache sync wait before Radar falls through to a partial-data render.
--namespace-list-timeout5sRADAR_NAMESPACE_LIST_TIMEOUTTimeout for the cluster-wide namespace LIST that decides if you’re RBAC-namespace-restricted. Widen to 30s+ on slow control planes - a timeout here is otherwise misreported as “Limited list - RBAC”.
--max-scope-candidates20RADAR_MAX_SCOPE_CANDIDATESCap on the namespace-fallback probe fanout for users who can list namespaces cluster-wide but not a specific kind. Raise above 20 for clusters with more namespaces to avoid silently marking kinds denied.

Authentication

See Authentication for the full setup. Common flags:
FlagDescription
--auth-modenone (default), proxy, or oidc.
--auth-secretHMAC secret for session cookies. Auto-generated when empty - set this for multi-replica deployments.
--auth-cookie-ttlSliding session TTL. Default 4h.
Proxy mode (oauth2-proxy / Pomerium / etc.):
FlagDefaultDescription
--auth-user-headerX-Forwarded-UserHeader carrying the username.
--auth-groups-headerX-Forwarded-GroupsHeader carrying the comma-separated groups.
OIDC mode (Google / Okta / Keycloak / etc.):
FlagDescription
--auth-oidc-issuerOIDC issuer URL.
--auth-oidc-client-idClient ID from your IdP.
--auth-oidc-client-secretClient secret.
--auth-oidc-redirect-urlThe /auth/callback URL registered with the IdP.
--auth-oidc-groups-claimJWT claim that carries groups. Default groups.
--auth-oidc-post-logout-redirect-urlURL to redirect to after IdP logout (must be registered with the IdP).
--auth-oidc-username-prefixUsername prefix for K8s impersonation - must match kube-apiserver’s --oidc-username-prefix.
--auth-oidc-groups-prefixGroups prefix for K8s impersonation - must match kube-apiserver’s --oidc-groups-prefix.
--auth-oidc-insecure-skip-verifySkip TLS verification on the IdP (dev / test only).
--auth-oidc-ca-certPath to a custom CA bundle for the IdP.
--auth-oidc-backchannel-logoutEnable the back-channel logout endpoint. Single-replica only.

Radar Cloud

These flags wire an in-cluster Radar to a hosted Radar Cloud. Each is also readable from the matching RADAR_CLOUD_* env var (so secrets stay out of ps).
FlagEnvDescription
--cloud-urlRADAR_CLOUD_URLCloud WS endpoint (e.g. wss://api.radarhq.io/agent). Empty = local-only.
--cloud-tokenRADAR_CLOUD_TOKENCluster token from the Cloud install wizard (rhc_<random>).
--cluster-nameRADAR_CLOUD_CLUSTER_NAMEHuman-readable name (required with --cloud-url).
Setting RADAR_CLOUD_MODE=true additionally forces --auth-mode=proxy and pins X-Forwarded-User / X-Forwarded-Groups so the in-cluster Radar impersonates the Cloud-authenticated user against the K8s API. Don’t set this for local installs.

Internal / development

FlagDescription
--devServe the frontend from disk instead of the embedded bundle.
--fake-in-clusterPretend Radar is running in-cluster (useful for testing the in-cluster UX off-cluster).