/install kubevpn
KubeVPN
KubeVPN bridges a local machine to a remote Kubernetes cluster network. Core workflows: connect (VPN tunnel), proxy (traffic interception), run (local pod simulation), sync (local code → cluster clone).
Installation
brew install kubevpn # macOS
curl -fsSL https://kubevpn.dev/install.sh | sh # Linux/macOS
kubectl krew install kubevpn/kubevpn # kubectl plugin
scoop bucket add extras && scoop install kubevpn # Windows
Core Workflows
1. Connect — Access cluster network
kubevpn connect
kubevpn connect -n \x3Cnamespace>
kubevpn connect --context \x3Ccontext-name>
kubevpn disconnect --all
After connecting, access cluster resources directly:
ping \x3Cpod-ip>
curl \x3Cservice-name>:\x3Cport>
curl \x3Cservice-name>.\x3Cnamespace>.svc.cluster.local:\x3Cport>
2. Proxy — Intercept inbound traffic
Intercepts inbound cluster traffic for a workload and forwards to local machine.
proxy also auto-connects to the cluster if not already connected.
kubevpn proxy deployment/\x3Cname>
kubevpn proxy deployment/\x3Cname> -n \x3Cnamespace>
# Mesh mode: only requests with matching headers go to local
kubevpn proxy deployment/\x3Cname> --headers foo=bar
kubevpn proxy deployment/\x3Cname> --headers foo=bar --headers env=dev # AND logic
# Port mapping
kubevpn proxy deployment/\x3Cname> --portmap 9080:8080
kubevpn proxy deployment/\x3Cname> --portmap udp/9080:5000
# Multiple workloads at once
kubevpn proxy deployment/authors deployment/productpage
kubevpn leave deployment/\x3Cname> # stop proxying, restore workload
3. Run — Simulate pod locally in Docker
Runs a workload in a local Docker container with identical env vars, volumes, and network.
kubevpn run deployment/\x3Cname>
kubevpn run deployment/\x3Cname> --entrypoint /bin/bash # interactive shell
kubevpn run deployment/\x3Cname> --no-proxy # no traffic interception
kubevpn run deployment/\x3Cname> --dev-image golang:1.21 --entrypoint bash
kubevpn run deployment/\x3Cname> --headers foo=bar # mesh mode
4. Sync — Hot-reload local code in cluster
Clones the workload inside the cluster and syncs a local directory into the clone.
The clone has the same env/volumes/network as the original. Supports mesh routing via --headers.
kubevpn sync deployment/\x3Cname> --sync ~/code:/app/code
kubevpn sync deployment/\x3Cname> --sync ~/code:/app/code --headers foo=bar
kubevpn unsync deployment/\x3Cname>-sync-xxxxx # remove sync resource
5. Alias — Named config shortcuts
Define named aliases in ~/.kubevpn/config.yaml to avoid repeating long flags. Supports Needs dependency chains (connect to cluster A before cluster B).
kubevpn alias dev # runs the flags defined under "dev" in config
kubevpn alias jumper # connect to jumper cluster only
See commands.md for config file format.
Via SSH Bastion / Jump Host
All connect/proxy/run/sync commands support SSH jump:
kubevpn connect --ssh-addr 192.168.1.100:22 --ssh-username root --ssh-keyfile ~/.ssh/id_rsa
kubevpn connect --ssh-alias dev # uses ~/.ssh/config alias
kubevpn proxy deployment/\x3Cname> --ssh-alias dev --headers foo=bar
Reference Files
- commands.md — Full flag reference for all kubevpn commands (including
alias,connection,route,ssh,image,logs,quit) - architecture.md — How connect/proxy/mesh modes work internally
Common Patterns
| Goal | Command |
|---|---|
| Access cluster IPs/services locally | kubevpn connect |
| Connect using a saved alias | kubevpn alias \x3Cname> |
| Debug a service (receive all its traffic) | kubevpn proxy deployment/\x3Cname> |
| Debug only my requests (don't break others) | kubevpn proxy deployment/\x3Cname> --headers x-user=me |
| Reproduce a pod environment locally | kubevpn run deployment/\x3Cname> --entrypoint sh |
| Hot-reload local code in cluster env | kubevpn sync deployment/\x3Cname> --sync ~/code:/app |
| Check connection status | kubevpn status |
| Force-restore a stuck workload | kubevpn reset deployment/\x3Cname> |
| Fully stop kubevpn (daemon + connections) | kubevpn quit |
| Remove all kubevpn from cluster | kubevpn uninstall |
| Copy image to private registry | kubevpn image copy \x3Csrc> \x3Cdst> |
| Tail daemon logs | kubevpn logs -f |
Notes
proxy,run, andsyncauto-connect to the cluster if not already connected- Multiple clusters can be connected simultaneously; use
kubevpn statusorkubevpn connection listto inspect disconnectcleans up DNS/hosts;quitalso stops the daemon gRPC server entirely- Server components are auto-deployed on first use (or pre-install:
helm install kubevpn kubevpn/kubevpn) - Supports HTTP, gRPC, Thrift, WebSocket, TCP, UDP, ICMP
- Use
kubevpn reset deployment/\x3Cname>if a workload gets stuck with injected containers - Use
kubevpn image copyto mirror images to a private registry whenghcr.iois not accessible
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install kubevpn - After installation, invoke the skill by name or use
/kubevpn - Provide required inputs per the skill's parameter spec and get structured output
What is kubevpn?
KubeVPN is a cloud-native dev tool to connect local machine to Kubernetes cluster networks. Use this skill when the user mentions: kubevpn, KubeVPN, or any o... It is an AI Agent Skill for Claude Code / OpenClaw, with 202 downloads so far.
How do I install kubevpn?
Run "/install kubevpn" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is kubevpn free?
Yes, kubevpn is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does kubevpn support?
kubevpn is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created kubevpn?
It is built and maintained by naison (@wencaiwulue); the current version is v2.9.14.