Observability
Port Forwarding
Kubius implements port-forwarding natively (no kubectl subprocess) - every session runs inside the app, with live connection-count tracking and a floating tray that shows every active session.
Quick forward
In any Pod or Service detail view, each declared port has two buttons next to it:
- Arrow icon - starts a forward immediately
- Clipboard icon - copies the equivalent
kubectl port-forwardcommand to the clipboard
The tooltip on the arrow icon shows the actual local port that will be used (the natural choice or your saved preference - see below).
Local port selection
By default the local port matches the remote port - port 8080 on the pod is exposed as localhost:8080. If that port is already in use by another active session, Kubius bumps to the next free port (8081, 8082, …).
Unsafe ports
macOS and most browsers refuse to load localhost:<port> for a set of “blocked” ports - the Fetch standard blocklist plus ports below 1024 (which require root to bind). Common offenders: 21, 22, 53, 80, 443, 6000.
If a quick-forward would land on an unsafe port (because your remote port is 6000 / 80 / 22 etc.), Kubius shows a confirmation popup with:
- A suggested safe alternative pre-filled in the input
- A warning if you pick another unsafe port
- A Use Anyway button that lets you proceed regardless
Your choice is saved for that specific resource and remote port, so next time you quick-forward the same Pod foo port 6000, the input defaults to the port you picked previously. Even with a saved choice, the popup still appears - every unsafe port requires an explicit click to start. This is by design: it’s too easy to absent-mindedly start an unsafe forward that won’t work in the browser.
Manual port forward
The Port Forward option in the Pod / Service detail Actions menu opens the full configuration dialog:
- Declared Ports section - click Forward on any declared port for one-click start
- Custom section - manually enter Pod Port and Local Port, then Start
The Pod Port box is pre-filled with the first declared port. The Local Port box uses your saved override for that pod/port pair if any.
Both boxes must have valid numbers before Start activates. An inline orange warning appears as soon as you type an unsafe port number - the dialog will route through the same confirmation popup as quick-forward when you click Start.
The Start / Forward buttons grey out when one of the port fields is empty or invalid.
Active forwards tray
A floating panel at the bottom-right of the main window lists every active session:
- Status dot - green = listening, orange = reconnecting
- Local port → remote port
- Connection count - live count of TCP connections currently established to the local port
- Browser icon - opens
http://localhost:<port>in the default browser - Stop - terminates the session
Click anywhere on the tray header (not just the chevron) to collapse or expand it. The tray disappears entirely when there are no active forwards. If a Right-Sizing analysis is also in progress, that tray stacks above this one in the same corner.
Copying the kubectl command
The clipboard icon next to each quick-forward arrow copies a ready-to-run command:
- Pod -
kubectl port-forward -n <ns> pod/<name> <local>:<remote> - Service -
kubectl port-forward -n <ns> service/<name> <local>:<remote>
The local port reflects your saved override if any - so the copied command matches what the quick-forward button would do.