# ktop gives a Kubernetes cluster a top-like display without installing anything

> ktop is a Go terminal application that shows nodes, pods and containers for a Kubernetes cluster, following the Unix top tradition, and it runs entirely from your kubeconfig with no agents or server-side components. It takes metrics from Prometheus, from the Metrics-Server, or falls back to showing the resource requests and limits declared in the manifests.

**vladimirvivien/ktop** — A top-like tool for your Kubernetes cluster metrics

- Repository: https://github.com/vladimirvivien/ktop
- Website: https://ktop.app/
- Stars: 1,114 · Forks: 25
- Language: Go
- License: Apache-2.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/vladimirvivien-ktop

## Nothing is installed in the cluster

The feature list is organised around what the tool does not need. It runs locally using your kubeconfig, with no agents or server-side components, and it works anywhere kubectl works because it connects through the Kubernetes API and requires no direct node access. The comparison point is the Unix and Linux tradition of top, and ktop is the cluster equivalent: a continuously updated view of nodes, pods and other workload resources. The single binary property is stated as download and run with no dependencies beyond a valid kubeconfig, which makes it a tool you can put on a jump host without a build pipeline.

## Four ways in, and the same command underneath

The installation section offers the four routes you would expect for a Kubernetes-adjacent tool, and they all end at the same executable. The krew route installs it as a kubectl plugin so it appears as `kubectl ktop`, which requires the krew plugin manager. Homebrew is a tap and install. Go install is a single line, and the binary download is from the GitHub releases page:

```bash
kubectl krew install ktop
kubectl ktop
```

```bash
brew tap vladimirvivien/oss-tools
brew install ktop
```

```bash
go install github.com/vladimirvivien/ktop@latest
```

The krew plugin form is the one to think about, because it means the tool is discoverable from kubectl itself and is versioned with the rest of your local tooling rather than being something you install per machine.

## The metrics source is a decision you have to make

This is the part that changes what you see. ktop supports multiple metrics sources: Prometheus for enhanced metrics, Metrics-Server, or no metrics as a fallback. And it degrades gracefully, working even without metrics infrastructure by showing resource requests and limits instead. The practical difference is large. With Prometheus you get measured CPU and memory usage, and the numbers are the real ones. With the fallback you are reading the values the deployment declared, which is a completely different thing and will be wrong whenever a container uses less than it asked for. The flag is `--metrics-source=prometheus`, and the sensible default for a cluster that has Prometheus is to ask for it explicitly rather than accept whatever falls out.

## Drill-down navigation and streaming logs

The interaction model is the other half of the feature list. There is real-time monitoring with a continuously updated view of nodes, pods and containers, and drill-down navigation that goes from the cluster overview to a node, to a pod, to container logs. The logs are streamed in real time with filtering, timestamps, line wrap and a full-screen mode. A full-screen log mode in a terminal is the kind of thing that decides whether a tool gets used during an incident or gets replaced by a browser dashboard, because during an incident you want the same muscle memory you have from tail. The drill-down is worth contrasting with a dashboard, since the path from a symptom to a container is a few keystrokes rather than a set of links.

## The Go code is a terminal UI over the Kubernetes client

The dependency list in the module manifest shows the stack, and it is a familiar one. The terminal side is tcell for the low level screen handling and tview for the widgets, with cobra and pflag for the command line, and lumberjack for log rotation. The Kubernetes side is client-go along with the api, apimachinery, cli-runtime and metrics packages, plus klog for logging and sigs.k8s.io/yaml for configuration. The Prometheus client and common packages and the prometheus module itself are direct dependencies, which is consistent with Prometheus being one of the metrics sources rather than an afterthought. The repository layout follows a common Go service shape, with `cmd/` for the entry point, `internal/` for the internals, `ui/` and `views/` for the terminal rendering, `k8s/` for the cluster access, `metrics/` and `prom/` for the metrics sources, `config/` for configuration, `application/` for the wiring, and `health/`, `buildinfo/`, `docs/` and `hack/` for the rest.

## A kubectl plugin means the flags are the API

The quick start section is short enough to read as a design summary. With a valid kubeconfig file, either `$KUBECONFIG` or `~/.kube/config`, the tool starts with default settings, and there are flags for the pieces you would otherwise configure in a file. `--context` selects a cluster, `--namespace` filters to one namespace, and `--metrics-source=prometheus` picks the metrics backend:

```bash
# Start ktop with default settings
ktop

# Use a specific context
ktop --context my-cluster

# Filter to a namespace
ktop --namespace production

# Use Prometheus for enhanced metrics
ktop --metrics-source=prometheus
```

That set of flags is a reasonable description of the tool's whole surface. The documentation lives on a separate mkdocs site, and the project is released with goreleaser, given the `.goreleaser.yml` and the `.krew.yaml` files at the root for the krew manifest. The last release is v0.5.3 from 2026-01-12 and the last push to the main branch was on 2026-07-03.

## Conclusion

Adopt ktop if you want a top-like view of a cluster from your laptop with nothing installed in the cluster, since it talks only to the Kubernetes API and needs only a valid kubeconfig. Do not adopt it if you need historical data, because it is a live view rather than a time series store. Verify first which metrics source is available in your cluster, since the fallback shows the declared requests and limits rather than measured usage, and that your permissions allow reading the metrics endpoints you intend to use.

## FAQ

### Does ktop need to be installed in the Kubernetes cluster?

No. It runs locally using your kubeconfig with no agents or server-side components, and it connects through the Kubernetes API rather than accessing nodes directly. It is distributed as a single binary with no dependencies beyond a valid kubeconfig.

### How do I install ktop?

As a kubectl plugin with `kubectl krew install ktop`, with Homebrew via the vladimirvivien/oss-tools tap, with `go install github.com/vladimirvivien/ktop@latest`, or by downloading the binary from the GitHub releases page.

### Where does ktop get its metrics?

From Prometheus for enhanced metrics, from the Metrics-Server, or from no metrics at all as a fallback, in which case it shows the resource requests and limits declared in the manifests instead of measured usage. The source is selected with the `--metrics-source` flag.

### What can I do in ktop besides see metrics?

You can drill down from the cluster overview to a node, to a pod and to container logs, and the log view supports streaming with filtering, timestamps, line wrap and a full-screen mode.

### What licence is ktop released under?

The Apache 2.0 licence, with the licence file in the repository root. The current release is v0.5.3 from 2026-01-12, and the last push to the main branch was on 2026-07-03.

## Sources

- [License: Apache-2.0](https://github.com/vladimirvivien/ktop/blob/main/LICENSE)
- [Project website](https://ktop.app/)
- [README](https://github.com/vladimirvivien/ktop/blob/main/README.md)
- [Releases](https://github.com/vladimirvivien/ktop/releases)
- [vladimirvivien/ktop on GitHub](https://github.com/vladimirvivien/ktop)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/vladimirvivien-ktop
