Skip to content

Repository files navigation

RemoteDock

RemoteDock is a native macOS remote file manager for SFTP, WebDAV, object storage, and cloud drives.

It provides a desktop interface for browsing, transferring, previewing, editing, sharing, and synchronizing files across remote storage providers.

Download RemoteDock

Experimental Apple Silicon builds are available from GitHub Releases.

Download RemoteDock

Release artifacts are ad-hoc signed and are not notarized by Apple. Verify the adjacent .sha256 file before installing:

shasum -a 256 -c RemoteDock-*.dmg.sha256

Install the app:

  1. Download the latest .dmg release.
  2. Double-click the disk image to mount it.
  3. In the DMG Finder window, drag RemoteDock.app onto the Applications shortcut.
  4. Open RemoteDock from Finder or Launchpad.

If macOS reports that RemoteDock.app is damaged or cannot be opened, see First Launch on macOS.

Project Status

RemoteDock is an early-stage native macOS project. GitHub builds are intended for technically experienced testers and contributors.

APIs, data models, protocol behavior, and packaging may change between early releases.

Release Packaging

Create a drag-to-Applications disk image:

Scripts/create-dmg.sh

The script builds an arm64-only Release archive, verifies the app's architecture, ad-hoc signature, Hardened Runtime, App Sandbox entitlements, and final mounted DMG contents, then writes a .sha256 checksum beside the DMG.

The current GitHub release path intentionally does not use Developer ID signing or Apple notarization. A future broadly distributed release would require both.

Publishing a Release

GitHub Actions publishes releases automatically when a version tag is pushed.

Before tagging, update the app version in RemoteDock.xcodeproj so the Release build's MARKETING_VERSION matches the tag version. Pre-release tags such as v0.1.0-beta.1 are allowed; the workflow compares them against the base app version 0.1.0.

Use an annotated tag with a complete release message. The tag message becomes the GitHub Release changelog.

git tag -a v0.1.0-beta.1
git push origin v0.1.0-beta.1

The release workflow builds on GitHub's Apple Silicon macOS runner, runs Scripts/create-dmg.sh, verifies the generated checksum, and creates a GitHub Release containing the .dmg and .dmg.sha256 artifacts. Tags containing alpha, beta, or rc are published as GitHub pre-releases.

Release assets are named with the tag and target platform, for example RemoteDock-v0.1.0-beta.1-macos-arm64.dmg.

First Launch on macOS

GitHub builds are ad-hoc signed and not notarized, so Gatekeeper is expected to block a quarantined download. This is not a signing defect and the app is not claiming Apple trust.

After verifying the published SHA-256 checksum and source, technically experienced users can remove quarantine explicitly:

xattr -dr com.apple.quarantine /Applications/RemoteDock.app

Then open the app again:

open /Applications/RemoteDock.app

This command removes Gatekeeper quarantine metadata from the app bundle. It does not sign, notarize, or verify the app. Do not run it for an artifact whose checksum and origin you have not verified.

Requirements

  • macOS 26.5 or later on Apple Silicon (arm64)
  • A Mac with network access to the remote services you want to connect to
  • Your own credentials for each remote server or cloud provider

Features

  • Native macOS interface with sidebar navigation, menu commands, toolbar actions, and Quick Look previews
  • Bookmark management, connection history, Quick Connect, and path navigation
  • Remote directory browsing with list and outline views
  • Uploads, downloads, folder transfers, configurable parallel transfers, and transfer history
  • Create, rename, move, copy, and delete remote files or folders
  • Download files for local editing and upload edited copies back to the remote
  • Remote-to-local, local-to-remote, and mirror synchronization workflows
  • Recursive search, directory size calculation, file information, and selected custom metadata support
  • Google Workspace document export flow for Google Drive downloads
  • Temporary download URLs for supported object storage providers
  • Provider-managed download URLs and shared links for supported cloud drives
  • SFTP integration with an explicitly authorized ~/.ssh folder, including known_hosts lookup, selected ~/.ssh/config fields, and single-hop ProxyJump support
  • RemoteDock bookmark import/export and Cyberduck .duck bookmark import/export
  • Passwords, OAuth tokens, access keys, and other secrets stored in the macOS Keychain

Supported Connections

Type Authentication Notes
SFTP Password, private key Uses SwiftNIO SSH; grant ~/.ssh access once to use OpenSSH config, known_hosts defaults, referenced keys, and single-hop ProxyJump; encrypted private-key passphrases still have limitations
WebDAV / WebDAV HTTPS Password, anonymous Nextcloud reuses the WebDAV implementation
Nextcloud Password Supports Nextcloud URL parsing
Amazon S3 Access key Supports bucket/prefix paths
Google Cloud Storage Access key Supports bucket/prefix paths
Azure Blob Storage Access key Supports container/prefix paths
Backblaze B2 Access key Supports bucket/prefix paths
OneDrive OAuth Requires your own OAuth Client ID
Google Drive OAuth Requires your own OAuth Client ID
Dropbox OAuth Requires your own OAuth Client ID
Box OAuth Requires your own OAuth Client ID and Client Secret
Local Disk macOS folder permission Useful for local browsing and workflow testing

FTP, FTPS, SMB, OpenStack Swift, DRACOON, and other legacy surfaces are represented in parts of the internal model, but they are not currently available in the New Connection UI.

OAuth Setup

RemoteDock does not ship with shared OAuth credentials for third-party cloud providers.

For Google Drive, OneDrive, Dropbox, and Box:

  1. Create an app in the provider's developer console.

  2. Configure the provider-specific native app callback:

    • Google Drive: create a Desktop app OAuth client. RemoteDock uses an ephemeral http://127.0.0.1:<port> loopback redirect.
    • OneDrive: configure a Mobile and desktop application client that accepts an ephemeral http://127.0.0.1:<port> loopback redirect.
    • Dropbox: register remotedock://oauth/dropbox/callback.
    • Box: register remotedock://oauth/box/callback.
  3. Open RemoteDock.

  4. Create a new connection for the provider.

  5. Paste your OAuth Client ID or Client Secret into the fields shown in the New Connection UI.

Do not share personal or production OAuth credentials in public issues, screenshots, or support requests.

Security Notes

  • RemoteDock bookmark exports do not include passwords, tokens, secrets, or Keychain references.
  • Bookmark import rejects RemoteDock/Cyberduck files that contain sensitive fields.
  • Local folders, the OpenSSH directory, private keys, and known_hosts files use app-scoped security-scoped bookmarks for permission management.
  • Credentials are stored through the macOS Keychain.
  • Public issues should not include access keys, OAuth tokens, credential-bearing URLs, or private file paths.

Feedback, bug reports, and compatibility notes are welcome through GitHub Issues.

License

RemoteDock is licensed under the GNU Affero General Public License v3.0. See LICENSE for the full license text.

Copyright © 2026 Conight.

About

A native macOS app for browsing, transferring, previewing, editing, and syncing files across SFTP, WebDAV, object storage, and cloud drives.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages