tether is a read-friendly Kubernetes dashboard that runs entirely in the browser.
It connects directly to any kubectl proxy endpoint — no backend server, no cluster-side install.
Key highlights:
- 🗂 Full resource browser — all standard resource types with kubectl-style columns, YAML view, and copy
- 🔭 Helm application graph — visual dependency graph scoped to a Helm release, including references to external secrets, configmaps, PVCs, and service accounts your chart doesn't own
- 📊 Overview dashboard — pod/deployment/service health charts at a glance
- 📜 Log streaming — tail pod logs with container selection
- 🔐 Secret decode — base64-decode secret values inline
- 🌙 Light / dark theme — follows your OS preference, toggleable
| Tool | Version |
|---|---|
| Node.js | ≥ 18 |
| kubectl | any recent |
| A running Kubernetes cluster | — |
kubectl proxy --port=8001git clone https://github.com/troll-warlord/tether.git
cd tether
npm install
npm run devOpen http://localhost:5173 and enter http://localhost:8001 as the API URL.
Browser → kubectl proxy → Kubernetes API server
tether communicates with the Kubernetes API server exclusively through the standard kubectl proxy — there is no backend, no credentials stored outside your machine, and no telemetry.
| Layer | Technology |
|---|---|
| UI framework | Vue 3 (Composition API) |
| Build tool | Vite 8 |
| Styling | Tailwind CSS v3 |
| State management | Pinia |
| Graph visualisation | Vue Flow |
| Charts | Chart.js + vue-chartjs |
| Icons | Lucide Vue + official K8s SVG icon set |
| Group | Resources |
|---|---|
| Workloads | Pods, Deployments, StatefulSets, DaemonSets, ReplicaSets, Jobs, CronJobs, HPAs, PodDisruptionBudgets |
| Network | Services, Ingresses, NetworkPolicies, Endpoints |
| Storage | PersistentVolumes, PersistentVolumeClaims, StorageClasses |
| Configuration | ConfigMaps, Secrets, ResourceQuotas, LimitRanges |
| Access Control | ServiceAccounts, Roles, RoleBindings, ClusterRoles, ClusterRoleBindings |
| Cluster | Namespaces, Nodes, Events |
| Helm | Helm Releases (via helm.sh/release.v1 secrets) |
npm run dev # start dev server with kubectl proxy passthrough
npm run build # production build
npm run lint # ESLint check (exits non-zero on warnings)
npm run lint:fix # ESLint auto-fix
npm run format # Prettier format all src files
npm run format:check # Prettier check (used in CI)See CONTRIBUTING.md.
MIT © Tarun Pable