Skip to content

Repository files navigation

SSHFS GUI

SSHFS GUI

A simple macOS app to mount remote filesystems over SSH.
No terminal needed: point, click, and browse your remote files in Finder.

CI Release macOS License Buy me a coffee

SSHFS GUI main window with saved servers, favorites filter, and mount actions


Features

  • Multiple servers - Save, edit, clone, and organize as many SSH connections as you need
  • One-click mount/unmount - Mount remote directories to local folders with a single click
  • Favorites & filters - Star your most-used servers, filter by favorites or mounted status
  • Auto-mount on startup - Automatically reconnect to selected servers when the app launches
  • Secure credential storage - Passwords are stored in the macOS Keychain, never in plain text
  • Multiple auth methods - SSH agent, SSH key, or password authentication
  • Menu bar mode - Optionally run as a menu bar app with quick access from the tray icon
  • Import / Export - Transfer server configurations and settings between machines via JSON
  • Bulk actions - Select multiple servers to clone, export, or delete at once
  • Multi-language - English and Italian, with automatic detection or manual override
  • Native macOS look - Dark mode, custom title bar, smooth animations
  • Reveal in Finder - Open mounted directories directly in Finder

Requirements

SSHFS GUI needs a FUSE stack on macOS: a FUSE implementation plus an sshfs binary. Homebrew's core formula sshfs depends on Linux (libfuse) and does not install on macOS. Use the references below, or install via Homebrew (pick one stack).

References: FUSE-T · FUSE-T SSHFS · macFUSE · Homebrew

Install with Homebrew

Option A - FUSE-T + SSHFS (no kernel extension)

Uses NFS locally instead of a kext. Usually the simplest path on recent macOS.

brew tap macos-fuse-t/homebrew-cask
brew install --cask fuse-t fuse-t-sshfs

On some macOS versions with FUSE-T, Finder may need extra sshfs options (e.g. -o nonamedattr). Add them in the app's SSHFS extra options if you hit mount or copy issues.

Option B - macFUSE + SSHFS (kernel extension)

Use this if you need the classic macFUSE stack or already rely on it.

  1. Install macFUSE (allow the system extension when macOS prompts you).

    brew install --cask macfuse
  2. Install SSHFS for macFUSE (separate from Homebrew core sshfs):

    brew install gromgit/fuse/sshfs-mac

This tap targets macFUSE. Upstream SSHFS is older than on Linux: see the formula caveats. Alternatively, install SSHFS from the macFUSE / SSHFS project if you prefer their official packages.

The app checks for these dependencies and shows guidance if sshfs or FUSE is missing.

Installation

Download the latest .dmg from Releases, open it, and drag SSHFS GUI to your Applications folder.

Usage

Adding a server

  1. Click + New in the top bar
  2. Fill in the connection details:
    • Name - A friendly label (e.g. "Production DB")
    • Host - Hostname or IP address
    • Port - SSH port (default: 22)
    • User - SSH username
    • Remote path - The directory to mount (e.g. /var/www)
    • Local mount point - Where to mount it locally (e.g. ~/mnt/prod)
  3. Choose an authentication method:
    • SSH agent - Uses your running ssh-agent
    • SSH key - Specify a private key file
    • Password - Stored securely in macOS Keychain
  4. Click Create server

Mounting

Click Mount on any server card. The green dot indicates an active mount. Click Unmount to disconnect.

Use the folder icon to reveal the mounted directory in Finder.

Bulk operations

Use the checkboxes on each server card to select multiple servers. The bottom bar shows available actions: Clone, Export, and Delete.

Settings

Open settings via the gear icon or ⌘,:

  • Language - System, English, or Italian
  • Launch at login - Start the app when you log in
  • Unmount all on quit - Disconnect everything when closing
  • Show in menu bar - Run as a tray app (release builds)
  • Import / Export - Transfer servers and settings as JSON

Development

Requirements: Node.js 20+, pnpm 10+, and a stable Rust toolchain.

pnpm install
pnpm dev
pnpm test
pnpm run lint
pnpm run build:mac
pnpm run icons

pnpm run icons regenerates src-tauri/icons from resources/icon.svg.

Shared metadata lives in src/shared/:

  • app-info.json - product name, app id, slug, developer, GitHub URL, description, export format version
  • system-instructions.json - Homebrew install guidance
  • sshfs-defaults.json - default sshfs -o flags
  • src/locales/*.json - UI and native menu strings

App version lives in package.json only. pnpm run sync:meta (also run by dev / build) aligns Cargo.toml, Cargo.lock, tauri.conf.json, and npm package metadata.

Tech stack

Contributing

See CONTRIBUTING.md. Bug reports and feature requests use the GitHub issue templates.

License

ISC - Tommaso Meli

About

A simple macOS app to mount remote filesystems over SSH. No terminal needed — just point, click, and browse your remote files in Finder.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages