Files
hermes-krates-connector/design/shell_window.md
2026-06-16 08:31:55 -04:00

1.0 KiB
Raw Permalink Blame History

Shell Window Feature

Purpose: Interactive pseudoterminal session inside a krate.

Implementation:

  • Frontend component uses xterm.js (or equivalent) for terminal UI.
  • Backend opens a WebSocket that proxies to kubectl exec -it <pod> -n <ns> -- sh (or the container's default shell).
  • Input handling: when the mouse is over the shell window, all keypresses are forwarded to the terminal; space does not trigger Spotlight.
  • Scroll wheel over the terminal scrolls its content; Ctrl/⌘+scroll still zooms the canvas.
  • No PTY needed on the server side beyond the exec stream; the WebSocket carries stdin/stdout/stderr.

Interaction:

  • Click a result in Spotlight or Collection and press Alt+S to open a Shell window in a new/existing Krate.
  • Resize like any Detail Window; sibling windows resize proportionally.
  • Doubleclick header or press z to maximize to the viewport.
  • The shell window obeys the global pan/zoom shortcuts (Spacedrag pans, Ctrlscroll zooms) when the cursor is inside it.

State (Window type shell).