Skip to content

IDE Mode

IDE Mode lets you edit remote files directly within OxideTerm — no need to download, edit locally, and re-upload. All operations happen over the existing SSH connection.

The editor is powered by CodeMirror 6 with:

  • Syntax highlighting for 30+ languages (16 native CodeMirror + legacy modes via @codemirror/legacy-modes)
  • Line numbers and code folding
  • Find and replace with regex support
  • Bracket matching and auto-closing pairs
  • Indentation guides
  • Multiple cursors and selections
  • Minimap for file overview

Native CodeMirror 6 modes include: JavaScript, TypeScript, Python, Rust, Go, C/C++, Java, HTML, CSS, JSON, Markdown, SQL, XML, YAML, TOML, Shell/Bash. Additional languages are available via legacy modes.

A sidebar file tree provides navigation through the remote file system:

  • Lazy-loaded directories — only loads directory contents when expanded, for performance on large remote filesystems
  • Git status indicators — files show modified (M), untracked (?), added (A) status with color coding
  • Event-driven refresh — the file tree auto-refreshes on save, create, delete, rename, and terminal Enter keypress
  • Click to open files in the editor
  • Create, rename, and delete files and directories via context menu
  • File type icons for quick identification based on extension
  • Files are saved back to the remote server over SFTP
  • Optimistic mtime locking — before overwriting, OxideTerm checks if the remote file’s modification time has changed since it was loaded. If it has, a conflict dialog appears letting you choose to overwrite, reload the remote version, or diff the changes.
  • Unsaved changes are indicated with a dot on the tab
  • Ctrl+S / ⌘+S to save

Open multiple files in tabs with LRU (Least Recently Used) tab management:

  • Switch between tabs without losing editor state (cursor position, scroll position, undo history)
  • When the maximum tab count is reached, the least recently used tab is automatically closed
  • Unsaved files are never auto-closed — they are protected from LRU eviction

For enhanced IDE capabilities, OxideTerm can deploy a ~1 MB Rust binary to the remote server. The agent communicates via JSON-RPC over the SSH channel.

  • Faster file tree operations — directory listing, file search, and symbol resolution run natively on the remote host
  • Real-time file watching — external changes (from other editors or processes) are reflected immediately
  • Symbol search — find definitions and references across the project
  • 43 JSON-RPC methods — comprehensive file, directory, and project operations
  • Auto-deploys on x86_64 and aarch64 Linux when you enable the agent
  • 10+ architectures available for manual upload: ARMv7 (musleabihf), i686, LoongArch64, PowerPC64LE, RISC-V64, s390x, x86_64-FreeBSD, aarch64-Android, and more
  • Agent binaries are stored on the remote server and survive reconnects
  • Can be removed with one click from the IDE panel

IDE mode works completely without the remote agent. Without it, file tree operations use SFTP (slightly slower) and file watching is not available. For most use cases, the agentless mode is sufficient.

IDE Mode runs alongside the terminal — switch between terminal and editor tabs seamlessly. The same SSH connection is shared via the connection pool, so there’s no additional connection overhead or authentication prompt.

IDE mode participates in the reconnect orchestrator pipeline:

  • On disconnect, the orchestrator snapshots open file tabs and project path
  • After SSH reconnect, IDE files are automatically reopened
  • File contents are re-fetched from the remote server (not from stale cache)
  • User intent detection: if you’ve manually closed the IDE or switched projects during disconnect, the orchestrator respects your decision and doesn’t force-reopen

All IDE I/O operations are blocked when the connection state is not active. The editor becomes read-only during reconnect, and re-enables automatically once the connection is restored.