Skip to content

IDE Mode

IDE Mode lets you browse and edit remote files inside the OxideTerm workspace. The editor, file tree, tabs, search panels, and dialogs are native GPUI views written in Rust.

Remote file access resolves through the active node and its managed SSH connection. IDE mode can use either the optional remote agent or an SFTP fallback, so basic editing does not depend on deploying extra software.

The GPUI editor supports the workflows needed for focused remote changes:

  • Syntax highlighting through OxideTerm’s Rust syntax layer
  • Line numbers, indentation guides, folding, and bracket-aware editing
  • Find and replace, including replace current and replace all
  • Multiple cursors and selections
  • Undo and redo history
  • Dirty-state tracking and save shortcuts
  • Theme and font settings shared with the native application

The editor keeps text, selections, highlights, folds, and viewport state in Rust. It does not embed a browser editor component.

The IDE sidebar provides a remote project tree with:

  • Lazy directory expansion
  • File and folder creation, rename, delete, and copy operations
  • File-type icons and selected-file state
  • Folder switching with an unsaved-change guard
  • Git status when the active backend provides it
  • Project-wide search results grouped by file

Selecting a file opens it in an editor tab. Multiple files can remain open, and unsaved buffers are protected from automatic tab eviction.

Remote reads include content metadata such as size, modification time, and content hash where the backend supports it. When a save detects that the remote file changed after it was opened, OxideTerm presents a conflict instead of silently overwriting the newer version.

Agent-backed writes use staged atomic replacement and hash expectations. The SFTP fallback preserves the same user-facing save and conflict workflow where the transport permits it.

Use Ctrl+S or ⌘S to save the active file.

After you choose Enable Agent in the confirmation dialog, OxideTerm can deploy a lightweight Rust agent to supported Linux hosts. Bundled agent builds target x86_64 and aarch64 Linux.

The agent adds:

  • Recursive file-tree operations
  • Project text search
  • Git status
  • File watching notifications
  • Symbol indexing, completion, and definition lookup
  • Atomic writes with hash-based conflict detection

The desktop app starts the agent through an SSH exec channel. Requests and notifications are line-delimited messages carried inside the existing authenticated SSH connection; the agent does not listen on a network port.

OxideTerm checks the remote agent version and compatibility level before use. A missing compatible agent can be installed from the IDE surface, while an incompatible build is reported instead of being used silently.

The remote binary remains on the selected host for later sessions and can be removed from the agent controls. Agent diagnostics are redacted before logging.

IDE mode remains available without the agent:

  • Directory and file operations use the managed SFTP session
  • Files open and save through the same node identity
  • The native editor and conflict UI remain available
  • Agent-only capabilities such as live file watching and symbol indexing are unavailable

For ordinary configuration and script edits, SFTP mode is often sufficient.

IDE consumers share node identity with terminal, SFTP, and forwarding surfaces. When SSH reconnect replaces the underlying connection, the IDE can reacquire its remote filesystem session without changing the visible node or project path.

Open buffers and dirty state remain in the native workspace. Remote I/O is gated while the node is unavailable and resumes only after a valid remote filesystem session is restored.