DEV Community

Cover image for Free sshfs GUI for macOS — mount remote folders in Finder
Tommaso Meli
Tommaso Meli

Posted on

Free sshfs GUI for macOS — mount remote folders in Finder

If you manage Linux servers from a Mac, you've probably been here:

sshfs user@host:/var/www ~/mnt/prod -o reconnect,auto_cache,noappledouble
Enter fullscreen mode Exit fullscreen mode

It works. Until you have four servers, a laptop that sleeps, and a LaunchAgent you copied from a gist two years ago.

I wanted real sshfs mounts in Finder — not another SFTP client, not SMB on the VPS — with saved configs and one-click mount/unmount. So I built SSHFS GUI: free, open source, signed macOS DMG.

The problem with sshfs on macOS

Linux makes this easy. On Mac, it's a stack:

  1. A FUSE implementation (FUSE-T or macFUSE)
  2. An sshfs binary (Homebrew core sshfs is Linux-only — you need fuse-t-sshfs or gromgit/fuse/sshfs-mac)
  3. Your mount command, local mount point, reconnect flags, auth

Finder can't mount SSH natively. Tools like Cyberduck are excellent for transfers, but a different workflow than "this remote path is a volume."

I kept rewriting the same commands. That felt like a small app problem, not a big framework problem.

What SSHFS GUI does

SSHFS GUI main window

  • Save servers — host, port, remote path, local mount point, auth method
  • One-click mount/unmount — still real sshfs under the hood
  • Keychain — passwords via keytar, never in plain JSON
  • SSH agent, key file, or password
  • Favorites & filters — all / favorites / mounted
  • Auto-mount on startup — per server
  • Menu bar mode — tray access in packaged builds
  • Import/export — move configs between Macs as JSON
  • EN + IT — i18next, system locale detection

The app also checks for missing FUSE/sshfs and points you to Homebrew install steps if something's missing.

Install FUSE + sshfs (once)

Pick one stack:

Option A — FUSE-T (no kext, often easiest on recent macOS):

brew tap macos-fuse-t/homebrew-cask
brew install --cask fuse-t fuse-t-sshfs
Enter fullscreen mode Exit fullscreen mode

Option B — macFUSE (classic stack):

brew install --cask macfuse
brew install gromgit/fuse/sshfs-mac
Enter fullscreen mode Exit fullscreen mode

On some FUSE-T setups, Finder needs extra flags (e.g. -o nonamedattr). You can add those in the app's SSHFS extra options field per server.

Install the app

  1. Download the signed DMG from GitHub Releases
  2. Drag SSHFS GUI to Applications
  3. Add a server → Mount → open in Finder

Source: github.com/tommasomeli/sshfsgui

How it's built

Solo side project, shipped with CI and notarized macOS builds.

Layer Choice
Shell Electron 41
Build electron-vite + Vite
UI React 19, TypeScript, Tailwind, shadcn/ui
State Zustand
Secrets keytar → macOS Keychain
i18n i18next (EN / IT)
Tests Vitest (path handling, import/export, sshfs args)
Release GitHub Actions → signed + notarized DMG

Interesting bits for fellow Electron devs:

  • Import/export logic lives in src/shared/ so Vitest runs on Linux CI without loading keytar
  • Tray menu uses the same i18n keys as the app menu — easy to miss the { name: appInfo.name } interpolation on quit
  • prebuild icon script skips on non-macOS so CI can electron-vite build on Ubuntu

What it's not

  • Not a replacement for Cyberduck or full SFTP workflows
  • Not "FUSE-free" — you still need FUSE-T or macFUSE + sshfs, same as CLI
  • Not cross-platform today — macOS only

Try it / feedback

I'd especially love to hear from anyone running FUSE-T vs macFUSE on Tahoe — mount stability after sleep is the edge case I care about most.

If you have a cleaner Mac sshfs workflow, tell me in the comments. Always looking to steal good ideas for v1.1.

SSHFS GUI Logo

SSHFS GUI UI

SSHFS GUI settings

Top comments (0)