{
  "id": "kubectl-ai",
  "name": "kubectl-ai",
  "homepage": "https://github.com/GoogleCloudPlatform/kubectl-ai",
  "description": "AI powered Kubernetes Assistant",
  "executables": [
    "kubectl-ai"
  ],
  "dotfiles": {
    "paths": [
      "~/.config/kubectl-ai/config.yaml",
      "~/.config/kubectl-ai/tools.yaml",
      "~/.config/kubectl-ai/mcp.yaml"
    ],
    "secret": [],
    "secret_paths": [
      {
        "file": "~/.config/kubectl-ai/mcp.yaml",
        "format": "yaml",
        "match": {
          "key_path": [
            "servers.*.auth.token"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Ask kubectl-ai",
    "description": "Ask the AI assistant to work with a Kubernetes cluster, interactively or as a single quiet query. MCP server mode, sandbox, UI and auth options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "src",
        "kind": "help",
        "url": "https://github.com/GoogleCloudPlatform/kubectl-ai/blob/main/cmd/main.go",
        "revision": "main 2026-10",
        "evidence": "f.IntVar(&opt.MaxIterations, \"max-iterations\", opt.MaxIterations, \"maximum number of iterations agent will try before giving up\")\nf.StringVar(&opt.KubeConfigPath, \"kubeconfig\", opt.KubeConfigPath, \"path to kubeconfig file\")\nf.StringVar(&opt.ProviderID, \"llm-provider\", opt.ProviderID, \"language model provider\")\nf.StringVar(&opt.ModelID, \"model\", opt.ModelID, \"language model e.g. gemini-2.0-flash-thinking-exp-01-21, gemini-2.0-flash\")\nf.BoolVar(&opt.SkipPermissions, \"skip-permissions\", opt.SkipPermissions, \"(dangerous) skip asking for confirmation before executing kubectl commands that modify resources\")\nf.BoolVar(&opt.Quiet, \"quiet\", opt.Quiet, \"run in non-interactive mode, requires a query to be provided as a positional argument\")\nf.BoolVar(&opt.ShowToolOutput, \"show-tool-output\", opt.ShowToolOutput, \"show tool output in the terminal UI\")\nf.BoolVar(&opt.MCPClient, \"mcp-client\", opt.MCPClient, \"enable MCP client mode to connect to external MCP servers\")\nf.StringVar(&opt.ResumeSession, \"resume-session\", opt.ResumeSession, \"ID of session to resume (use 'latest' for the most recent session)\")\nkubectl-ai --quiet \"fetch logs for nginx app in hello namespace\"\nLong options: --quiet --llm-provider --model --kubeconfig --max-iterations --show-tool-output --mcp-client --resume-session --skip-permissions\n"
      }
    ],
    "field": [
      {
        "id": "query",
        "label": "Query",
        "description": "Leave empty for the interactive UI.",
        "type": "string",
        "position": 0,
        "multiple": true,
        "sources": [
          "src"
        ]
      },
      {
        "id": "quiet",
        "label": "Non-interactive (requires a query)",
        "type": "boolean",
        "option": [
          "--quiet"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "provider",
        "label": "LLM provider",
        "type": "string",
        "option": [
          "--llm-provider"
        ],
        "suggestions": [
          {
            "value": "gemini",
            "label": "Gemini"
          },
          {
            "value": "openai",
            "label": "OpenAI"
          },
          {
            "value": "ollama",
            "label": "Ollama"
          },
          {
            "value": "bedrock",
            "label": "Bedrock"
          }
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "model",
        "label": "Model",
        "type": "string",
        "option": [
          "--model"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "kubeconfig",
        "label": "Kubeconfig",
        "type": "path",
        "path": {
          "kind": "file",
          "role": "input"
        },
        "option": [
          "--kubeconfig"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "max_iterations",
        "label": "Max iterations",
        "type": "integer",
        "option": [
          "--max-iterations"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "show_tool_output",
        "label": "Show tool output",
        "type": "boolean",
        "option": [
          "--show-tool-output"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "mcp_client",
        "label": "Use external MCP tools",
        "type": "boolean",
        "option": [
          "--mcp-client"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "resume_session",
        "label": "Resume session ID",
        "description": "Use latest for the most recent session.",
        "type": "string",
        "option": [
          "--resume-session"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "skip_permissions",
        "label": "Skip confirmations",
        "description": "Dangerous: modifying kubectl commands run without asking.",
        "type": "boolean",
        "option": [
          "--skip-permissions"
        ],
        "effect": "exec",
        "sources": [
          "src"
        ]
      }
    ],
    "task": [
      {
        "id": "ask_once",
        "label": "Ask once",
        "fields": [
          "query",
          "quiet",
          "model"
        ],
        "required": [
          "query",
          "quiet"
        ],
        "set": {
          "quiet": [
            true
          ]
        }
      },
      {
        "id": "interactive",
        "label": "Interactive session",
        "fields": [
          "provider",
          "model"
        ],
        "required": []
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "query",
          "quiet",
          "provider",
          "model"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "kubeconfig",
          "max_iterations",
          "show_tool_output",
          "mcp_client",
          "resume_session",
          "skip_permissions"
        ]
      }
    ]
  }
}
