kubectl-ai acts as an intelligent interface, translating user intent into
precise Kubernetes operations, making Kubernetes management more accessible and
efficient.
Download the latest release from the releases page for your target machine.
Untar the release, make the binary executable and move it to a directory in your $PATH (as shown below).
tar -zxvf kubectl-ai_Darwin_arm64.tar.gz
chmod a+x kubectl-ai
sudo mv kubectl-ai /usr/local/bin/
Install with Krew (Linux/macOS/Windows)
First of all, you need to have krew installed, refer to krew document for more details
Then you can install with krew
kubectl krew install ai
Now you can invoke kubectl-ai as a kubectl plugin like this: kubectl ai.
Install on NixOS
There are multiple ways to install kubectl-ai on NixOS. For a permanent installation add the following to your NixOS-Configuration:
environment.systemPackages = with pkgs; [
kubectl-ai
];
For a temporary installation, you can use the following command:
nix-shell -p kubectl-ai
Usage
kubectl-ai supports AI models from gemini, vertexai, azopenai, openai, grok, bedrock and local LLM providers such as ollama and llama.cpp.
Using Gemini (Default)
Set your Gemini API key as an environment variable. If you don’t have a key, get one from Google AI Studio.
export GEMINI_API_KEY=your_api_key_here
kubectl-ai
# Use different gemini model
kubectl-ai --model gemini-2.5-pro-exp-03-25
# Use 2.5 flash (faster) model
kubectl-ai --quiet --model gemini-2.5-flash-preview-04-17 "check logs for nginx app in hello namespace"
Use other AI models
Using AI models running locally (ollama or llama.cpp)
You can use kubectl-ai with AI models running locally. kubectl-ai supports ollama and llama.cpp to use the AI models running locally.
Additionally, the modelserving directory provides tools and instructions for deploying your own llama.cpp-based LLM serving endpoints locally or on a Kubernetes cluster. This allows you to host models like Gemma directly in your environment.
An example of using Google’s gemma3 model with ollama:
# assuming ollama is already running and you have pulled one of the gemma models
# ollama pull gemma3:12b-it-qat
# if your ollama server is at remote, use OLLAMA_HOST variable to specify the host
# export OLLAMA_HOST=http://192.168.1.3:11434/
# enable-tool-use-shim because models require special prompting to enable tool calling
kubectl-ai --llm-provider ollama --model gemma3:12b-it-qat --enable-tool-use-shim
# you can use `models` command to discover the locally available models
>> models
Using Grok
You can use X.AI’s Grok model by setting your X.AI API key:
The interactive mode allows you to have a chat with kubectl-ai, asking multiple questions in sequence while maintaining context from previous interactions. Simply type your queries and press Enter to receive responses. To exit the interactive shell, type exit or press Ctrl+C.
Or, run with a task as input:
kubectl-ai --quiet "fetch logs for nginx app in hello namespace"
Combine it with other unix commands:
kubectl-ai < query.txt
# OR
echo "list pods in the default namespace" | kubectl-ai
You can even combine a positional argument with stdin input. The positional argument will be used as a prefix to the stdin content:
cat error.log | kubectl-ai "explain the error"
We also support persistence between runs with an opt-in. This lets you save a session to the local filesystem, and resume it to maintain previous context. It even works between different interfaces!
kubectl-ai --new-session # start a new session
kubectl-ai --list-sessions # list all saved sessions
kubectl-ai --resume-session 20250807-510872 # resume session 20250807-510872
kubectl-ai --delete-session 20250807-510872 # delete session 20250807-510872
Configuration
You can also configure kubectl-ai using a YAML configuration file at ~/.config/kubectl-ai/config.yaml:
Command line flags take precedence over configuration file settings.
Tools
kubectl-ai leverages LLMs to suggest and execute Kubernetes operations using a set of powerful tools. It comes with built-in tools like kubectl and bash.
You can also extend its capabilities by defining your own custom tools. By default, kubectl-ai looks for your tool configurations in ~/.config/kubectl-ai/tools.yaml.
To specify tools configuration files or directories containing tools configuration files, use:
Set up application default credentials and connect to your GKE cluster.
gcloud auth application-default login # If in a gcloud shell this is not necessary
gcloud container clusters get-credentials <cluster-name> --zone <zone>
Step 3: Run the kubectl-ai container
Below is a sample command that can be used to launch the container with a locally hosted web-ui. Be sure to replace the placeholder values with your specific Google Cloud project ID and location. Note you do not need to mount the gcloud config directory if you’re on a cloudshell machine.
You can use the following special keywords for specific actions:
model: Display the currently selected model.
models: List all available models.
tools: List all available tools.
version: Display the kubectl-ai version.
reset: Clear the conversational context.
clear: Clear the terminal screen.
exit or quit: Terminate the interactive shell (Ctrl+C also works).
Invoking as kubectl plugin
You can also run kubectl ai. kubectl finds any executable file in your PATH whose name begins with kubectl- as a plugin.
MCP Server Mode
kubectl-ai can act as an MCP server that exposes kubectl tools to other MCP clients (like Claude, Cursor, or VS Code). The server can run in two modes:
Basic MCP Server (Built-in tools only)
Expose only kubectl-ai’s native Kubernetes tools:
kubectl-ai --mcp-server
Enhanced MCP Server (With external tool discovery)
Additionally discover and expose tools from other MCP servers as a unified interface:
kubectl-ai --mcp-server --external-tools
This creates a powerful tool aggregation hub where kubectl-ai acts as both:
MCP Server: Exposing kubectl tools to clients
MCP Client: Consuming tools from other MCP servers
To serve clients over HTTP using the streamable transport, run:
This starts an MCP endpoint at http://localhost:9080/mcp.
The enhanced mode provides AI clients with access to both Kubernetes operations and general-purpose tools (filesystem, web search, databases, etc.) through a single MCP endpoint.
kubectl-ai
kubectl-aiacts as an intelligent interface, translating user intent into precise Kubernetes operations, making Kubernetes management more accessible and efficient.Table of Contents
Quick Start
First, ensure that kubectl is installed and configured.
Installation
Quick Install (Linux & MacOS only)
Other Installation Methods
Manual Installation (Linux, MacOS and Windows)
Download the latest release from the releases page for your target machine.
Untar the release, make the binary executable and move it to a directory in your $PATH (as shown below).
Install with Krew (Linux/macOS/Windows)
First of all, you need to have krew installed, refer to krew document for more details Then you can install with krew
Now you can invoke
kubectl-aias a kubectl plugin like this:kubectl ai.Install on NixOS
There are multiple ways to install
kubectl-aion NixOS. For a permanent installation add the following to your NixOS-Configuration:For a temporary installation, you can use the following command:
Usage
kubectl-aisupports AI models fromgemini,vertexai,azopenai,openai,grok,bedrockand local LLM providers such asollamaandllama.cpp.Using Gemini (Default)
Set your Gemini API key as an environment variable. If you don’t have a key, get one from Google AI Studio.
Use other AI models
Using AI models running locally (ollama or llama.cpp)
You can use
kubectl-aiwith AI models running locally.kubectl-aisupports ollama and llama.cpp to use the AI models running locally.Additionally, the
modelservingdirectory provides tools and instructions for deploying your ownllama.cpp-based LLM serving endpoints locally or on a Kubernetes cluster. This allows you to host models like Gemma directly in your environment.An example of using Google’s
gemma3model withollama:Using Grok
You can use X.AI’s Grok model by setting your X.AI API key:
Using AWS Bedrock
You can use AWS Bedrock Claude models with your AWS credentials:
AWS Bedrock uses the standard AWS SDK credential chain, supporting:
Using Azure OpenAI
You can also use Azure OpenAI deployment by setting your OpenAI API key and specifying the provider:
Using OpenAI
You can also use OpenAI models by setting your OpenAI API key and specifying the provider:
Using OpenAI Compatible API
For example, you can use aliyun qwen-xxx models as follows.
Run interactively:
The interactive mode allows you to have a chat with
kubectl-ai, asking multiple questions in sequence while maintaining context from previous interactions. Simply type your queries and press Enter to receive responses. To exit the interactive shell, typeexitor press Ctrl+C.Or, run with a task as input:
Combine it with other unix commands:
You can even combine a positional argument with stdin input. The positional argument will be used as a prefix to the stdin content:
We also support persistence between runs with an opt-in. This lets you save a session to the local filesystem, and resume it to maintain previous context. It even works between different interfaces!
Configuration
You can also configure
kubectl-aiusing a YAML configuration file at~/.config/kubectl-ai/config.yaml:Verify your configuration:
More configuration Options
Here’s a complete configuration file with all available options and their default values:
All these settings can be configured through either:
--model=gemini-2.5-pro)~/.config/kubectl-ai/config.yaml)GEMINI_API_KEY)Command line flags take precedence over configuration file settings.
Tools
kubectl-aileverages LLMs to suggest and execute Kubernetes operations using a set of powerful tools. It comes with built-in tools likekubectlandbash.You can also extend its capabilities by defining your own custom tools. By default,
kubectl-ailooks for your tool configurations in~/.config/kubectl-ai/tools.yaml.To specify tools configuration files or directories containing tools configuration files, use:
For further details on how to configure your own tools, go here.
Docker Quick Start
This project provides a Docker image that gives you a standalone environment for running kubectl-ai, including against a GKE cluster.
Running the container against GKE
Step 1: Build the Image
Clone the repository and build the image with the following command
Step 2: Connect to Your GKE Cluster
Set up application default credentials and connect to your GKE cluster.
Step 3: Run the kubectl-ai container
Below is a sample command that can be used to launch the container with a locally hosted web-ui. Be sure to replace the placeholder values with your specific Google Cloud project ID and location. Note you do not need to mount the gcloud config directory if you’re on a cloudshell machine.
For more info about running from the container image see CONTAINER.md
MCP Client Mode
kubectl-aican connect to external MCP Servers to access additional tools in addition to built-in tools.Quick Start with MCP Client
Enable MCP client mode:
MCP Client Configuration
Create or edit
~/.config/kubectl-ai/mcp.yamlto customize MCP servers:The system automatically:
No additional setup required - just use the
--mcp-clientflag and the AI will have access to all configured MCP tools.📖 For detailed configuration options, troubleshooting, and advanced features for MCP Client mode, see the MCP Client Documentation.
📖 For multi-server orchestration and security automation examples, see the MCP Client Integration Guide.
Extras
You can use the following special keywords for specific actions:
model: Display the currently selected model.models: List all available models.tools: List all available tools.version: Display thekubectl-aiversion.reset: Clear the conversational context.clear: Clear the terminal screen.exitorquit: Terminate the interactive shell (Ctrl+C also works).Invoking as kubectl plugin
You can also run
kubectl ai.kubectlfinds any executable file in yourPATHwhose name begins withkubectl-as a plugin.MCP Server Mode
kubectl-aican act as an MCP server that exposes kubectl tools to other MCP clients (like Claude, Cursor, or VS Code). The server can run in two modes:Basic MCP Server (Built-in tools only)
Expose only kubectl-ai’s native Kubernetes tools:
Enhanced MCP Server (With external tool discovery)
Additionally discover and expose tools from other MCP servers as a unified interface:
This creates a powerful tool aggregation hub where kubectl-ai acts as both:
To serve clients over HTTP using the streamable transport, run:
This starts an MCP endpoint at
http://localhost:9080/mcp.The enhanced mode provides AI clients with access to both Kubernetes operations and general-purpose tools (filesystem, web search, databases, etc.) through a single MCP endpoint.
📖 For detailed configuration, examples, and troubleshooting, see the MCP Server Documentation.
Start Contributing
We welcome contributions to
kubectl-aifrom the community. Take a look at our contribution guide to get started.Learning Resources
Talks and Presentations
Note: This is not an officially supported Google product. This project is not eligible for the Google Open Source Software Vulnerability Rewards Program.