Repository navigation
Releases: vellankikoti/kcli
Release list
kcli v0.4.5 — Exec entry message
kcli v0.4.5 — Exec shell entry message
When using exec in interactive mode, kcli now shows a clear message:
Action: x
→ kcli exec -it -n kube-system kindnet-txkbr -- sh
Entering container shell... (type 'exit' or Ctrl+D to return)
/ # ← you are now inside the container
Also suppresses the noisy "exit 130" error when you Ctrl+C out of a shell session.
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.4.5/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.4.4 — Fix exec
kcli v0.4.4 — Fix exec namespace placement
Bug: exec -it pod -- sh -n namespace passed -n namespace as part of the shell command (after --), causing sh: cannot open blue-green-demo: No such file or directory.
Fix: exec -it -n namespace pod -- sh — namespace flag now correctly placed before the -- separator.
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.4.4/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.4.3 — Stay on Same Resource
kcli v0.4.3 — Stay on Same Resource
Fixed interactive mode flow. After performing an action, you stay on the same resource — no more re-selecting.
$ kcli get pods -i
Select resource [1-7]: 2
blue-deployment-xxx (blue-green-demo)
[L] Logs [D] Describe [X] Exec [E] Edit [P] Port-forward [DEL] Delete [Q] Back to list
Action: l ← view logs
(logs output...)
─────────────────
blue-deployment-xxx (blue-green-demo) ← SAME POD, no re-selection!
[L] Logs [D] Describe [X] Exec ...
Action: d ← now describe same pod
(describe output...)
─────────────────
Action: q ← back to resource list
Select resource [1-7]: q ← exit
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.4.3/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.4.2 — Interactive Mode Fix
kcli v0.4.2 — Interactive Mode Working
Fixed interactive mode (-i flag) — the full flow now works:
$ kcli get pods -i
╭─────┬───────────────┬──────────────────────┬───────┬──────────────╮
│ # │ NAMESPACE │ NAME │ READY │ STATUS │
├─────┼───────────────┼──────────────────────┼───────┼──────────────┤
│ 1 │ blue-green-d… │ blue-deployment-xxx │ 1/1 │ ✓ Running │
│ 2 │ blue-green-d… │ green-deployment-yyy │ 1/1 │ ✓ Running │
╰─────┴───────────────┴──────────────────────┴───────┴──────────────╯
Select resource [1-2] (q=quit): 1
blue-deployment-xxx (blue-green-demo)
[L] Logs [D] Describe [X] Exec [E] Edit [P] Port-forward [DEL] Delete [Q] Back
Action: d
→ kcli describe pod/blue-deployment-xxx -n blue-green-demo
(full describe output)
Select resource [1-2] (q=quit):
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.4.2/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.4.1 — Complete Interactive Coverage
kcli v0.4.1 — Interactive Actions for ALL 27 Resource Types
Every resource type now has explicit, context-appropriate actions in interactive mode (-i).
Complete Coverage
| Resource | Actions |
|---|---|
| Pods | Logs, Describe, Exec, Edit, Port-forward, Delete |
| Deployments | Describe, Logs, Scale, Restart, Edit, Delete |
| StatefulSets | Describe, Logs, Scale, Restart, Edit, Delete |
| DaemonSets | Describe, Logs, Restart, Edit, Delete |
| Services | Describe, Port-forward, Edit, Delete |
| Nodes | Describe, Cordon, Uncordon, Drain |
| Namespaces | Switch, Describe, Delete |
| CronJobs | Describe, Suspend, Resume, Edit, YAML, Delete |
| Jobs | Describe, Logs, YAML, Delete |
| ConfigMaps | Describe, Edit, YAML, Delete |
| Secrets | Describe, YAML, Delete |
| Ingresses | Describe, Edit, YAML, Delete |
| PVC | Describe, Edit, YAML, Delete |
| PV | Describe, YAML |
| HPA | Describe, Edit, YAML, Delete |
| ReplicaSets | Describe, Scale, YAML, Delete |
| Events | Describe |
| SA | Describe, YAML, Delete |
| Endpoints | Describe, YAML |
| NetworkPolicies | Describe, Edit, YAML, Delete |
| Roles/RoleBindings | Describe, YAML, Delete |
| ClusterRoles/CRB | Describe, YAML |
| StorageClasses | Describe, YAML |
| LimitRanges | Describe, YAML |
| ResourceQuotas | Describe, Edit, YAML |
27 resource types. Zero falling to generic default.
Usage
kcli get pods -i
kcli get deploy -i
kcli get nodes -i
kcli get cronjobs -iUpgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.4.1/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.4.0 — Interactive Mode
kcli v0.4.0 — Interactive Mode
kcli get pods -i — k9s-like actions from the CLI
Add -i to any get command to enter interactive mode after the table displays:
$ kcli get pods -i
╭─────┬──────────┬──────────────┬───────┬──────────────╮
│ # │ NS │ NAME │ READY │ STATUS │
├─────┼──────────┼──────────────┼───────┼──────────────┤
│ 1 │ default │ nginx-xxx │ 1/1 │ ✓ Running │
│ 2 │ default │ api-yyy │ 2/2 │ ✓ Running │
╰─────┴──────────┴──────────────┴───────┴──────────────╯
Select resource [1-2] (q=quit): 1
nginx-xxx (default)
[L] Logs [D] Describe [X] Exec [E] Edit [P] Port-forward [DEL] Delete [Q] Back
Action: l
→ kcli logs pod/nginx-xxx --tail=100 -n default
Resource-specific actions
| Resource | Actions |
|---|---|
| Pods | Logs, Describe, Exec, Edit, Port-forward, Delete |
| Deployments | Describe, Logs, Scale, Restart, Edit, Delete |
| Services | Describe, Port-forward, Edit, Delete |
| Nodes | Describe, Cordon, Uncordon, Drain |
| Namespaces | Switch, Describe, Delete |
| ConfigMaps | Describe, Edit, YAML, Delete |
| Secrets | Describe, YAML, Delete |
Non-breaking
Default kcli get pods behavior is unchanged. The -i flag is opt-in.
Also in this release
kcli nscolored table with ▶ current markerkcli ctxcolored table with ★ favorites
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.4.0/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.3.2 — ns and ctx Tables
kcli v0.3.2 — ns and ctx Colored Tables
Now Enhanced
kcli ns — beautiful namespace table:
╭─────┬───┬────────────────────┬────────────┬──────────╮
│ # │ │ NAMESPACE │ STATUS │ AGE │
├─────┼───┼────────────────────┼────────────┼──────────┤
│ 1 │ ▶ │ blue-green-demo │ ✓ Active │ 1w ago │
│ 2 │ │ default │ ✓ Active │ 1w ago │
│ 3 │ │ kube-system │ ✓ Active │ 1w ago │
╰─────┴───┴────────────────────┴────────────┴──────────╯
kcli ctx — beautiful context table:
╭─────┬───┬──────────────────────┬─────╮
│ # │ │ CONTEXT │ FAV │
├─────┼───┼──────────────────────┼─────┤
│ 1 │ ▶ │ docker-desktop │ │
│ 2 │ │ kind-kubilitics-test │ ★ │
╰─────┴───┴──────────────────────┴─────╯
- ▶ marks current context/namespace (sorted to top)
- ★ marks favorites
- Status icons with colors, age column, serial numbers
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.3.2/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.3.1 — Auto Shell Completion
kcli v0.3.1 — Auto-Install Shell Completion
Zero Setup Required
Shell completion now installs automatically on first run. No manual steps needed.
When you run any kcli command for the first time:
$ kcli version
✓ kcli: shell completion installed for zsh
Restart your terminal or run: source <(kcli completion zsh)
kcli v0.3.1
After restarting your terminal (or sourcing), tab completion works everywhere:
kcli get po<TAB> → pods
kcli get pods blue<TAB> → blue-deployment-xxx
kcli get pods -n ku<TAB> → kube-system
kcli hea<TAB> → health
kcli get deploy<TAB> → deploymentsHow it works
- Detects shell (zsh/bash/fish)
- Generates completion script to
~/.kcli/completion/ - Adds source line to
.zshrc/.bashrc(fish auto-loads) - One-time message, then silent forever
- Skipped in CI environments
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.3.1/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.3.0 — 27 Resource Types Enhanced
kcli v0.3.0 — Every Resource Type Enhanced
27 resource types now render with colored tables, status icons, serial numbers, and totals. Zero plain kubectl output on interactive terminals.
Newly Enhanced (11 types)
kcli get sa # ServiceAccounts with secrets count
kcli get ep # Endpoints with addresses
kcli get hpa # HPA with targets, min/max, replicas
kcli get netpol # NetworkPolicies with selectors
kcli get roles # Roles with rule count
kcli get rolebindings # RoleBindings with role reference
kcli get clusterroles # ClusterRoles (cluster-scoped)
kcli get clusterrolebindings # ClusterRoleBindings
kcli get sc # StorageClasses with provisioner
kcli get limitranges # LimitRanges
kcli get resourcequotas # ResourceQuotasComplete List (27 types)
pods, deployments, services, nodes, namespaces, statefulsets, daemonsets, replicasets, configmaps, secrets, jobs, cronjobs, pv, pvc, ingresses, events, serviceaccounts, endpoints, hpa, networkpolicies, roles, rolebindings, clusterroles, clusterrolebindings, storageclasses, limitranges, resourcequotas
Also in this release
- Fixed Unicode column alignment (runewidth)
showcommand supportswithmodifiers- Modifier columns never hidden (PriorityAlways)
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.3.0/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/kcli v0.2.4 — Fixed Column Alignment
kcli v0.2.4 — Fixed Column Alignment
Fix
Columns are now perfectly aligned even with Unicode status icons.
The misalignment was caused by len() counting bytes instead of display width. ✓ is 3 bytes but displays as 1 character, causing all columns after STATUS to shift right.
Now uses go-runewidth for accurate display width calculation in:
- Column width measurement
- Text padding (left/right/center alignment)
- Text truncation with ellipsis
Upgrade
curl -sL https://github.com/vellankikoti/kcli/releases/download/v0.2.4/kcli-darwin-arm64.tar.gz | tar xz
sudo mv kcli /usr/local/bin/