Introduction
What kftray is, why we built it, and how it fits into your Kubernetes development workflow.
Introduction
Putting it simply, kftray is a cross-platform tool for managing Kubernetes port forwards with automatic reconnection, UDP support, and team configuration sharing.
Why We Built This
We kept running into the same friction with kubectl port-forward during daily Kubernetes development. The built-in command works fine for one-off TCP connections, but it falls short in a few common scenarios:
kftray solves these by wrapping Kubernetes port forwarding in a managed layer that handles reconnection, protocol bridging, and configuration persistence.
Use Cases
Local microservices development
Forward your database, API gateway, and backend services to localhost with a single click or command.
Production debugging
Temporarily forward specific services for investigation without setting up VPN tunnels.
Team onboarding
Share port-forward configurations via JSON files or GitHub repositories so new developers get a working environment in minutes.
UDP services
Access DNS, DHCP, or other UDP-based services that kubectl port-forward can't reach.
Two Interfaces, One Configuration
kftray comes in two flavors that share the same configuration database:
Desktop (kftray) | Terminal (kftui) | |
|---|---|---|
| Best for | Visual management, system tray convenience | Keyboard-driven workflows, SSH, low resources |
| Memory | ~100 MB | ~30 MB |
| Exclusive features | System tray integration | Request replay, SSH-compatible, tmux-friendly, non-interactive mode |
| Shared features | HTTP traffic logging, GitHub sync, auto import, auto-reconnection, TCP/UDP, expose (reverse tunneling) | |
| Platform | macOS, Linux, Windows | macOS, Linux, Windows |
Both interfaces read from the same SQLite database (~/.kftray/kftray.db), so you can mix and match based on the situation. Check the Desktop Interface and Terminal Interface pages for details.
Usage at a Glance
You define port forwards as JSON configurations:
{
"service": "api-gateway",
"namespace": "development",
"local_port": 8080,
"remote_port": 80,
"protocol": "tcp",
"alias": "gateway"
}Then enable them through either interface. kftray handles the connection lifecycle — including automatic reconnection when pods restart.
For the full walkthrough, see the Quick Start.