id = "k8sgpt"
name = "K8sGPT"
homepage = "https://k8sgpt.ai/"
description = "Scanning your k8s clusters, diagnosing, and triaging issues in simple English"
executables = ["k8sgpt"]
[dotfiles]
paths = []
secret = [
"[appData]/k8sgpt/k8sgpt.yaml",
"[configHome]/k8sgpt/k8sgpt.yaml",
"%LOCALAPPDATA%/k8sgpt/k8sgpt.yaml",
]
[commands]
format = 1
label = "K8sGPT"
description = "Scan a Kubernetes cluster for problems. Only the analyze command is modelled; backend setup (auth), filters, integrations and serve mode are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["analyze"]
label = "Analyze the cluster"
description = "Run a scan and optionally have the configured AI backend explain the issues. Explaining sends (optionally anonymized) resource data to that backend."
[[commands.subcommand.source]]
id = "readme"
kind = "manual"
url = "https://github.com/k8sgpt-ai/k8sgpt/blob/main/README.md"
revision = "main 2026-10-27"
evidence = """
- Run `k8sgpt analyze` to run a scan.
- And use `k8sgpt analyze --explain` to get a more detailed explanation of the issues.
- You also run `k8sgpt analyze --with-doc` (with or without the explain flag) to get the official documentation from Kubernetes.
k8sgpt analyze --explain --filter=Service
k8sgpt analyze --explain --filter=Pod --namespace=default
k8sgpt analyze --explain --filter=Service --output=json
k8sgpt analyze --explain --filter=Service --output=json --anonymize
You can use `--backend` flag to specify a configured provider (it's `openai` by default).
k8sgpt analyze --explain --backend litellm
"""
[[commands.subcommand.field]]
id = "explain"
label = "Explain with AI"
type = "boolean"
option = ["--explain"]
sources = ["readme"]
[[commands.subcommand.field]]
id = "with_doc"
label = "Include Kubernetes docs"
type = "boolean"
option = ["--with-doc"]
sources = ["readme"]
[[commands.subcommand.field]]
id = "filter"
label = "Resource filter"
description = "Analyzer to run, for example Pod or Service."
type = "string"
option = ["--filter"]
suggestions = [{ value = "Pod", label = "Pod" }, { value = "Service", label = "Service" }, { value = "Deployment", label = "Deployment" }, { value = "Node", label = "Node" }]
sources = ["readme"]
[[commands.subcommand.field]]
id = "namespace"
label = "Namespace"
type = "string"
option = ["--namespace"]
sources = ["readme"]
[[commands.subcommand.field]]
id = "output"
label = "Output format"
type = "string"
option = ["--output"]
suggestions = [{ value = "json", label = "JSON" }]
sources = ["readme"]
[[commands.subcommand.field]]
id = "anonymize"
label = "Anonymize data"
type = "boolean"
option = ["--anonymize"]
sources = ["readme"]
[[commands.subcommand.field]]
id = "backend"
label = "AI backend"
type = "string"
option = ["--backend"]
suggestions = [{ value = "openai", label = "OpenAI" }, { value = "localai", label = "LocalAI" }, { value = "ollama", label = "Ollama" }]
sources = ["readme"]
[[commands.subcommand.task]]
id = "scan"
label = "Quick scan"
fields = ["filter", "namespace", "output"]
required = []
[[commands.subcommand.task]]
id = "explain"
label = "Scan and explain"
set = { explain = [true] }
fields = ["explain", "with_doc", "filter", "namespace", "anonymize", "backend"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["explain", "filter", "namespace", "output"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["with_doc", "anonymize", "backend"]