macSCP
A fast, native file-transfer client for the Mac — two panes side by side for SFTP, S3, and WebDAV, saved sessions, and a built-in terminal. Drag & drop, SSH key and agent auth, host-key pinning. Passwords live only in the macOS Keychain.
What it is
macSCP brings the classic two-pane file-transfer workflow to macOS as a true native app: browse your Mac on the left, your server on the right, and move files between them with drag and drop, buttons, or straight into the Finder. No Electron shell, no cloud account — a native SwiftUI app that keeps your credentials in the macOS Keychain only.
Highlights
- Three server protocols — SFTP over SSH, S3-compatible object storage (Hetzner presets, start at the bucket list), and WebDAV (Basic, Digest, and TLS auth; a one-click Nextcloud/ownCloud preset). Transfers between two different protocols in the same window work like any other.
- Two-pane browser — local and remote side by side, folder navigation by double-click, drag & drop in both directions (including dragging remote files straight into the Finder), a sortable Type column, and a checksum column that labels where every number came from.
- Saved sessions — one-click reconnect, groups and tags, and a click on a session shows its details before connecting: facts, recent connections, and its snippets with a one-click Run.
- Connection diagnostics — measure the path to a server step by step: name lookup, reachability, ping, the connection attempt, an IPv4 route trace, and protocol-specific checks. Copy the report as text or Markdown.
- Port forwarding — local, dynamic (SOCKS5), and remote forwardings as saved profiles per session, with optional automatic start at app start or at login.
- Integrated terminal & snippets — a real shell on the same connection, one keystroke (⌘T) away; snippets with declared variables, a dry run, and one-click Run that connects and sends.
- SSH key authentication — ed25519, RSA, and ECDSA keys, from a file or your
SSH agent, with or without passphrase; PEM private keys open directly, and the
key manager converts them to OpenSSH format on import. Entries from
~/.ssh/configappear automatically. - Host-key pinning — first-connect confirmation with the key fingerprint; a changed host key is a hard stop, never a dialog.
- Transfer queue — parallel transfers, conflict handling (overwrite / skip / rename / apply-to-all), recursive folders, resume after connection loss, per-direction bandwidth limits, cancel one or all.
- Command-line companion —
macscp-cliships inside the app: list, get, put, rm, mkdir, diagnose, sessions and tunnels from the terminal, with stable exit codes and shell completion. - Multiple windows — move a tab into a window of its own or drag it into another window, keep a window on top, and optionally restore your windows disconnected at launch.
- Edit remote files in place — double-click opens the file in your editor; saving uploads it back automatically.
- Import from Cyberduck — a preview lists every bookmark with a checkbox, already-imported sessions update instead of duplicating, and passwords can be copied over from Cyberduck’s keychain on request.
- English, German, French, and Polish interface.
Tech stack
- Swift 6 & SwiftUI, a native app on macOS 15+
- Citadel (SSH/SFTP) on SwiftNIO, swift-crypto for cryptography
- SwiftTerm for the integrated terminal
- Builds are signed and notarized
Download
Prebuilt builds are available straight from the releases page — download the DMG, open it, and drag macSCP into Applications. Requires macOS 15 or newer; the app is signed and notarized.
For developers
macSCP is a Swift package:
swift build -c release # build the binary
swift test # run the test suite
scripts/package-app # assembles macSCP.app under dist/
Integration tests expect the Docker SSH test rig from docker/test-server/
(MACSCP_ITEST=1).
Status & documentation
macSCP is LIVE and under active development. The full user documentation — getting started, a guide to every feature, and the CLI reference — lives at docs.noix.dev/macscp. Issues and PRs are welcome — github.com/NoiXdev/macSCP.