Terminal
OxideTerm’s terminal is a Rust-native pipeline. Session bytes update alacritty_terminal state, OxideTerm builds terminal snapshots, and a GPUI painter draws text, selection, cursor, decorations, Sixel images, and Kitty graphics directly on the GPU surface.
There is no browser renderer or terminal bridge in this path. Input, output, resize events, search, selection, scrollback, and rendering remain inside the native process.
Rendering Policy
Section titled “Rendering Policy”The terminal drains pending events with budgets tuned for three activity tiers:
| Tier | Trigger | Behavior |
|---|---|---|
| Boost | The previous drain exhausted its budget | Prioritizes throughput until queued output catches up |
| Normal | Recent input or terminal activity | Keeps interactive typing and fresh output responsive |
| Idle | No recent input or output | Avoids unnecessary redraw work |
The application also supports Quality, Low Power, Compatibility, and Auto render profiles. Auto selects a policy from detected graphics capability; Compatibility disables expensive visual effects and terminal image decoding when required.
Supported Sessions
Section titled “Supported Sessions”- Local PTY sessions
- SSH terminals
- Telnet terminals
- Serial terminals
- Recorded-session playback
All session types use the same native terminal view and interaction model while their backends own protocol-specific connection and lifecycle behavior.
Multi-Tab and Split Panes
Section titled “Multi-Tab and Split Panes”- Open multiple tabs for local or remote sessions.
- Split terminal tabs horizontally or vertically.
- Keep independent shell channels, scroll positions, selections, and search state per pane.
- Resize panes with draggable dividers.
- Restore terminal topology as part of workspace and reconnect state.
Broadcast Input
Section titled “Broadcast Input”Broadcast sends a command submitted from the terminal command bar to the current pane and selected terminal targets. Targets may be local or remote and can live in different tabs or split positions. Typing directly into the terminal surface is not mirrored key by key.
Broadcast is immediate. Review destructive commands before submitting them because each selected session receives the command independently.
Terminal Search
Section titled “Terminal Search”Open search with ⌘F on macOS or Ctrl+Shift+F on Windows/Linux. Native search scans the active terminal’s retained scrollback, highlights matches, shows the current/total result count, and scrolls to the selected match.
Use Enter or the down arrow for the next result, Shift+Enter or the up arrow for the previous result, and Escape to close search. See Terminal Search for details.
Session Recording and Playback
Section titled “Session Recording and Playback”OxideTerm records terminal output in asciicast v2 format:
- Timestamped output events
- Variable-speed playback
- Search within playback content
- Export for review or use with compatible asciinema tooling
Terminal Graphics
Section titled “Terminal Graphics”The native terminal tracks Sixel and Kitty image assets alongside terminal state. Graphics decoding, pixel limits, placeholders, and cache size follow the active render profile so low-power or compatibility modes can reduce cost.
Command Palette and Zen Mode
Section titled “Command Palette and Zen Mode”Use ⌘K on macOS or Ctrl+K on Windows/Linux to open the command palette. It provides native actions for tabs, connections, settings, search, and workspace tools.
Zen mode hides surrounding workspace chrome to maximize terminal space. Background images, opacity, blur, and fit are available from Appearance settings when the selected render profile permits them.
Connection Management
Section titled “Connection Management”- Saved connections and active nodes appear in the session tree.
- Quick Connect opens temporary connections without requiring a saved profile.
- OpenSSH configuration and encrypted
.oxidebundles can populate saved state. - Multi-hop ProxyJump routes resolve through the node router.
- Password, private key, certificate, SSH Agent, and keyboard-interactive authentication are supported where applicable.
- Terminal, SFTP, forwards, and IDE consumers can share a physical SSH connection.
- Host-key TOFU rejects unexpected changes to known hosts.
Keyboard Shortcuts
Section titled “Keyboard Shortcuts”| Action | macOS | Windows / Linux |
|---|---|---|
| New Connection | ⌘ N | Ctrl+N |
| Local Terminal | ⌘ T | Ctrl+T |
| Command Palette | ⌘ K | Ctrl+K |
| Terminal Search | ⌘ F | Ctrl+Shift+F |
| Inline AI | ⌘ I | Ctrl+Shift+I |
| Keyboard Shortcuts | ⌘ / | Ctrl+/ |
| Zen Mode | ⌘ Shift+Z | Ctrl+Shift+Z |
Shortcuts are configurable. The keybindings settings page shows the active bindings for the current platform.
Local Shells
Section titled “Local Shells”Local terminals use portable-pty, including ConPTY on Windows. Shell discovery covers common installations such as zsh, bash, fish, PowerShell, Git Bash, WSL2, and CMD according to the current platform.
Resource and Host Tools
Section titled “Resource and Host Tools”Active SSH nodes can feed native monitoring and Host Tools for latency, processes, services, containers, ports, filesystems, packages, logs, and other sampled state. These tools share node identity and reconnect state with the terminal rather than opening an unrelated workspace.