Remote SSH Development

Open and edit files on a remote server over SSH with a full terminal, file tree, and VS Code-style project support.

Desktop only. Remote SSH is not available in the web app.

Remote SSH lets you work on files hosted on a remote server as if they were local. Browse the remote filesystem, open and save text files, and run commands in a remote shell — all from within Omnilib.

Creating a remote project

  1. Open the project launcher (Cmd+Shift+O (Windows: Ctrl+Shift+O)).

  2. Click New Project.

  3. In the source mode selector, choose SSH.

  4. Enter the connection URI in the format:

    ssh://user@host/path/to/project
    
  5. Click Connect.

Omnilib opens an SSH connection to the remote host, mounts the specified directory as the project root, and opens the file tree.

URI format

PartExampleDescription
useraliceSSH username
host192.168.1.10Hostname or IP address
path/home/alice/myprojectAbsolute path on the remote

Custom ports are supported: ssh://user@host:2222/path.

Authentication

Omnilib supports three authentication methods:

System SSH config

If your ~/.ssh/config defines a host entry for the target server, Omnilib uses it automatically — including ProxyJump, GSSAPI, IdentityFile, and other directives. No additional configuration is needed.

Private key with passphrase detection

Omnilib scans ~/.ssh/ for standard key files (id_rsa, id_ed25519, id_ecdsa, etc.) and presents them in the connection dialog. If a selected key is passphrase-protected, a prompt appears for the passphrase. The passphrase is used for the session and not stored.

SSH agent

If an SSH agent is running (e.g., ssh-agent or macOS Keychain integration), Omnilib delegates authentication to it automatically. This is the recommended approach for servers with passphrase-protected keys.

SSH connection dialog

The first time you connect to a host, the connection dialog lets you:

  • Select the authentication method
  • Choose an SSH key from ~/.ssh/
  • Enter a passphrase if required
  • Confirm the host fingerprint

For subsequent connections, stored settings are used and the dialog is skipped unless authentication fails.

File tree

The project sidebar shows the remote filesystem starting from your project path. Browse directories and click files to open them, exactly as with local projects.

File operations (rename, delete, new file, new folder) are performed over SSH. Large directory trees may take a moment to load on first open.

Editing files

Text files open in the appropriate editor (code, Markdown, LaTeX, etc.) and are read over SSH. Saving writes the file back to the remote server immediately. Unsaved changes are held locally in memory until you save.

Binary files (images, PDFs, etc.) can be opened in their respective viewers — the file is downloaded temporarily for display.

Terminal

Opening a terminal in a remote SSH project spawns a remote shell:

ssh -t user@host

The terminal connects directly to the remote host. All commands run on the server. You can run builds, start servers, use git, and perform any other shell operations.

Remote status badge

The project tab and window title show a remote indicator (a server icon) when a remote SSH project is active. If the connection drops, the badge turns red and Omnilib attempts to reconnect automatically.

Tips

Tip: Use ~/.ssh/config to set ServerAliveInterval 30 and ServerAliveCountMax 3 to prevent idle connection timeouts on long editing sessions.

Tip: For projects with many files, consider opening a subdirectory as the project root rather than the home directory. Shallower trees load faster.