npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

kubeops

v0.1.8

Published

A modern desktop client for Kubernetes cluster management

Readme


Download

Download the latest version for your platform from the Releases page.

| Platform | File | | --------------------- | ----------------------------- | | macOS (Apple Silicon) | KubeOps-{version}-arm64.dmg | | macOS (Intel) | KubeOps-{version}-x64.dmg | | Linux | KubeOps-{version}.AppImage | | Windows | KubeOps-{version}.exe |

The app supports auto-update after installation.

Requirements

  • kubectl installed and available on your PATH
  • A valid ~/.kube/config with at least one cluster context
  • (Optional) helm CLI for Helm chart management
  • (Optional) metrics-server in the cluster for CPU/memory charts
  • (Optional) Prometheus for network I/O and filesystem charts
  • (Optional) tsh CLI for Teleport-managed clusters

Why KubeOps?

There are many Kubernetes tools out there. Here's how KubeOps compares:

| | KubeOps | Lens | k9s | K8s Dashboard | | --- | :---: | :---: | :---: | :---: | | Free & open source | Yes | Freemium | Yes | Yes (archived) | | Visual resource topology | Yes | Extension | No | Limited | | Built-in terminal & logs | Yes | Yes | Yes | Yes | | Real-time metrics & charts | Yes | Yes | Basic | Basic | | Quick actions on resource rows | Yes | No | Yes | No | | Multi-cluster overview | Yes | Yes | No | No | | Cross-cluster resource diff | Yes | No | No | No | | Multi-namespace selection | Yes | No | No | No | | Helm chart management | Yes | Yes | View only | No | | RBAC visualization | Yes | No | Basic | No | | YAML diff view | Yes | No | No | No | | Desktop app (no server install) | Yes | Yes | Terminal | Needs deploy | | Zero config (reads kubeconfig) | Yes | Yes | Yes | Needs deploy | | CRD browser | Yes | Yes | Yes | Limited | | Teleport auth | Yes | No | No | No |

In short

  • Free forever — No subscriptions, no feature gates, no telemetry. MIT licensed.
  • Visual-first — Interactive App Map shows how Ingresses, Services, Deployments, and Pods connect. Not just resource lists.
  • Real-time updates — K8s Watch API delivers live resource changes via WebSocket. No more waiting for polling intervals.
  • All-in-one desktop app — Terminal, logs, port forwarding, metrics charts, YAML editor, Helm management in a single window. No server to deploy, no browser extension to install.
  • Quick actions — Restart, scale, delete, view logs, and exec directly from resource list rows without navigating to detail pages.
  • Multi-cluster overview & apply — See the health of all clusters at a glance. Apply resources to multiple clusters simultaneously with dry-run validation.
  • Cross-cluster diff — Compare the same resource across clusters or namespaces with a visual YAML diff.
  • Multi-namespace — Select multiple namespaces simultaneously and view resources across them in one list.
  • Helm chart management — Browse, install, upgrade, rollback, and uninstall Helm releases directly from the UI.
  • RBAC visualization — See who can do what with a permission matrix and interactive access review.
  • Network topology — Visualize NetworkPolicy relationships between pod groups with an interactive graph.
  • Custom alerts — Define alert rules on resource status, restart counts, or event patterns with desktop notifications.
  • Debugging tools — Node debug shells, pod ephemeral containers, and cascade delete preview with propagation policy selection.
  • Resource templates — Save and reuse YAML templates with variable substitution. 5 built-in templates included.
  • kubectl command viewer — See the equivalent kubectl command for every UI action. Copy with one click.
  • Kubeconfig management — Add, edit, delete contexts and merge kubeconfig files directly from the UI.
  • Resource bookmarks — Star frequently accessed resources for quick navigation from the sidebar.
  • Modern & lightweight — Fast startup, small footprint. No Electron bloat from bundled IDE features you don't need.
  • 35+ resource types — Pods, Deployments, StatefulSets, DaemonSets, CronJobs, HPA, ResourceQuotas, LimitRanges, Services, Ingresses, ConfigMaps, Secrets, CRDs, and more.
  • Cross-platform — Runs natively on macOS, Windows, and Linux with auto-update.

Features

Cluster Overview Dashboard

Auto-detects all clusters from kubeconfig. Select a cluster to see node/pod counts, pod status distribution, workload health, CPU usage per node, active services with port-forward buttons, ingress endpoints, and recent warning events. A Workload Health Summary at the top surfaces failing pods, non-ready workloads, container restarts, and warning events at a glance — or shows a green "All Healthy" banner when everything is fine.

KubeOps Interface

App Map (Resource Topology)

Interactive flowchart visualizing resource relationships: Ingress → Service → Deployment → ReplicaSet → Pod. Auto-layout with pan, zoom, and fit-to-view. Each node shows kind, name, health status, and summary info with Detail and Info action buttons.

KubeOps map

Quick Actions

Every resource list row has a ... context menu for common operations without navigating to the detail page:

  • Pods — View Logs, Exec, Delete
  • Deployments / StatefulSets — Restart, Scale, Delete
  • DaemonSets — Restart, Delete
  • All resources — Delete, Compare (cross-cluster diff)

Live Status Display

Every resource list features searchable, sortable tables with health status badges and relative age display. Warnings and unhealthy states (CrashLoopBackOff, ImagePullBackOff, OOMKilled) are highlighted and surfaced first.

KubeOps list

Pod Terminal & Logs

A resizable bottom panel supports multiple concurrent sessions as tabs. Full PTY-based terminal via kubectl exec with keyboard input and resizing. Real-time log streaming with pause/follow toggle, jump-to-bottom, and download. Sessions persist across page navigation.

KubeOps log

Port Forwarding

Start port forwards from pod container ports, service ports, or YAML editor fields. Manage all active forwards from the Port Forwarding page — view status (starting / active / error), open in browser, or stop individually.

KubeOps forward

Helm Chart Management

Full Helm release lifecycle from the UI. Browse installed releases across all namespaces, view release details (status, chart info, revision history, values), install new charts from configured repositories, upgrade with modified values, rollback to previous revisions, and uninstall releases. Requires the helm CLI on your PATH.

RBAC Visualization

A dedicated RBAC Summary page aggregates all Roles, ClusterRoles, RoleBindings, and ClusterRoleBindings into a permission matrix showing who (User / Group / ServiceAccount) can do what. Filter by subject type or search by name. The Access Review tab lets you check if a specific subject is allowed to perform an action on a resource.

Cluster Catalog

Organize clusters with tags, groups, and favorites. Switch between list and card views. Group clusters by environment (Production / Staging / Development) or create custom groups. Tag clusters for quick filtering. Star your most-used clusters for fast access. All metadata persists across sessions.

YAML Editor (Table / YAML / Edit / Diff)

Four viewing modes for every resource manifest:

  • Table view — Structured, collapsible sections with smart value rendering
  • YAML view — Read-only formatted output
  • Edit mode — Syntax-highlighted editor with validation, Cmd+S to proceed to review
  • Review Changes (mandatory) — Side-by-side diff showing additions (green) and deletions (red). You must review before applying — direct save from edit mode is disabled

KubeOps table

Command Palette

Press Cmd+K (or Ctrl+K) to open a fuzzy-search palette. Quickly jump to clusters (with connection status), namespaces, or any resource type.

KubeOps cmd

Resource Info Drawer

Click the info icon on any App Map node to open a right-side drawer with Overview (metadata, status, labels), Events (sorted by severity with warning highlights), and footer actions to navigate to detail pages or open logs.

KubeOps drawer

Cross-Cluster Resource Diff

Compare the same resource across different clusters or namespaces. Click the Compare button on any resource detail page (or from the Quick Actions menu) to open a diff dialog:

  1. Select a target cluster and namespace
  2. Click Compare to see a side-by-side YAML diff
  3. Metadata noise (uid, resourceVersion, managedFields) and status are stripped for a clean comparison

Useful for verifying configuration parity across staging and production environments.

Multi-Namespace Selector

Select multiple namespaces simultaneously to view resources across them in a single list. Click the checklist icon in the namespace selector to enter multi-select mode:

  • Toggle individual namespaces with checkboxes
  • "All Namespaces" toggles select-all / deselect-all
  • The trigger button shows "N namespaces" when multiple are selected
  • Resources are fetched from all namespaces and filtered client-side

Multi-Cluster Overview

Navigate to /clusters and click the Overview button to see all connected clusters on a single dashboard:

  • Summary stats — Total connected clusters, running pods, failing pods, and warning events
  • Cluster health grid — Cards per cluster with status dot, pod count, failing count, and warning count
  • Failing pods breakdown — Table of clusters with failing pods, sorted by severity
  • Warning events breakdown — Table of clusters with recent warning events

Click any cluster card to jump directly to that cluster's overview page.

Deployment Scaling

Scale Deployments and StatefulSets directly from the UI. A dedicated scale dialog lets you set the desired replica count and apply it instantly.

Custom Resource Definitions (CRDs)

Browse cluster-installed CRDs and their instances. The sidebar lists discovered CRD groups, and each instance supports the same Table / YAML / Edit views as built-in resources.

Dark / Light Mode

Toggle between dark and light themes from the header. Powered by next-themes with system preference detection. Your choice persists across sessions.

Teleport Authentication

For clusters behind Teleport, KubeOps detects Teleport contexts and provides a built-in login flow via tsh kube login — no manual terminal steps required.

Real-time Watch Updates

Resource lists update in real-time via K8s Watch API over WebSocket. A connection status indicator in the header shows the current state (Live / Reconnecting / Polling mode). Falls back to periodic polling when WebSocket is unavailable.

Custom Alert Rules

Define alert rules to monitor resource status changes, restart counts, CPU/memory thresholds, or event patterns. Alerts trigger desktop notifications and in-app toasts. Manage rules and view alert history from Settings.

Event Timeline

View cluster events in a timeline format with vertical time axis, Warning/Normal badges, and resource grouping. Toggle between table and timeline views on the Events page. Follow mode auto-scrolls on new events.

HPA / ResourceQuota / LimitRange Visualization

  • HPA: Replica gauge, per-metric current vs target charts, scaling event history, linked workload navigation
  • ResourceQuota: Usage gauges with color coding (green/yellow/red) per resource type
  • LimitRange: Type-specific tables with visual range bars showing min/default/max

Resource Bookmarks

Star any resource for quick access. Bookmarked resources appear in a dedicated sidebar section, grouped by cluster and resource type.

Resource Templates

Save YAML templates with {{variable}} placeholders. Create resources from templates with a variable input form and YAML preview. 5 built-in templates (Deployment, Service, ConfigMap, CronJob, Ingress) included.

Kubeconfig Management

Add, edit, and delete kubeconfig contexts from the UI. Merge external kubeconfig files with conflict detection and skip/overwrite strategy. Auto-backup before modifications.

kubectl Command Viewer

Every action dialog shows the equivalent kubectl command in a collapsible section. Copy to clipboard with one click.

Node Debug Shell

Create a privileged debug pod on any node with host filesystem access. Choose from BusyBox, Alpine, Ubuntu, or netshoot images. Terminal opens automatically. Debug pods are cleaned up on session close.

Pod Debug Container (Ephemeral)

Inject an ephemeral debug container into a running pod without restarting it. Share process namespace with a target container for debugging. Requires Kubernetes 1.25+.

Cascade Delete Preview

Before deleting a resource, see all dependent resources that will be cascade-deleted in a tree view. Choose propagation policy: Foreground, Background, or Orphan.

Multi-cluster Apply

Apply a single YAML to multiple clusters simultaneously. Stepper dialog with YAML editor, target selection, dry-run validation, and per-target progress tracking.

Network Policy Topology

Visualize NetworkPolicy relationships as an interactive graph. Pod groups as nodes, ingress/egress rules as edges. Click nodes or edges for detailed policy information. Special nodes for External (ipBlock) and Any (empty selector) traffic.

Pod Restart Watcher

Enable Watch on any pod to monitor restart counts in the background. Polls every 10 seconds and sends desktop notifications when restarts increase. Watched pods persist across sessions.

Auto-Update

An update indicator in the header shows the current state: checking → available → downloading → ready to install. Updates are downloaded in the background and applied on the next restart.


Development

Run from Source

git clone https://github.com/trustspirit/kubeops.git
cd kubeops
npm install          # Node.js v18+ required
npm run electron:dev

The app opens automatically once the dev server is ready (port 51230).

Mock Mode

Run without a real cluster using built-in mock data (3 clusters, various pod states, warning events):

npm run dev:mock     # http://localhost:51230

Build

Create a distributable package for your platform:

| Platform | Command | | -------- | ------------------------------ | | macOS | npm run electron:build:mac | | Windows | npm run electron:build:win | | Linux | npm run electron:build:linux |

Output is written to dist-electron/.


Keyboard Shortcuts

| Shortcut | Action | | ------------------ | ----------------------------------- | | Cmd+K / Ctrl+K | Open command palette | | Cmd+S / Ctrl+S | Review changes (edit mode) | | Cmd+S / Ctrl+S | Apply changes (review mode) |


Error Logs

KubeOps automatically captures errors and writes them to a log file so you can diagnose issues even without DevTools.

What gets logged:

  • Main process crashes (uncaught exceptions, unhandled rejections)
  • Renderer process crashes and console.error() output
  • Production server stderr and unexpected exits
  • Startup failures

Log location:

| Platform | Path | | -------- | ------------------------------------------------------ | | macOS | ~/Library/Application Support/KubeOps/logs/error.log | | Windows | %APPDATA%\KubeOps\logs\error.log | | Linux | ~/.config/KubeOps/logs/error.log |

Accessing logs from the app:

Use the Help menu:

| Menu Item | Action | | ----------------- | ---------------------------------------------- | | Open Error Log | Opens the log file in your default text editor | | Show Log Folder | Opens the log directory in Finder / Explorer | | Export Error Log… | Save a copy to a location of your choice |

Logs rotate automatically at 5 MB (previous log kept as error.log.old).


Supported Resources

KubeOps provides full browse / detail / YAML / edit support for 35+ Kubernetes resource types:

| Category | Resources | | --------------- | -------------------------------------------------------------- | | Workloads | Pods, Deployments, StatefulSets, DaemonSets, ReplicaSets, Jobs, CronJobs, HPA | | Network | Services, Ingresses, Endpoints, Network Policies, Network Topology | | Config | ConfigMaps, Secrets, Service Accounts, Resource Quotas, Limit Ranges | | Storage | Persistent Volumes, Persistent Volume Claims | | Access Control | Roles, Role Bindings, Cluster Roles, Cluster Role Bindings, RBAC Summary | | Cluster | Nodes, Namespaces, Events | | Helm | Releases (install, upgrade, rollback, uninstall) | | Custom | Any installed CRD and its instances |


Troubleshooting

| Problem | Solution | | ------------------------- | --------------------------------------------------------------------------- | | macOS Gatekeeper warning | See macOS Gatekeeper below | | "No clusters found" | Verify ~/.kube/config is valid — run kubectl config get-contexts | | Connection refused | Restart the app or check if port 51230 is in use | | Metrics charts empty | Ensure metrics-server is installed in the cluster | | Network/FS charts missing | Requires Prometheus with container_network_* and container_fs_* metrics | | Port forward fails | Check that kubectl is on your PATH and the target pod is running | | Teleport login fails | Ensure tsh is installed and on your PATH | | Diagnosing crashes | Open Help → Open Error Log to see captured errors |

macOS Gatekeeper

Because the app is not yet code-signed with an Apple Developer certificate, macOS may show:

"KubeOps.app" cannot be opened because the developer cannot be verified.

Option A — System Settings (recommended)

  1. Open System Settings → Privacy & Security
  2. Scroll down to find the blocked message for KubeOps
  3. Click Open Anyway

Option B — Terminal

xattr -cr /Applications/KubeOps.app

License

MIT