Introduction
OxideTerm is an AI-native workspace for remote servers, not just a terminal. Connect to a server once, then work around it in one place: SSH shell, SFTP, port forwarding, trzsz transfers, lightweight editing, local shell, remote desktop, and OxideSens AI.
OxideTerm is a pure Rust desktop application built with GPUI. GPUI draws the interface directly on a GPU surface; there is no browser runtime, DOM, JavaScript frontend, or system WebView. Release packages are typically 50–70 MB and are available for macOS, Windows, and Linux on x64 and arm64.
The core workspace is local-first: SSH, files, forwarding, local shells, saved connections, and settings do not require an OxideTerm account. OxideSens is BYOK, so requests go only to the provider you configure.
Why OxideTerm?
Section titled “Why OxideTerm?”| Pain Point | OxideTerm’s Answer |
|---|---|
| Remote server work is split across too many tools | One node workspace: terminal, SFTP, forwarding, IDE, monitoring, remote desktop, and OxideSens stay attached to the same node |
| You still need a local shell | Integrated local terminal: zsh, bash, fish, pwsh, WSL2, and platform shells sit beside remote sessions |
| Reconnect means losing active work | Grace Period reconnect: OxideTerm probes the old SSH connection before replacing it and restores dependent tools when a new connection is required |
| Remote file editing needs a heavyweight remote IDE | Native lightweight IDE: a GPUI editor and SFTP-backed file tree, with an optional Linux remote agent for project search and file watching |
| Every tool opens another SSH connection | Shared connection registry: terminal, SFTP, forwards, and IDE consumers reuse the node’s managed SSH connection |
| SSH libraries add OpenSSL deployment friction | Pure Rust SSH: russh with ring, without an OpenSSL runtime dependency |
| Browser-wrapped desktop apps add another runtime | Native GPUI shell: GPU-rendered Rust UI with no WebView |
| Automation should not require the desktop app | Standalone oxideterm CLI: direct headless access to settings, connections, backups, cloud sync, diagnostics, and other persisted domains |
Architecture at a Glance
Section titled “Architecture at a Glance”OxideTerm keeps the desktop UI and domain services in one native process:
┌───────────────────────────────────────────────┐│ GPUI render loop ││ Workspace · tabs · sidebars · native views │└──────────────────────┬────────────────────────┘ │ in-process Rust calls┌──────────────────────▼────────────────────────┐│ Domain services ││ NodeRouter · SSH registry · SFTP · forwards ││ TerminalState · IDE · AI · plugins · sync │└───────────────────────────────────────────────┘Terminal bytes are parsed into Rust-owned terminal state. GPUI reads snapshots of that state and issues GPU draw calls. Management actions call Rust services directly in-process, so terminal traffic and UI actions do not cross a serialization bridge.
The standalone oxideterm CLI follows the same ownership model. It links the relevant domain crates and reads the same persisted stores as the desktop app; it does not contact a desktop-side RPC server.
Native Stack
Section titled “Native Stack”| Layer | Technology | Purpose |
|---|---|---|
| Desktop UI | GPUI | Native windows, input, layout, and GPU rendering |
| Async runtime | Tokio | SSH, transfers, forwarding, monitoring, and background work |
| SSH | russh + ring | Pure Rust SSH, SFTP channels, agent support, and ProxyJump |
| Terminal state | alacritty_terminal | VT parsing, grid, scrollback, selection, and search state in Rust |
| Local PTY | portable-pty | Local shells and Windows ConPTY workflows |
| Editor | Native GPUI editor | Remote editing, syntax highlighting, folding, search, and multi-cursor state |
| Encryption | ChaCha20-Poly1305 + Argon2id | Encrypted .oxide exports and sealed local connection data |
| Storage | JSON stores + redb | Settings, connections, runtime state, history, and indexes |
| Plugins | Manifest-only, process, and Wasm/wasmtime | Native extensions through typed, permission-gated host APIs |
| CLI | oxideterm | Direct headless management through shared Rust domain crates |
Key Features
Section titled “Key Features”| Category | Features |
|---|---|
| Terminal | Local PTY, SSH, Telnet, serial, split panes, broadcast input, recording/playback, Sixel/Kitty graphics, and render profiles |
| SSH & Auth | Connection reuse, ProxyJump, Grace Period reconnect, Agent Forwarding, password/key/certificate/SSH Agent/keyboard-interactive auth, and known-host verification |
| SFTP | Dual-pane browser, transfer queue, previews, bookmarks, archive operations, and reconnect-aware sessions |
| IDE | Native editor, remote file tree, project search, multi-tab workflow, conflict detection, and optional remote agent |
| Remote Desktop | Native RDP and VNC tabs with keyboard, pointer, clipboard, resize, and reconnect handling |
| Port Forwarding | Local, remote, and dynamic SOCKS5 forwards with saved rules and reconnect-aware restore |
| AI (OxideSens) | BYOK providers, MCP, local knowledge retrieval, redacted context, and approved workspace actions |
| Plugins | WASM runtime, typed host capabilities, plugin settings, enable/disable controls, and custom surfaces |
| Security | OS keychain, encrypted local connection data, encrypted .oxide exports, host-key TOFU, and secret zeroization |
Local-First Boundaries
Section titled “Local-First Boundaries”- Core remote workflows work without an OxideTerm account or subscription.
- Credentials and API keys are stored through the operating system keychain.
- OxideSens sends context only when you invoke it and only to your configured provider.
- The CLI and desktop app share persisted data, so scripts can inspect and manage OxideTerm without keeping the GUI running.
- Cloud sync is optional; local operation remains the default.
What’s Next?
Section titled “What’s Next?”- Installation guide — download, install, or build OxideTerm
- Terminal — native terminal features and rendering
- SFTP — file management over SSH
- IDE Mode — remote editing in the native workspace
- Port Forwarding — SSH tunnels
- OxideSens AI — BYOK AI for remote-server work
- CLI — headless management and automation
- Security — encryption, credentials, and process boundaries