{"id":13468995,"url":"https://github.com/kdash-rs/kdash","last_synced_at":"2026-04-24T23:04:56.466Z","repository":{"id":37563124,"uuid":"357436262","full_name":"kdash-rs/kdash","owner":"kdash-rs","description":"A simple and fast dashboard for Kubernetes","archived":false,"fork":false,"pushed_at":"2026-04-24T21:33:28.000Z","size":10682,"stargazers_count":2460,"open_issues_count":4,"forks_count":92,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-04-24T21:37:39.094Z","etag":null,"topics":["dashboard","hacktoberfest","k8s","kubernetes","monitoring","rust","tui"],"latest_commit_sha":null,"homepage":"https://kdash.cli.rs","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kdash-rs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["deepu105"]}},"created_at":"2021-04-13T05:38:42.000Z","updated_at":"2026-04-24T21:33:19.000Z","dependencies_parsed_at":"2023-02-12T05:55:12.394Z","dependency_job_id":"addde1b7-aac7-4593-8739-2d0152dbabc6","html_url":"https://github.com/kdash-rs/kdash","commit_stats":{"total_commits":627,"total_committers":15,"mean_commits":41.8,"dds":0.2886762360446571,"last_synced_commit":"0452b73583f67951ebc78e0e31ccbbe55b339f8f"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/kdash-rs/kdash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdash-rs%2Fkdash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdash-rs%2Fkdash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdash-rs%2Fkdash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdash-rs%2Fkdash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdash-rs","download_url":"https://codeload.github.com/kdash-rs/kdash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdash-rs%2Fkdash/sbom","scorecard":{"id":553041,"data":{"date":"2025-08-11","repo":{"name":"github.com/kdash-rs/kdash","commit":"a09eee25dcaeeba56eb660ca39d6ae34e981453b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Code-Review","score":1,"reason":"Found 2/17 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/cd.yml:1","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/cicd-test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/cd.yml:307"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.6.2 not signed: https://api.github.com/repos/kdash-rs/kdash/releases/205211654","Warn: release artifact v0.6.1 not signed: https://api.github.com/repos/kdash-rs/kdash/releases/172398205","Warn: release artifact v0.6.0 not signed: https://api.github.com/repos/kdash-rs/kdash/releases/138572493","Warn: release artifact v0.5.0 not signed: https://api.github.com/repos/kdash-rs/kdash/releases/138024526","Warn: release artifact v0.4.9 not signed: https://api.github.com/repos/kdash-rs/kdash/releases/137973713","Warn: release artifact v0.6.2 does not have provenance: https://api.github.com/repos/kdash-rs/kdash/releases/205211654","Warn: release artifact v0.6.1 does not have provenance: https://api.github.com/repos/kdash-rs/kdash/releases/172398205","Warn: release artifact v0.6.0 does not have provenance: https://api.github.com/repos/kdash-rs/kdash/releases/138572493","Warn: release artifact v0.5.0 does not have provenance: https://api.github.com/repos/kdash-rs/kdash/releases/138024526","Warn: release artifact v0.4.9 does not have provenance: https://api.github.com/repos/kdash-rs/kdash/releases/137973713"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd.yml:91: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd.yml:155: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:168: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:179: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:184: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:188: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:192: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:197: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:243: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:248: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:254: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:313: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd.yml:328: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd.yml:333: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:343: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:344: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd.yml:349: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd.yml:353: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cd.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:116: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:120: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:126: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cicd-test.yml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/kdash-rs/kdash/cicd-test.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:5","Warn: containerImage not pinned by hash: Dockerfile:29: pin your Docker image by updating debian:stable-slim to debian:stable-slim@sha256:8810492a2dd16b7f59239c1e0cc1e56c1a1a5957d11f639776bd6798e795608b","Info:   0 out of  32 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  16 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 16 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"12 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-2rxc-gjrp-vjhx","Warn: Project is vulnerable to: RUSTSEC-2024-0404","Warn: Project is vulnerable to: RUSTSEC-2024-0021 / GHSA-4v52-7q2x-v4xj","Warn: Project is vulnerable to: RUSTSEC-2024-0421 / GHSA-h97m-ww89-6jmq","Warn: Project is vulnerable to: RUSTSEC-2024-0436","Warn: Project is vulnerable to: GHSA-4p46-pwfr-66x6","Warn: Project is vulnerable to: RUSTSEC-2025-0009","Warn: Project is vulnerable to: GHSA-c86p-w88r-qvqr","Warn: Project is vulnerable to: RUSTSEC-2023-0081","Warn: Project is vulnerable to: GHSA-rr8g-9fpq-6wmg","Warn: Project is vulnerable to: RUSTSEC-2025-0023","Warn: Project is vulnerable to: RUSTSEC-2024-0320"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T11:28:14.723Z","repository_id":37563124,"created_at":"2025-08-20T11:28:14.724Z","updated_at":"2025-08-20T11:28:14.724Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32242315,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","hacktoberfest","k8s","kubernetes","monitoring","rust","tui"],"created_at":"2024-07-31T15:01:23.821Z","updated_at":"2026-04-24T23:04:56.453Z","avatar_url":"https://github.com/kdash-rs.png","language":"Rust","funding_links":["https://github.com/sponsors/deepu105"],"categories":["Rust","HarmonyOS","\u003ca name=\"devops\"\u003e\u003c/a\u003eDevOps","tui","Dashboards \u0026 Portals","rust","Table of Contents","💻 Apps","\u003ca name=\"Rust\"\u003e\u003c/a\u003eRust","Kubernetes"],"sub_categories":["Windows Manager","Container Management","👨‍💻 System Administration"],"readme":"# KDash - A fast and simple dashboard for Kubernetes\n\n![ci](https://github.com/kdash-rs/kdash/actions/workflows/ci.yml/badge.svg)\n![cd](https://github.com/kdash-rs/kdash/actions/workflows/cd.yml/badge.svg)\n![License](https://img.shields.io/badge/license-MIT-blueviolet.svg)\n![LOC](https://tokei.rs/b1/github/kdash-rs/kdash?category=code)\n[![crates.io link](https://img.shields.io/crates/v/kdash.svg)](https://crates.io/crates/kdash)\n![Docker Release](https://img.shields.io/docker/v/deepu105/kdash?label=Docker%20version)\n![Release](https://img.shields.io/github/v/release/kdash-rs/kdash?color=%23c694ff)\n[![Coverage](https://coveralls.io/repos/github/kdash-rs/kdash/badge.svg?branch=main)](https://coveralls.io/github/kdash-rs/kdash?branch=main)\n[![GitHub Downloads](https://img.shields.io/github/downloads/kdash-rs/kdash/total.svg?label=GitHub%20downloads)](https://github.com/kdash-rs/kdash/releases)\n![Docker pulls](https://img.shields.io/docker/pulls/deepu105/kdash?label=Docker%20downloads)\n![Crate.io downloads](https://img.shields.io/crates/d/kdash?label=Crate%20downloads)\n\n[![Follow Deepu K Sasidharan (deepu105)](https://img.shields.io/twitter/follow/deepu105?label=Follow%20Deepu%20K%20Sasidharan%20%28deepu105%29\u0026style=social)](https://twitter.com/intent/follow?screen_name=deepu105)\n\n![logo](artwork/logo.png)\n\nA simple terminal dashboard for Kubernetes built with Rust [![Follow @kdashrs](https://img.shields.io/twitter/follow/kdashrs?label=Follow%20kdashrs\u0026style=social)](https://twitter.com/intent/follow?screen_name=kdashrs)\n\n![UI](screenshots/ui.gif)\n\n## New since v0.6.2\n\n- **Troubleshoot tab** surfaces severity-ranked findings for Pods, PVCs, and ReplicaSets, then lets you jump straight into containers, logs, describe, and YAML.\n- **Events tab** shows Kubernetes events with namespace, involved kind, reason, count, message, and age, with the same describe/YAML workflows as other resources.\n- **Deeper drill-down navigation** lets you move from workloads to owned Pods, from Pods to Containers, and from Nodes to the Pods scheduled on them.\n- **Aggregate workload logs** combine logs from all pods owned by a workload into a single stream.\n- **Inline `/` filtering** now works across resource tables and views, including Contexts, Help, Utilization, Troubleshoot, More, and Dynamic resource menus.\n- **Smarter resource tab and menu counts** hide zero-count badges in the resource tabs, show cached counts for Dynamic menu entries, and use `?` when a Dynamic kind has not been fetched into cache yet.\n- **Configurable keybindings and themes** let you override shortcuts and colors, and `log_tail_lines` lets you set the initial history fetched before live log streaming starts.\n- **Better diagnostics and reliability** include recent-error dump to file, kubeconfig live reload, friendlier errors, and smoother log/render performance.\n- **Configurable CLI Info** lets you disable built-in probes, add custom commands with optional regex-based version extraction\n- **More columns** are shown if viewport is wide enough for most resources including a new 'w' keybind to show all.\n\n## Sponsors\n\nThanks to the sponsors of [@deepu105](https://github.com/sponsors/deepu105) who makes maintaining projects like KDash sustainable. Consider [sponsoring](https://github.com/sponsors/deepu105) if you like the work.\n\n\u003c!-- ### Gold\n\n### Silver\n\n### Bronze\n\n- [Robusta - Kubernetes monitoring](https://home.robusta.dev/)\n\nGold and Silver tiers are open for [Sponsors](https://github.com/sponsors/deepu105)  --\u003e\n\n## Installation\n\n### Homebrew (Mac \u0026 Linux)\n\n```bash\nbrew tap kdash-rs/kdash\nbrew install kdash\n\n# If you need to be more specific, use:\nbrew install kdash-rs/kdash/kdash\n```\n\nTo upgrade\n\n```bash\nbrew upgrade kdash\n```\n\n### Scoop (Windows - Recommended way)\n\n```bash\nscoop bucket add kdash-bucket https://github.com/kdash-rs/scoop-kdash\n\nscoop install kdash\n```\n\n### Chocolatey (Windows)\n\nChocolatey package is located [here](https://chocolatey.org/packages/kdash).\nSince validation of the package takes forever, it may take a long while to become available after a release. I would recommend using Scoop instead for Windows.\n\n```bash\nchoco install kdash\n\n# Version number may be required for newer releases, if available:\nchoco install kdash --version=0.4.3\n```\n\nTo upgrade\n\n```bash\nchoco upgrade kdash --version=0.4.3\n```\n\n### Cargo\n\nIf you have Cargo installed then you install KDash from crates.io\n\n```bash\ncargo install kdash\n\n# if you face issues with k8s-openapi crate try the below\ncargo install --locked kdash\n```\n\nYou can also clone the repo and run `cargo run` or `make` to build and run the app\n\n### Nix (Maintained by third party)\n\nTry out kdash via `nix run nixpkgs#kdash` or add `kdash` to your\n`configuration.nix` for permanent installation.\n\n### Install script\n\nRun the below command to install the latest binary. Run with sudo if you don't have write access to `/usr/local/bin`. Else the script will install to the current directory. Alternatively, set `BIN_DIR` environment variable e.g. `BIN_DIR=~/.local/bin` to override the default install location.\n\n```sh\ncurl https://raw.githubusercontent.com/kdash-rs/kdash/main/deployment/getLatest.sh | bash\n```\n\n### Manual\n\nBinaries for macOS (x86_64, arm64), Linux GNU/MUSL(x86_64, armv6, armv7, aarch64) and Windows (x86_64, aarch64) are available on the [releases](https://github.com/kdash-rs/kdash/releases) page\n\n1. Download the latest [binary](https://github.com/kdash-rs/kdash/releases) for your OS.\n1. For Linux/macOS:\n   1. `cd` to the file you just downloaded and run `tar -C /usr/local/bin -xzf downloaded-file-name`. Use sudo if required.\n   1. Run with `kdash`\n1. For Windows:\n   1. Use 7-Zip or TarTool to unpack the tar file.\n   1. Run the executable file `kdash.exe`\n\n### Docker\n\nRun KDash as a Docker container by mounting your `KUBECONFIG`. For example the below command for the default path\n\n```bash\ndocker run --rm -it -v ~/.kube/config:/root/.kube/config deepu105/kdash\n# If you want localhost access from the container\ndocker run --network host --rm -it -v ~/.kube/config:/root/.kube/config deepu105/kdash\n```\n\nYou can also clone this repo and run `make docker` to build a docker image locally and run it using the above command\n\n## Troubleshooting\n\n**Note**: This may not work properly if you run Kubernetes locally using Minikube or Kind\n\n\u003e Note: On Debian/Ubuntu you might need to install `libxcb-xfixes0-dev` and `libxcb-shape0-dev`. On Fedora `libxcb` and `libxcb-devel` would be needed.\n\n\u003e Note: On Linux you might need to have package `xorg-dev` (Debian/Ubuntu) or `xorg-x11-server-devel` (Fedora) or equivalent installed for the copy to clipboard features to work\n\n\u003e Note: If you are getting compilation error from openSSL. Make sure perl and perl-core are installed for your OS.\n\n## USAGE:\n\n```bash\nkdash\n```\n\nPress `?` while running the app to see keybindings\n\n## Configuration\n\nKDash supports config-based keybinding and theme overrides, plus a configurable default for historical log lines fetched before live streaming starts.\n\nBy default it reads config from:\n\n- `~/.config/kdash/config.yaml`\n\nYou can also point it at a specific file with:\n\n```bash\nKDASH_CONFIG=/path/to/config.yaml kdash\n```\n\nTheme overrides support separate light and dark values:\n\n```yaml\ntheme:\n  dark:\n    primary: \"#89B4FA\"\n    background: \"#11111B\"\n  light:\n    primary: \"#D20F39\"\n    background: \"#FAF7F0\"\n```\n\nKeybindings are overridden by binding name:\n\n```yaml\nkeybindings:\n  filter: f\n  help: h\n  describe_resource: i\n  resource_yaml: v\n```\n\nLog streaming history can also be tuned:\n\n```yaml\nlog_tail_lines: 250\n```\n\nCLI Info entries can be configured too. Built-in entries remain enabled by default, missing binaries are hidden by default, you can disable any built-in by label, and you can add custom probes with a label plus command:\n\n```yaml\ncli_info:\n  hide_missing_binaries: false\n  disable_defaults:\n    - docker\n  custom:\n    - label: istioctl\n      command: [\"istioctl\", \"version\"]\n      regex: '\\b(v?[0-9]+\\.[0-9]+\\.[0-9]+)\\b'\n```\n\nSet `hide_missing_binaries: false` if you want missing CLIs to stay visible as `Not found`.\n\nBuilt-in labels are: `kubectl client`, `kubectl server`, `docker`, `docker-compose`, `podman`, `containerd`, `helm`, and `kind`. For custom commands, `regex` is optional: if provided, the first capture group is shown; otherwise the first non-empty stdout line is shown.\n\nSee the sample config in [assets/kdash.sample-config.yaml](assets/kdash.sample-config.yaml) for a complete example with both custom keybindings and custom light/dark theme overrides.\n\n## FLAGS:\n\n- `-h, --help`: Prints help information\n- `-V, --version`: Prints version information\n- `-t, --tick-rate \u003ctick-rate\u003e`: Set the tick rate (milliseconds): the lower the number the higher the FPS.\n- `-p, --poll-rate \u003cpoll-rate\u003e`: Set the network call polling rate (milliseconds, should be multiples of tick-rate): the lower the number the higher the network calls.\n- `--log-tail-lines \u003clog-tail-lines\u003e`: Set how many historical log lines to fetch before live streaming starts.\n- `-d, --debug[=\u003cdebug\u003e]`: Enables debug mode and writes logs to `kdash-debug-\u003ctimestamp\u003e.log` file in the current directory. Default behavior is to write INFO logs. Pass a log level to overwrite the default [possible values: info, debug, trace, warn, error]\n\n## Limitations/Known issues\n\n- **[Linux/Docker]** Copy to clipboard feature is OS/arch dependent and might crash in some Linux distros and is not supported on `aarch64` and `arm` machines.\n- **[macOS]** KDash looks better on iTerm2 since macOS's default Terminal app makes the colors render weird.\n- **[Windows]** KDash looks better on CMD since Powershell's default theme makes the colors look weird.\n- **[Windows]** If using k3d for local clusters, set the server URL to 127.0.0.1 as 0.0.0.0 doesn't work with kube-rs. You can use `k3d cluster create --api-port 127.0.0.1:6550` or change the `cluster.server` value in your `.kube/config` for the k3d cluster to `127.0.0.1:\u003cport\u003e`.\n\n## Features\n\n- CLI info\n- Node metrics\n- Resource watch (configurable polling interval with `-p` flag)\n- Custom resource definitions\n- Troubleshoot tab for Pods, PVCs, and ReplicaSets\n- Describe resources \u0026 copy the output\n- Get YAML for resources \u0026 copy the output\n- Stream container logs\n- Aggregate workload logs\n- Drill down from workloads/nodes to Pods and from Pods to Containers\n- Open a shell in the selected pod container from the Containers view. KDash temporarily suspends the UI while the interactive shell is active and restores it when you exit.\n- Context\n  - Context info\n  - Context watch\n  - Change namespace\n  - Context switch\n- Resources utilizations for nodes, pods and namespaces based on metrics server. Requires [metrics-server](https://kubernetes.io/docs/tasks/debug-application-cluster/resource-metrics-pipeline/#metrics-server) to be deployed on the cluster.\n- Dark/Light themes (Catppuccin Macchiato/Latte by default)\n- Sensible keyboard shortcuts\n- Configurable keybindings, theme overrides, and log tail defaults\n- Inline filtering across resource views and menus\n- Dynamic menu entries show cached item counts when available and `?` when the count is not cached yet\n\n## Screenshots\n\n### Overview screen\n\n![UI](screenshots/overview.png)\n\n### Container logs screen (light theme)\n\n![UI](screenshots/logs.png)\n\n### Pod describe screen (light theme)\n\n![UI](screenshots/describe.png)\n\n### Contexts screen\n\n![UI](screenshots/contexts.png)\n\n### Utilization screen\n\n![UI](screenshots/utilization.png)\n\n## Libraries used\n\n- [ratatui](https://github.com/ratatui-org/ratatui)\n- [crossterm](https://github.com/crossterm-rs/crossterm)\n- [clap](https://github.com/clap-rs/clap)\n- [tokio](https://github.com/tokio-rs/tokio)\n- [duct.rs](https://github.com/oconnor663/duct.rs)\n- [kube-rs](https://github.com/clux/kube-rs)\n- [serde](https://github.com/serde-rs/serde)\n- [kubectl-view-allocations](https://github.com/davidB/kubectl-view-allocations)\n- [copypasta](https://github.com/alacritty/copypasta)\n\n## How does this compare to K9S?\n\n[K9S](https://github.com/derailed/k9s) is a beast compared to this as it offers way more features including CRUD actions.\n\nKDash only offers a view of the resources with a focus on speed and UX. Really, if something is slow or has bad UX then please raise a bug. Hence the UI/UX is designed to be more user-friendly and easier to navigate with contextual help everywhere and a tab system to switch between different resources easily.\n\nAt least for now, there are no plans to add full CRUD for resources but in the future, we might.\n\n## Licence\n\nMIT\n\n## Creator\n\n- [Deepu K Sasidharan](https://deepu.tech/)\n\n## [Contributors](https://github.com/kdash-rs/kdash/graphs/contributors)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdash-rs%2Fkdash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdash-rs%2Fkdash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdash-rs%2Fkdash/lists"}