Skip to content

Terminal

OxideTerm’s terminal is powered by xterm.js 6 with WebGL-accelerated rendering, delivering smooth 60 fps+ output even with heavy terminal workloads.

A three-tier render scheduler automatically adjusts frame rate based on activity:

TierTriggerRateBenefit
BoostFrame data ≥ 4 KB120 Hz+ (ProMotion native)Eliminates scroll lag on large outputs (cat largefile.log)
NormalStandard typing60 Hz (requestAnimationFrame)Smooth baseline
Idle3s no I/O / tab hidden1–15 Hz (exponential backoff)Near-zero GPU load, battery savings

Transitions are fully automatic — driven by data volume, user input, and the Page Visibility API. Background tabs continue flushing data via an idle timer without waking requestAnimationFrame.

Terminal I/O bypasses Tauri IPC entirely, using a direct WebSocket connection with a binary Type-Length-Payload protocol:

+--------+--------+--------+--------+--------+-- ... --+
| Type | Length (4 bytes, big-endian) | Payload |
| (1B) | | |
+--------+--------+--------+--------+--------+-- ... --+
TypeNamePayloadDirection
0x00DataRaw terminal bytesBidirectional
0x01Resizecols: u16 BE, rows: u16 BEClient → Server
0x02Heartbeatseq: u32 BEBidirectional
0x03ErrorUTF-8 error messageServer → Client

Maximum payload size is 16 MB. The server sends a heartbeat every 30 seconds; if the client doesn’t respond within 90 seconds, the connection is closed.

  • Open multiple terminal tabs, each connected to a different or same SSH session
  • Split panes horizontally or vertically for side-by-side views
  • Each pane maintains its own independent shell channel
  • Drag tabs to reorder or split into new panes

Send the same keystrokes to multiple terminal panes simultaneously — useful for managing clusters or running the same command across multiple servers.

Toggle broadcast mode from the toolbar. Selected panes receive identical input in real-time. You can selectively include/exclude specific panes from the broadcast group.

Search terminal buffer content with two modes:

Search content currently visible in the terminal viewport and xterm.js scrollback buffer. Fast; no backend round-trip required.

Search the backend scrollback buffer, which can hold significantly more history than the frontend. Results are highlighted and navigated within the terminal.

Both modes support:

  • Case-sensitive / case-insensitive matching
  • Regular expression support
  • Result highlighting with next/previous navigation

Use Ctrl+F (or ⌘F on macOS) to open the search bar.

Record terminal sessions in asciicast v2 format for later review:

  • Captures all terminal output with precise timestamps
  • Playback with variable speed control (0.5×–8×)
  • Export recordings for sharing or documentation
  • Compatible with asciinema ecosystem

Press ⌘K (macOS) or Ctrl+K (Windows/Linux) to open the command palette — quick access to any action in OxideTerm, including connections, settings, search, and keyboard shortcuts.

Minimize distractions by entering zen mode, which hides the sidebar, tab bar, and status bar, giving the terminal full screen real estate.

Customize the terminal with per-tab background images:

  • 13 supported tab types
  • Adjustable opacity and blur
  • Multiple fit modes (cover, contain, stretch)
  • Session tree — organize connections in a hierarchical tree with folders and groups
  • Quick connect — connect by entering host/user/port directly
  • Import/Export.oxide encrypted format (ChaCha20-Poly1305 + Argon2id)
  • SSH Config import — auto-parse ~/.ssh/config to import existing connections
  • Jump host / ProxyJump — unlimited hops with network topology graph and Dijkstra pathfinding
  • Authentication — password, SSH key (RSA/Ed25519/ECDSA), SSH Agent (system agent support across macOS, Linux, Windows), certificates, keyboard-interactive 2FA
  • Known Hosts TOFU — host key verification compatible with ~/.ssh/known_hosts; rejects key changes (MITM prevention)
  • Connection pool — terminal, SFTP, forwards, IDE share one SSH connection via reference-counted pool
  • Idle timeout — configurable (5m / 15m / 30m / 1h / never); connections with no consumers auto-disconnect after the timeout
ActionmacOSWindows / Linux
New Connection⌘ NCtrl+N
Local Terminal⌘ TCtrl+T
Command Palette⌘ KCtrl+K
Terminal Search⌘ FCtrl+F
Inline AI⌘ ICtrl+Shift+I
Keyboard Shortcuts⌘ /Ctrl+/
Zen Mode⌘ Shift+ZCtrl+Shift+Z

OxideTerm also supports local terminal sessions (PTY) on desktop platforms via portable-pty. Shell auto-detection finds:

  • macOS/Linux: zsh, bash, fish, pwsh
  • Windows: PowerShell 7, Git Bash, WSL2, CMD (native ConPTY — full TrueColor and ANSI support, no legacy WinPTY)

For active SSH connections, OxideTerm shows a live resource profiler:

  • CPU and memory usage via persistent SSH channel reading /proc/stat
  • Delta-based calculation for accurate CPU percentage
  • Auto-degrades to RTT-only metrics on non-Linux systems
  • Smart port detection — automatically discovers listening services on the remote host