neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
Klustr: Go로 제작된 네이티브 Kubernetes 데스크톱 클라이언트
A native Kubernetes desktop client built in Go — live resources, full RBAC, Helm, Argo CD, Flux CD, Gateway API and cert-manager, straight from your kubeconfig.
개발 도구TypeScript · GoGitHub @SametKUM온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
A native Kubernetes desktop client — nothing in your cluster. Helm, Argo CD, Flux CD, Gateway API & cert-manager built in. MIT-licensed.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A native Kubernetes desktop client that installs nothing in your cluster.
macOS · brew tap sametkum/klustr && brew install klustr
Arch / CachyOS / Manjaro · paru -S klustr-bin
Debian / Ubuntu · sudo apt install ./klustr_*_amd64.deb ( download first )README 전문 보기 ↗Klustr is a cross-platform Kubernetes desktop client built with Wails (Go + native webview) and React. It uses your existing ~/.kube/config and speaks the standard Kubernetes API directly — nothing is deployed in the cluster. Drop the binary in, point at any context, and you're looking at a live view of everything you have permission to see — built-in resources, full RBAC with a subject → effective-permissions review, Custom Resources (CRDs), Helm releases, Argo CD Applications, Flux CD reconcilers, Tekton pipelines, Gateway API routes, cert-manager certificates, and Kyverno policy reports included. No extra logins, no argocd, flux, tkn or helm CLI required — only your kubeconfig.
client-go informers, never polled.cluster-admin flagged. Live, no --as impersonation, no extra API traffic.argocd-server, no argocd CLI, no Argo login.flux CLI required.tkn.RouteParentStatus so a misrouted parent or RefNotPermitted backend is one click away. Vendor-neutral.cmctl CLI.wgpolicyk8s.io policy reports. Each policy lists the resources it fails, and a resource's detail shows its own report.nsenter pod that's removed when the session ends — no SSH, nothing pre-installed.pods/resize subresource — no pod recreation; shows the live resize status (Deferred / Infeasible).⌘K), pod search (⌘P), namespace search (⌘N), keyboard cheatsheet (?).Every shot is captured from two kind clusters seeded with realistic workloads and deliberate failures. The shots cycle through Klustr's themes, so the pack doubles as a tour of them — see docs/screenshots/ for the full set.
| Aggregated pods — two clusters and three namespaces in one table; failing pods sit next to the healthy rows | Connections — contexts grouped by tag, two checked for an aggregated session, a saved group for one-click reconnect |
| Pod diagnosis — a card that says why the pod is unhealthy and what to check next | Multi-pod logs — one stream across a Deployment, a color per pod, live regex filter |
Debug container — netshoot injected into a shell-less pod, ps / curl / dig against the target | Helm upgrade — values on the left, the dry-run rendered manifest on the right, apply only after reading it |
| Argo CD — Sync / Health pills, per-row Refresh, Suspend and Sync through the Kubernetes API | Flux CD — a failed Kustomization with its status message, source and path readable without YAML |
Gateway API — rule matrix plus RouteParentStatus: Accepted, but ResolvedRefs=False with RefNotPermitted | cert-manager — Certificate → CertificateRequest → Order → Challenge, with the ACME self-check error |
| Access Review — a ServiceAccount's effective permissions as a resource × verb matrix per scope, wildcard rules flagged | YAML edit — Monaco editor with the server-side dry-run diff before apply |
| Rollout history — revision diff with change causes and one-click rollback | Node drain — Eviction API progress, the PDB-blocked pod called out and retried |
Terminal — a local shell pinned to a context under the table, KUBECONFIG already set | Cluster overview — CPU / memory / pod capacity per cluster and a live warnings feed |
The release build is signed with a Developer ID Application certificate and notarized by Apple, so Gatekeeper opens it directly — even offline.
brew tap sametkum/klustr
brew install klustr
After the initial brew tap, future updates are just brew upgrade klustr (or brew upgrade for everything), and brew search klustr / brew info klustr start finding it.
Download the latest darwin-arm64 tarball from the Releases page, then:
tar -xzf klustr-*-darwin-arm64.tar.gz
mv klustr.app /Applications/
open /Applications/klustr.app
The Linux binary links against webkit2gtk-4.1 + gtk-3. Ubuntu 24.04+, Fedora 39+, Arch and most other modern distros ship those runtime libraries by default; on Ubuntu 22.04 install libwebkit2gtk-4.1-0 libgtk-3-0 first.
paru -S klustr-bin
# or
yay -S klustr-bin
The klustr-bin PKGBUILD uses the prebuilt release tarball, so install completes in seconds. paru -Syu keeps it up to date.
The .deb pulls in the runtime dependencies automatically and registers a klustr desktop entry.
VERSION="$(curl -fsSL https://api.github.com/repos/SametKUM/klustr/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+')"
DEB="klustr_${VERSION#v}_amd64.deb"
curl -LO "https://github.com/SametKUM/klustr/releases/download/${VERSION}/${DEB}"
sudo apt install "./${DEB}"
Download the latest linux-amd64 tarball from the Releases page, then:
tar -xzf klustr-*-linux-amd64.tar.gz
install -Dm755 klustr ~/.local/bin/klustr
klustr
Download the latest windows-amd64 zip from the Releases page, extract it and run klustr.exe. Klustr is tested on Windows 11, which ships the WebView2 runtime it renders with.
The Windows build is not code-signed yet. On first launch SmartScreen shows "Windows protected your PC": choose More info, then Run anyway. With Smart App Control on, Windows blocks unsigned apps outright.
~/.kube/config at launch.⌘K to open the command palette, or ⌘P to search pods by name. The header's Disconnect button drops you back to the picker at any time.Task-focused guides live at klustr.dev/docs (source: SametKUM/klustr.dev):
mise install # installs Go, Node, Wails CLI pinned in .mise.toml
wails dev # hot-reload dev session
# or a production build for your host platform
wails build -trimpath -clean
| Layer | Choice |
|---|---|
| Desktop | Wails v2 (Go + native webview) |
| Backend | Go 1.27 + client-go (typed clientset + dynamic) + sigs.k8s.io/gateway-api |
| Frontend | React 19 · TypeScript · Vite |
| UI | Tailwind CSS · shadcn/ui |
| State | Zustand (real-time) · TanStack Query (mutations only) |
| Tables | TanStack Table |
| Live data | client-go informers → Wails events → Zustand → React |
Full design notes, conventions and the "add a new resource kind" recipe live in AGENTS.md.
system:serviceaccounts:*, system:authenticated), wildcard / cluster-admin detection, live across every active contextnsenter pod), cordon/uncordon, PDB-aware drainpods/resize subresource, no recreation)Bug reports and focused pull requests are welcome.
AGENTS.md first — it's the architecture + conventions contract.feat:, fix:, refactor: …) and prefer small, logically scoped commits.go test klustr/internal/... && go vet ./...
cd frontend && npm test && npm run lint && npm run typecheck
Full guide: CONTRIBUTING.md. Bug reports go through the bug_report.yml issue template so the version / OS / cluster details we need actually land in the report. Found a security issue? Please report it privately — see the security policy.
Klustr is licensed under the Apache License 2.0. The screenshots, demo video and other documentation under docs/ are licensed under CC BY 4.0.
Built on the shoulders of: Wails, client-go, React, shadcn/ui, Tailwind CSS, TanStack Table / Query, xterm.js, Monaco Editor, Zustand, Vite, mise.
| Istio — a VirtualService's weighted canary and header match as a rule table | Karpenter — NodeClaims with node, pool, instance, zone and the Launched / Registered / Initialized steps |
| KEDA — a KEDA-managed HPA with its external metrics mapped back to the cron and CPU triggers | Tekton — a failed PipelineRun's task table: the failing test, the tasks it skipped, and the finally task that still ran |
| Kyverno — a Deployment's own policy report on its Policy tab, the failing count on the tab label |