Skip to main content

Pod Terminal

KubeVision provides a full in-browser terminal to any running Pod via xterm.js. No kubectl installation is required on the client.

Opening a Terminal

  1. Navigate to Workloads → Pods and click a Pod
  2. Select the Terminal tab
  3. If the Pod has multiple containers, select one from the Container dropdown
  4. The terminal connects and you are dropped into a shell
tip

The shell is determined by the container image. KubeVision tries bash first, then falls back to sh.

Features

FeatureDetails
Full TTYProper pseudo-terminal with ANSI colors, cursor movement, and control sequences
ResizeTerminal resizes automatically when the browser window changes
ClipboardPaste with Ctrl+Shift+V (Linux/Windows) or Cmd+V (macOS)
Scrollback10,000 line scrollback buffer

Keyboard Shortcuts

ShortcutAction
Ctrl+CSend SIGINT (interrupt current process)
Ctrl+DSend EOF (close shell)
Ctrl+LClear screen
Ctrl+Shift+CCopy selection to clipboard

Session Recording

All terminal sessions are recorded automatically in asciinema v2 format and stored server-side.

Replaying a Session (Admin Only)

  1. Go to Admin → Terminal Sessions
  2. Find the session by user, Pod, or time range
  3. Click Replay — the session plays back in the browser at original speed
  4. Use the scrubber to jump to any point in the session
// asciinema v2 header example
{"version": 2, "width": 220, "height": 50, "timestamp": 1741132800, "title": "default/my-pod/app"}
info

Session recordings are stored in the KubeVision database. Retention period is configurable via TERMINAL_RECORDING_RETENTION_DAYS (default: 30 days).

Security

  • Each session is authenticated via the user's JWT
  • RBAC exec permission is required (see RBAC)
  • All keystrokes are transmitted over a TLS WebSocket (wss://)
  • Session recordings are accessible only to admin-role users
  • Pod Logs — Stream and search container logs
  • Favorites — Bookmark frequently accessed Pods