Skip to content
Docs · Documentation

Integrations

Service web views

Open Grafana, Prometheus and other in-cluster web UIs inside Kubyl.

Any HTTP(S) port of a Service or Pod, and the backends of Ingresses and Routes, gets a Web view button (W). Kubyl starts a hidden loopback port-forward and opens the page in a tab. Closing the last tab stops the forward, and a forward left idle in the background stops after webview.idle_stop_minutes (30, or 0 to keep it running).

Toolbar

Back, forward, reload, address bar, zoom, open in browser, copy URL, Clear Site Data and developer tools (enable with webview.devtools).

KeysAction
F5Reload
CtrlLFocus the address bar
CtrlAltIDeveloper tools
Ctrl=orCtrl-orCtrl0Zoom in / out / reset

Isolation and privacy

  • Cookies and storage are separate per cluster, namespace and service.
  • Private session keeps nothing. Turn it on for every view with webview.private_by_default.
  • Certificates Kubyl can't verify prompt you, and accepted ones are remembered, except in private sessions.
  • Redirects show a banner, and a page that tries to open your system browser asks first.

Where pages open

webview.open_in is auto (embedded on macOS, Windows and Linux X11) or browser. The embedded view uses WKWebView on macOS, WebView2 on Windows and WebKitGTK on Linux, which must be installed. On a Wayland session Kubyl starts as an X11 client through XWayland when it is available, so pages embed there too (the app can look blurry on fractional scaling). Set KUBYL_WAYLAND=1 to stay native Wayland: a page then opens in a GTK window of its own, linked to its tab. Kubyl also sets WEBKIT_DISABLE_DMABUF_RENDERER=1 unless you set it, which avoids a protocol error on NVIDIA under Wayland.

Targets, buttons and sessions

  • Where the button is. Service lists have a Web column with up to three port buttons. Service, Pod, Ingress and Route details have a Web views section: ports as Web view, Open · N tabs or Open as web view… (for a port that does not look like HTTP, with the scheme and a start path), the temporary forward, the session's storage and idle stop, and other web UIs in the namespace. With several ports, W and the palette picker ask which one. Ingress and Route backends use the primary backend Service at the resolved port.
  • Reuse. Several tabs of one port share one forward, and closing one keeps it alive. The last local port is reused when free, so a page keeps its origin and local storage. The forward is listed in Active Sessions as web view · svc/grafana:80, its stop button closes the tabs, and it restarts after a reconnect.
  • Start page. Kubyl remembers the last path per port, without origin, fragment or credential-like query values (token, code, session…). Start here next time in the tab's … menu saves the current page. The address bar takes a path such as /metrics.
  • Not restored. Web view tabs are not reopened at startup and forwards never start by themselves.
  • HTTPS. The tab talks TLS to the pod through the plain TCP forward, so Secure cookies and absolute https links work. A certificate the system does not trust shows an interstitial with subject, issuer, validity, names and fingerprint, and Proceed remembers its SHA-256 for that service and port. Clear Site Data forgets it.
  • Downloads go through the save dialog and show in a downloads bar. Links to the forward that call window.open open another Kubyl tab sharing the forward, other URLs open in the system browser.
  • Redirect banner. An app that redirects off the forward to its external URL gets a banner: open in browser, go back or stay.

Kubyl's own keys such as Ctrl K, Ctrl W and Ctrl Tab keep working while a page has focus. While a dialog, the palette or a menu is open the page is hidden behind it.

Web views only read, so they are allowed on read-only clusters.

Something missing or wrong? Open an issue on GitHub.