kubetail
CLAUDE.md1.8k starsChanged 7 months agoApache-2.0View on GitHub
Monorepo with a TypeScript+React frontend, Go backends, and Rust in-cluster components: GraphQL for user-facing APIs, gRPC + Protocol Buffers for inter-service communication. The Cluster API is exposed to the Dashboard as a Kubernetes APIService (aggregation layer): the Dashboard's /cluster-api-proxy/* route forwards to the kube-apiserver, which routes to the cluster-api Service via the registered APIService. This applies in both desktop and in-cluster modes — the Dashboard never dials the cluster-api directly. Authentication is handled by kube-apiserver (user's kubeconfig credentials in desktop…
- Installs packages
We split this CLAUDE.md into the rules it gives an agent
8 rules. About 0 are common, 4 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 73
Always use pnpm (not npx) to run frontend tests.
- Very specific: line 75
Never use time.Sleep (Go) or setTimeout/manual delays (TypeScript) in tests to wait for asynchronous state.
- Very specific: line 87
After every set of changes to JavaScript/TypeScript files, run pnpm lint --fix inside the affected package directory:
- Very specific: line 95
After every set of changes to Go files, run go fmt ./...
- Distinctive: line 106
After every set of changes to Rust files:
- Distinctive: line 122
Avoid introducing new external dependencies unless it will have a material impact on code readability or performance
- Distinctive: line 123
If a new dependency is required, state the reason clearly
- Distinctive: line 130
Keep commits minimal and focused.
≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Kubetail
Architecture
Monorepo with a TypeScript+React frontend, Go backends, and Rust in-cluster components:
- CLI (
modules/cli/) — Go CLI that embeds the dashboard UI - Dashboard Backend (
modules/dashboard/) — Go/Gin HTTP server with GraphQL API (gqlgen) - Dashboard Frontend (
dashboard-ui/) — React/Vite SPA with Apollo Client, Tailwind CSS, Jotai - Cluster API (
modules/cluster-api/) — Go GraphQL API server for cluster operations - Cluster Agent (
crates/cluster_agent/) — Rust agent running in Kubernetes clusters - Log Search Engine (
crates/rgkl/) — High-performance Rust binary for log searching/streaming - Shared Libraries (
modules/shared/) — Common Go packages shared across services
GraphQL for user-facing APIs, gRPC + Protocol Buffers for inter-service communication.
The Cluster API is exposed to the Dashboard as a Kubernetes APIService (aggregation layer): the Dashboard's /cluster-api-proxy/* route forwards to the kube-apiserver, which routes to the cluster-api Service via the registered APIService. This applies in both desktop and in-cluster modes — the Dashboard never dials the cluster-api directly. Authentication is handled by kube-apiserver (user's kubeconfig credentials in desktop mode; the Dashboard's ServiceAccount, or a session bearer token if set, in-cluster). The TLS leg is kube-apiserver ↔ cluster-api, configured via the APIService and the kubetail-cluster-api-tls / kubetail-ca secrets.
Project Structure
dashboard-ui/ — React/Vite frontend (pnpm)
modules/cli/ — CLI Go module
modules/dashboard/ — Dashboard Go backend
modules/cluster-api/ — Cluster API Go backend
modules/shared/ — Shared Go libraries
modules/go.work — Go workspace config
crates/cluster_agent/ — Rust cluster agent
crates/rgkl/ — Rust log search engine
proto/ — Protocol Buffer definitions
config/default/ — Default config files (cli, dashboard, cluster-api, cluster-agent)
hack/manifests/ — Test manifests
hack/test-configs/ — Test configurations
hack/tilt - Tilt configurations
Makefile — Build orchestration
Tiltfile — Local Kubernetes dev setupFrontend builds are embedded into Go binaries via embed.go.
Local Development
# Tilt (all infra + services)
tilt up
# Frontend dev server
cd dashboard-ui && pnpm install && pnpm dev
# Dashboard backend
cd modules/dashboard && go run cmd/main.go -c hack/config.yaml
# Full CLI build (with embedded dashboard UI)
makeTesting
# Frontend tests (single pass):
cd dashboard-ui && pnpm test run
# Go tests (all modules):
cd modules && go test -race github.com/kubetail-org/kubetail/modules/...
# Go tests (single module):
cd modules/<module-name> && go test ./...
# Rust tests:
cd crates/rgkl && cargo testAlways use pnpm (not npx) to run frontend tests.
Never use time.Sleep (Go) or setTimeout/manual delays (TypeScript) in tests to wait for asynchronous state. Use channels, synchronization primitives, or condition-based polling instead.
Import Order (JavaScript/TypeScript)
Organize imports into three groups separated by blank lines, sorted alphabetically by path within each group:
- Third-party — packages from
node_modules(e.g.react,@apollo/client,jotai) - First-party packages — self-authored packages from
node_modules(e.g.@kubetail/*) - Local — relative imports (e.g.
@/*,./*)
JavaScript/TypeScript Linting
After every set of changes to JavaScript/TypeScript files, run pnpm lint --fix inside the affected package directory:
cd dashboard-ui && pnpm lint --fixGo Formatting
After every set of changes to Go files, run go fmt ./... inside each affected module directory:
cd modules/dashboard && go fmt ./...
cd modules/cluster-api && go fmt ./...
cd modules/shared && go fmt ./...
cd modules/cli && go fmt ./...Rust Formatting
After every set of changes to Rust files:
cd crates/rgkl && cargo fmt --all
cd crates/rgkl && cargo clippy --all -- -D warningsCode Generation
- GraphQL schemas:
gqlgen.ymlandschema.graphqlsin relevant modules - Protocol Buffers: Defined in
proto/ - Frontend GraphQL types:
cd dashboard-ui && pnpm graphql-codegen - Backend types:
cd modules && go generate github.com/kubetail-org/kubetail/modules/...
Dependencies
- Avoid introducing new external dependencies unless it will have a material impact on code readability or performance
- If a new dependency is required, state the reason clearly
- For Go: Use standard library when possible
- For Rust: Prefer well-maintained, audited crates
- For TypeScript: Consider bundle size impact
Commits
Keep commits minimal and focused. Multiple commits to accomplish a task are fine if they represent logical, well-separated steps that make the change easier to review.
Use conventional commit format: <type>(<scope>): <description>. Types: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test. Description in imperative mood, lowercase, no period, under 72 chars. Add body only if the "why" isn't obvious; wrap body lines at 72 characters. Always sign-off on commits (-s). Only add a "Co-authored-by" trailer if a human was not in the loop or if the user requested it.
Pull Requests
PR titles should be capitalized, imperative mood, no conventional commit prefixes (e.g. "Add login page" not "feat: add login page"). Prefix PR titles with the correct emoji based on the change type: 🎣 Bug fix, 🐋 New feature, 📜 Documentation, ✨ General improvement. Always use the repo's .github/pull_request_template.md — fill in each section from the commits/diff, replace HTML comment placeholders with actual content. For checklist items that can be resolved automatically (like emoji prefixes), mark them as complete. Use prose in summaries. Reference related issues (e.g. "Closes #123", "Ref #124"). Keep changes minimal and focused for quick review.
Trending
Less talk lately.about the whole repository
Who's talking about kubetail-org/kubetail
- A Hacker News story“Show HN: Kubetail – Real-time log search for Kubernetes”Hacker News · May 1, 2025 · 126 points
- A Hacker News story“Show HN: Kubetail – Web-based real-time log viewer for Kubernetes”Hacker News · Feb 13, 2024 · 70 points
- @damyr.fr“Sur Kube tu as github.com/kubetail-org..., mais le graph d'event manque faut avouer”Bluesky · May 26, 2025 · 4 likes
- @matsuu.bsky.social“k8sのログをブラウザ経由で参照できるダッシュボード実装。pod単位のほか、deploymentやdaemonsetの単位で複数Podのログをまとめてのリアルタイム表示もできる。正規表現による絞り込みも可。”Bluesky · May 4, 2025 · 4 likes
- @chrisshort.net“kubetail-org/kubetail: Real-time logging dashboard for Kubernetes. View logs in a terminal or a browser. …”Bluesky · May 22, 2026 · 1 likes
The biggest 5 of 27 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 27
Talked about on GitHub, Bluesky and Hacker News (27 times).
On GitHub · 20
- Oct 24, 2025🐋 Release kubetail-0.15.4 — kubetail-org/helm-charts1 reaction
- Oct 22, 2026chore(deps): update kubetail to v0.18.1 — uniget-org/tools0 reactions · 2 comments
- Jul 13, 2026💎 Knowledge Update & Optimization: 13 Jul 2026 — nubenetes/awesome-kubernetes0 reactions · 40 comments
- Jul 12, 2026💎 Knowledge Update & Optimization: 12 Jul 2026 — nubenetes/awesome-kubernetes0 reactions · 40 comments
- Jul 12, 2026💎 Knowledge Update & Optimization: 12 Jul 2026 — nubenetes/awesome-kubernetes0 reactions · 40 comments
15 more on GitHub
- Jun 25, 2026x/vulndb: potential Go vuln in github.com/kubetail-org/kubetail/modules/cli: GHSA-v8j7-hp7c-738f — golang/vulndb0 reactions · 1 comment
- Feb 5, 2026feat(kubetail): add package — brioche-dev/brioche-packages0 reactions
- Dec 8, 2025add kubetail — ai-solution-eng/frameworks0 reactions
- Oct 4, 2025feat: add kubetail plugin — asdf-vm/asdf-plugins0 reactions
- Sep 28, 2025Add kubetail plugin — kubernetes-sigs/krew-index0 reactions · 8 comments
- Sep 26, 2025new naming conflict with a project — johanhaleby/kubetail0 reactions · 2 comments
- Sep 19, 2025dev-util/kubetail-bin: add 0.7.5, 0.8.2 — gentoo/gentoo0 reactions · 6 comments
- Sep 18, 2025[Request]: kubetail — ScoopInstaller/Main0 reactions · 1 comment
- Jul 11, 2025🎣 Patch release — kubetail-org/helm-charts0 reactions
- Jul 9, 2025Add Real-Time Log Streaming with Kubetail — kubestellar/ui0 reactions · 5 comments
- Jun 21, 2025TypeScript definitions missing in v8 — nmn/react-timeago0 reactions · 1 comment
- May 21, 2025kubetail-org/kubetail: 一个通用的 Kubernetes 日志仪表板,可以暴漏在浏览器当中查看。 — awesome-ops/awesome-ops.github.io0 reactions
- May 20, 2025Integrate Kubetail graphical Logs for pods and jobs into Kubestellar — kubestellar/ui0 reactions · 9 comments
- May 2, 2025Vendoring a package using "local" imports from another directory? — openSUSE/obs-service-go_modules0 reactions
- Feb 2, 2025new addon: kubetail — kubernetes/minikube0 reactions · 26 comments
On Bluesky · 5
- May 26, 2025Sur Kube tu as github.com/kubetail-org..., mais le graph d'event manque faut avouer — @damyr.fr4 likes and reposts · 1 reply
- May 4, 2025k8sのログをブラウザ経由で参照できるダッシュボード実装。pod単位のほか、deploymentやdaemonsetの単位で複数Podのログをまとめてのリアルタイム表示もできる。正規表現による絞り込みも可。 — @matsuu.bsky.social4 likes and reposts
- May 22, 2026kubetail-org/kubetail: Real-time logging dashboard for Kubernetes. View logs in a terminal or a browser. Run anywhere - desktop, cluster,… — @chrisshort.net1 likes and repost
- May 1, 2025Show HN: Kubetail – Real-time log search for Kubernetes Hi Everyone! Kubetail is a general-purp... https://github.com/kubetail-org/kubetail… — @kubernetes.activitypub.awakari.com.ap.brid.gy1 likes and repost
- Feb 13, 2024Show HN: Kubetail – Web-based real-time log viewer for Kubernetes Discussion — @hn100.bsky.social1 likes and repost
On Hacker News · 2
- May 1, 2025Show HN: Kubetail – Real-time log search for Kubernetes126 points · 35 comments
- Feb 13, 2024Show HN: Kubetail – Web-based real-time log viewer for Kubernetes70 points · 33 comments
In this repository3 other files it gives its agents.
- AGENTS.mdAGENTS.md
- release-cliSkill
- release-clusterSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

