Skip to content

SFTP Browser

ZestSSH includes a built-in SFTP file browser that lets you navigate, upload, download, rename, delete, and manage files on your remote server through an encrypted SSH connection. The interface adapts to your platform: a single-pane browser on mobile with touch-friendly controls, and a dual-pane file manager on desktop with drag-and-drop support.


From an active SSH session, tap the SFTP icon in the session toolbar. ZestSSH opens an SFTP channel over the existing SSH connection and navigates to your home directory on the server.


The mobile SFTP browser is a single-pane view optimized for phones and tablets.

  • Breadcrumb bar: Displayed at the top of the file list, showing the current path as tappable segments. Tap any segment to jump directly to that directory.
  • Parent directory: Tap the up-arrow icon in the app bar to go up one level. The browser tracks your navigation history, so going up returns to exactly where you came from.
  • Go to path: Use the overflow menu to type an absolute path and jump to it directly (useful when you know the exact location).

Files and directories are displayed in a scrollable list. Each entry shows:

  • Icon: Directories get a folder icon in the app’s accent color. Files get type-specific icons based on their extension — code files, config files, images, archives, key files, and logs each have distinct icons and color hints.
  • Name: The file or directory name.
  • Details: File size (formatted as KB, MB, GB), Unix permissions string, and last modified timestamp. Directories show permissions and modification date.

The footer bar at the bottom shows a count of folders and files in the current directory.

Tap the sort icon in the app bar to sort by name, size, date modified, or file type. Tap the same sort option again to reverse the order. Directories always appear before files regardless of the sort field.

Toggle hidden file visibility from the overflow menu. When hidden, files and directories whose names begin with . are filtered from the display.

Tap any file to open an action sheet with options:

  • Edit in Editor: Downloads the file and opens it in ZestSSH’s built-in text editor. When you save, the file is uploaded back to the same remote path. This is ideal for quick config file edits.
  • Download: Downloads the file to your device’s Downloads folder (Android) or the app’s documents directory (iOS, visible in the Files app). A progress bar shows transfer status with percentage.
  • Download & Share: Downloads the file to a temporary location and opens the system share sheet, so you can send it via email, messaging, AirDrop, or any other sharing target.
  • Copy Path: Copies the full remote path to your clipboard.
  • Rename: Opens a dialog to enter a new name for the file or directory.
  • Properties: Shows detailed information including name, full path, type, size, permissions, and last modified date.
  • Delete: Deletes the file (or recursively deletes a directory) after a confirmation dialog.

Tap the orange floating action button (upload icon) to pick a file from your device using the system file picker. ZestSSH streams the file to the remote server and shows a progress indicator. The file is uploaded to the current remote directory. The upload uses disk-based streaming, so large files do not consume excessive memory.

Use the overflow menu and select New Folder. Enter a name in the dialog and the directory is created in the current remote path.

Long-press any file to enter multi-select mode. The interface changes:

  • Checkboxes appear next to each entry.
  • A count of selected items shows in the app bar.
  • Select All Files selects all files (not directories) in the current view.
  • Download Selected downloads all selected files with aggregate progress tracking.
  • Delete Selected deletes all selected items after confirmation.

Tap the X button to exit multi-select mode.

Pull down on the file list to refresh the current directory listing.


On desktop platforms (Windows, macOS, Linux), ZestSSH provides a dual-pane SFTP interface modeled after traditional file managers like Total Commander or Midnight Commander.

The screen is divided into three areas:

  • Left pane: Your local filesystem. Browse directories, see file sizes, permissions, and modification dates.
  • Right pane: The remote SFTP filesystem. Same column layout with name, size, permissions, and modification date.
  • Bottom panel: The transfer queue, showing all active, pending, completed, and failed transfers with progress bars, transfer speed, and status.

The panes use a resizable split view. Drag the divider to adjust the proportions.

The remote pane includes:

  • Header bar with buttons for navigating up, refreshing, and creating new directories.
  • Breadcrumb path with clickable segments for quick navigation.
  • Sortable column headers: Click Name, Size, Permissions, or Modified to sort. Click again to reverse. The active sort column is highlighted in the accent color with a direction indicator.
  • Right-click context menu on any entry: Download to local, Copy path, New folder, Rename, Change permissions (chmod), Properties, Delete.
  • Chmod dialog: A visual permissions editor. Checkboxes for Read/Write/Execute across Owner/Group/Other, with a live octal display (e.g., 755). Apply to update permissions on the server.
  • Selection: Click a file to select it, click again to deselect. Selected files highlight in the accent color. Use the header download button to download all selected files.
  • Drag and drop between panes: Drag a file from the local pane to the remote pane to upload it, or drag from the remote pane to the local pane to download it. The receiving pane highlights with a colored border when a valid drop target is detected.
  • Double-click: Double-click a remote file to download it to the current local directory.
  • OS file manager drop: Drag files from your operating system’s file manager (Finder, Explorer, Nautilus) directly onto the remote pane to upload them. ZestSSH uses the desktop_drop package to handle OS-level drag-and-drop events.

All transfers flow through a managed queue with a configurable concurrency limit (default: 3 simultaneous transfers). The transfer queue panel shows:

  • File name and direction (upload or download indicator).
  • Progress bar with bytes transferred and percentage.
  • Status: Pending, Active, Completed, Failed, or Cancelled.
  • Actions: Cancel an active or pending transfer, retry a failed one, or clear all completed entries.

When all transfers finish, both panes automatically refresh to show the updated file listings.

The dual-pane SFTP screen can be embedded inline alongside a terminal in desktop split-pane mode. In this configuration, it renders without its own app bar, fitting seamlessly into the desktop shell layout.


ZestSSH sanitizes all remote filenames before writing to the local filesystem. Path traversal characters (/, \, .., null bytes) are stripped from file names to prevent a malicious server from writing files outside the intended download directory. This applies to both single-file downloads and batch operations.