https://github.com/applejag/kubectl-klock
A kubectl plugin to render watch output in a more readable fashion
https://github.com/applejag/kubectl-klock
go go-cli golang golang-cli hacktoberfest krew-plugin kubectl-plugin
Last synced: about 2 months ago
JSON representation
A kubectl plugin to render watch output in a more readable fashion
- Host: GitHub
- URL: https://github.com/applejag/kubectl-klock
- Owner: applejag
- License: gpl-3.0
- Created: 2022-09-01T18:29:17.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-13T01:42:18.000Z (about 2 months ago)
- Last Synced: 2025-03-16T01:00:19.741Z (about 2 months ago)
- Topics: go, go-cli, golang, golang-cli, hacktoberfest, krew-plugin, kubectl-plugin
- Language: Go
- Homepage:
- Size: 1.06 MB
- Stars: 54
- Watchers: 2
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - applejag/kubectl-klock - A kubectl plugin to render watch output in a more readable fashion (Go)
README
# kubectl-klock

[](https://github.com/applejag/kubectl-klock/releases)
[](https://api.reuse.software/info/github.com/applejag/kubectl-klock)A `kubectl` plugin to render the `kubectl get pods --watch` output in a
much more readable fashion.Think of it as running `watch kubectl get pods`, but instead of polling,
it uses the regular watch feature to stream updates as soon as they occur.## Installation
### Krew
[](https://krew.sigs.k8s.io/plugins/)
```sh
kubectl krew install klock
```### Snap
[](https://snapcraft.io/klock)
```sh
sudo snap install klock
```### Scoop

```pwsh
scoop bucket add applejag https://github.com/applejag/applejag-bucket
scoop install applejag/kubectl-klock
```### Nix
[](https://repology.org/project/kubectl-klock/versions)
```sh
nix-shell -p kubectl-klock
```### Pre-built binaries
You can download pre-built binaries from the latest GitHub release:
Download the one that fits your OS and architecture, extract the
tarball/zip file, and move the `kubectl-klock` binary to somewhere in your PATH.
For example:```sh
tar -xzf kubectl-klock_linux_amd64.tar.gz
sudo mv ./kubectl-klock /usr/local/bin
```### From source
Requires Go 1.21 (or later).
```sh
go install github.com/applejag/kubectl-klock@latest
```## Usage
Supports a wide range of flags
```sh
kubectl klock [name(s)] [flags]
```### Examples
```sh
# Watch all pods
kubectl klock pods# Watch all pods with more information (such as node name)
kubectl klock pods -o wide# Watch a specific pod
kubectl klock pods my-pod-7d68885db5-6dfst# Watch a subset of pods, filtering on labels
kubectl klock pods --selector app=my-app
kubectl klock pods -l app=my-app# Watch all pods in all namespaces
kubectl klock pods --all-namespaces
kubectl klock pods -A# Watch other resource types
kubectl klock cronjobs
kubectl klock deployments
kubectl klock statefulsets
kubectl klock nodes# Watch all pods, but restart the watch when your ~/.kube/config file changes,
# such as when using "kubectl config use-context NAME"
kubectl klock pods --watch-kubeconfig
kubectl klock pods -W
```There's also some hotkeys available:
```text
→/l/pgdn next page / filter by text ctrl+c quit
←/h/pgup prev page enter close the filter input field ?/esc close help
g/home go to start esc clear the applied filter d show/hide deleted
G/end go to end ↓/ctrl+n show next suggestion f toggle fullscreen
↑/ctrl+p show previous suggestion
tab accept a suggestion
```## Features
- Pagination, for when the terminal window gets too small (height-wise)
- Same output format as `kubectl get`
- Watch arbitrary resources, just like `kubectl get [name]`
- Filter results
- Auto updating age column.
- Colors on statuses (e.g `Running`) and fractions (e.g `1/1`) to make
them stand out more.- Restart watch when kubeconfig file changes (flag: `--watch-kubeconfig`, `-W`),
such as when changed by [kubectx](https://github.com/ahmetb/kubectx).## Completion
To get completion when writing `kubectl klock`, you need to add
[`./bin/kubectl_complete-klock`](./bin/kubectl_complete-klock)
to your `PATH`.For example:
```sh
sudo curl https://github.com/applejag/kubectl-klock/raw/main/bin/kubectl_complete-klock -o /usr/local/bin/kubectl_complete-klock
sudo chmod +x /usr/local/bin/kubectl_complete-klock
```