{"id":13634540,"url":"https://github.com/hcavarsan/kftray","last_synced_at":"2025-05-15T01:04:26.534Z","repository":{"id":209232623,"uuid":"723535263","full_name":"hcavarsan/kftray","owner":"hcavarsan","description":"🦀 ⚡ kubectl port forward manager, with support for UDP and proxy connections through k8s clusters ","archived":false,"fork":false,"pushed_at":"2025-04-06T05:39:56.000Z","size":17780,"stargazers_count":977,"open_issues_count":8,"forks_count":62,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-06T05:56:51.264Z","etag":null,"topics":["developer-tools","devops","devops-tools","devtools","k8s","kftray","kubectl","kubernetes","kubernetes-cluster-workload","kubernetes-service","networking","port-forward","port-forwarding","proxy","rust","tauri","tray","typescript","vite"],"latest_commit_sha":null,"homepage":"https://kftray.app/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hcavarsan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"github":"hcavarsan"}},"created_at":"2023-11-26T01:02:19.000Z","updated_at":"2025-04-04T16:18:52.000Z","dependencies_parsed_at":"2023-12-12T22:27:47.844Z","dependency_job_id":"4a7cabb3-3827-4d0d-bc0e-d27e7a3be626","html_url":"https://github.com/hcavarsan/kftray","commit_stats":{"total_commits":452,"total_committers":8,"mean_commits":56.5,"dds":"0.11504424778761058","last_synced_commit":"12a6d871967174415358aaa866f1b7657b7d2905"},"previous_names":["hcavarsan/kftray"],"tags_count":144,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcavarsan%2Fkftray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcavarsan%2Fkftray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcavarsan%2Fkftray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcavarsan%2Fkftray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hcavarsan","download_url":"https://codeload.github.com/hcavarsan/kftray/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248789925,"owners_count":21161913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["developer-tools","devops","devops-tools","devtools","k8s","kftray","kubectl","kubernetes","kubernetes-cluster-workload","kubernetes-service","networking","port-forward","port-forwarding","proxy","rust","tauri","tray","typescript","vite"],"created_at":"2024-08-02T00:00:25.249Z","updated_at":"2025-05-15T01:04:26.526Z","avatar_url":"https://github.com/hcavarsan.png","language":"Rust","funding_links":["https://github.com/sponsors/hcavarsan"],"categories":["Developer Workspaces \u0026 Productivity","Applications","Uncategorized","Rust","\u003ca name=\"networking\"\u003e\u003c/a\u003eNetworking","Table of Contents"],"sub_categories":["Uncategorized","Developer tools"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/hcavarsan/kftray-blog/main/img/logo.png\" width=\"128px\" alt=\"kftray Logo\" /\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003ca href=\"https://kftray.app\"\u003e\u003cstrong\u003eVisit kftray.app »\u003c/strong\u003e\u003c/a\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003ca href=\"https://join.slack.com/t/kftray/shared_invite/zt-2q6lwn15f-Y8Mi_4NlenH9TuEDMjxPUA\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Slack-Join%20our%20Slack-blue?style=for-the-badge\u0026logo=slack\" alt=\"Join Slack\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/hcavarsan/kftray/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/hcavarsan/kftray?style=for-the-badge\" alt=\"Latest Release\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/hcavarsan/kftray\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/downloads/hcavarsan/kftray/total?style=for-the-badge\" alt=\"Total Downloads\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/hcavarsan/kftray\"\u003e\n    \u003cimg src=\"https://img.shields.io/codecov/c/github/hcavarsan/kftray?style=for-the-badge\u0026logo=codecov\" alt=\"Codecov Coverage\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/hcavarsan/kftray-blog/refs/heads/main/public/img/kftools.webp\" alt=\"Kftray github\"/\u003e\n\u003c/div\u003e\n  kftray and kftui are independent, cross-platform applications. They help you set up and manage multiple port-forwarding settings easily. Both apps are part of the same open-source project and aim to make working with Kubernetes easier. kftray has a desktop interface, while kftui has a terminal interface, so you can choose the one that suits you best.\n\n\u003c/p\u003e\n\n## Why\n\nBoth apps were made to fix common problems with Kubernetes port forwarding. The usual kubectl port-forward command can be unreliable. For example, if a pod dies, it needs manual reconnection. It also has trouble setting up many port forwards at once and doesn't support UDP services.\n\nThey automatically reconnect to running pods if one fails, also it allow setting up multiple port forwards with one click, and support both TCP and UDP protocols. kftray also has extra features like HTTP logs tracing and GitHub sync to make workflows smoother.\n\n## Overview\n\nFor more information about kftray features and components, visit our blog post at [kftray.app/blog/posts/13-kftray-manage-all-k8s-port-forward](https://kftray.app/blog/posts/13-kftray-manage-all-k8s-port-forward). The post provides an overview of functionalities including auto-reconnection, multiple port forward management, TCP/UDP support, HTTP logs tracing and GitHub sync.\n\n\n\u003cbr\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://youtu.be/H6UJCfUr8yE\"\u003e\n          \u003cimg src=\"https://img.youtube.com/vi/H6UJCfUr8yE/maxresdefault.jpg\" alt=\"Watch the video\" width=\"800px\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://youtu.be/d-Je34Hy5Lo\"\u003e\n          \u003cimg src=\"https://img.youtube.com/vi/d-Je34Hy5Lo/maxresdefault.jpg\" alt=\"Watch the video\" width=\"800px\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n## Features\n\n- **Resilient Port Forwarding Connection:** Ensures continuous service even if a pod dies by reconnecting to another running pod automatically.\n- **One-Click Multiple Port Forwards:** Allows for the setup of several port forwarding instances simultaneously with a single click.\n- **Independent of Kubectl:** Directly interfaces with the Kubernetes API, eliminating the need for `kubectl`.\n- **Multi-Protocol Support:** Enables access to internal or external servers through a Proxy Relay server deployed in a Kubernetes cluster, including TCP and UDP port forwarding.\n- **HTTP Logs Tracing:** Enable or disable HTTP logs for specific configurations to save the requests and responses in a local log file. _(Currently available only in the kftray desktop app)_ - [Blog Post](https://kftray.app/blog/posts/12-kftray-http-logs-vscode)\n- **GitHub Sync:** Keep your configurations saved on GitHub and share or synchronize them in a GitOps style. _(Currently available only in the kftray desktop app)_\n- **Auto Import:** Automatically import Kubernetes service configurations based on specific annotations. An example with an explanation can be found in this repo: https://github.com/hcavarsan/kftray-k8s-tf-example\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n| Feature                                      | kftray (Desktop App) | kftui (Terminal UI) |\n|----------------------------------------------|----------------------|---------------------|\n| Resilient Port Forwarding Connection         | ✔️                   | ✔️                  |\n| One-Click Multiple Port Forwards             | ✔️                   | ✔️                  |\n| Independent of Kubectl                       | ✔️                   | ✔️                  |\n| Multi-Protocol Support (TCP/UDP)             | ✔️                   | ✔️                  |\n| HTTP Logs Tracing                            | ✔️                   | ❌ (Coming Soon)    |\n| GitHub Sync                                  | ✔️                   | ❌ (Coming Soon)    |\n| Local JSON File Configuration                | ✔️                   | ✔️                  |\n| Auto Import with k8s Annotations             | ✔️                   | ✔️                  |\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n## kftray - Desktop App\n\n- [INSTALL.md](https://github.com/hcavarsan/kftray/tree/main/docs/kftray/INSTALL.md)\n- [USAGE.md](https://github.com/hcavarsan/kftray/tree/main/docs/kftray/USAGE.md)\n- [BUILD.md](https://github.com/hcavarsan/kftray/tree/main/docs/kftray/BUILD.md)\n\n## kftui - Terminal User Interface\n\n- [INSTALL.md](https://github.com/hcavarsan/kftray/tree/main/docs/kftui/INSTALL.md)\n- [USAGE.md](https://github.com/hcavarsan/kftray/tree/main/docs/kftui/USAGE.md)\n- [BUILD.md](https://github.com/hcavarsan/kftray/tree/main/docs/kftui/BUILD.md)\n\n## kftray server - Proxy Relay Server\n\n- [ARCH.md](https://github.com/hcavarsan/kftray/tree/main/docs/ARCH.md).\n\n## Contributing\n\n- **Pull Requests:** Feel free to create pull requests for bug fixes, new features, or improvements.\n- **Issues:** Report bugs, suggest new features, or ask questions.\n- **Feedback:** Your feedback helps improve kftray.\n\n##  License\n\nkftray is available under the [MIT License](LICENSE.md). See the LICENSE file for full details.\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#hcavarsan/kftray\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=hcavarsan/kftray\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=hcavarsan/kftray\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=hcavarsan/kftray\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hcavarsan\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/30353685?v=4?s=100\" width=\"100px;\" alt=\"Henrique Cavarsan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHenrique Cavarsan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/hcavarsan/kftray/commits?author=hcavarsan\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://fandujar.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6901387?v=4?s=100\" width=\"100px;\" alt=\"Filipe Andujar\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFilipe Andujar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/hcavarsan/kftray/commits?author=fandujar\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://speakerdeck.com/eltociear\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22633385?v=4?s=100\" width=\"100px;\" alt=\"Ikko Eltociear Ashimine\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIkko Eltociear Ashimine\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/hcavarsan/kftray/commits?author=eltociear\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/honsunrise\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3882656?v=4?s=100\" width=\"100px;\" alt=\"Honsun Zhu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHonsun Zhu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/hcavarsan/kftray/commits?author=honsunrise\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhcavarsan%2Fkftray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhcavarsan%2Fkftray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhcavarsan%2Fkftray/lists"}