Desk
The remote desktop app made for iPhone Duo.
ShuttleSCP: a graphical SFTP, SCP and FTP client for Linux, macOS and Windows, inspired by WinSCP.
OtherGitHub @dsalvadoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
A graphical SFTP, SCP and FTP/FTPS client for Linux, macOS and Windows, inspired by WinSCP. Two panes, drag and drop, resumable transfers. Rust and GTK 4.
Taken from the repository README
Loading the full README.
Read the full README ↗A graphical SFTP and FTP client for Linux, macOS and Windows, inspired by WinSCP: your computer's files on the left, the server's on the right, and copying between them is a drag, a right-click or a key press away.
Written in Rust with relm4 and GTK 4.
Status: public beta. It is used day to day on Linux and macOS, and the Windows version is new; feedback is very welcome: please open an issue. See the changelog for what each release brought.
Connections
.ppk, with its
passphrase if protected) or the keys of an SSH agent (the desktop's; on Windows,
Windows' OpenSSH agent or PuTTY's Pageant).Files
notes:v2.txt)
is downloaded with the character written as %3A, as WinSCP does.Transfers
Everything else
ShuttleSCP's interface is in English, French, Spanish, German, Brazilian Portuguese and Simplified Chinese. Pick one in File › Preferences (Ctrl+,), then restart ShuttleSCP.
The translations other than English were made with AI and have not yet been reviewed by native speakers, so they may contain mistakes; each is marked "machine translation" in the language list until someone has checked it. Corrections, and new languages, are very welcome: see CONTRIBUTING.md. Messages that come from servers or the system, and a few from deep inside the program (such as some error messages), are still in English.
On Linux, Chinese needs a Chinese font, which most desktops install (for example Noto
Sans CJK, fonts-noto-cjk on Debian and Ubuntu); without one, the text shows as empty
boxes.
Download the AppImage from the ShuttleSCP web page or the latest release. It is one file holding ShuttleSCP and everything it needs, for 64-bit Linux from 2020 on (it is tested on Ubuntu 20.04, 22.04 and 24.04 and on Debian 12 and 13; Fedora, Linux Mint and the like work the same way):
chmod +x ShuttleSCP-*-x86_64.AppImage
./ShuttleSCP-*-x86_64.AppImage
The first run adds ShuttleSCP to your desktop's app launcher. It checks for new versions (at most once a day; Help › Check for Updates to check now, or to turn it off), shows a new one in the status bar, and installs it only when it is signed with the ShuttleSCP release key. An update can wait until running transfers finish.
Download the disk image (.dmg) from the ShuttleSCP web page
or the latest release, open it
and drag ShuttleSCP onto Applications. It runs on Macs with Apple silicon (M1 or later)
and macOS 26 (Tahoe) or newer.
ShuttleSCP is not signed with a paid Apple Developer ID, so the first time macOS asks to confirm it: right-click (or Control-click) ShuttleSCP in Applications, choose Open, then Open again. If it only offers "Move to Trash", open System Settings › Privacy & Security and click "Open Anyway". It checks for new versions and offers to download them; it does not replace itself.
Download the installer (ShuttleSCP-…-windows-x64-setup.exe) from the
ShuttleSCP web page or the
latest release and run it. It
installs ShuttleSCP for your user only (no administrator rights needed), with a Start
menu entry and an uninstaller under Settings › Apps. It runs on 64-bit Windows 10 and 11.
The installer is not signed yet (see Code signing policy), so the first time Windows SmartScreen may say "Windows protected your PC": click "More info", then "Run anyway". ShuttleSCP checks for new versions and, when you agree, downloads the new installer (checked against the ShuttleSCP release key), runs it and restarts.
You can also build it from source, as described below.
You need:
Rust 1.88 or newer (rustup.rs).
GTK 4 (4.14 or newer) development files, and a C compiler:
| Distribution | Command |
|---|---|
| Debian, Ubuntu, Mint, Zorin | sudo apt install build-essential libgtk-4-dev |
| Fedora | sudo dnf install gcc gtk4-devel |
| Arch, Manjaro | sudo pacman -S base-devel gtk4 |
To save passwords: a desktop keyring that speaks the Secret Service protocol (GNOME Keyring or KWallet, which most desktops already run).
On macOS, GTK 4 and the rest come from Homebrew:
packaging/macos/install-build-deps.sh installs them (plus the Xcode command line
tools, xcode-select --install). Passwords go to the login Keychain.
On Windows, GTK 4 and the rest come from MSYS2, and Rust builds
with its GNU toolchain (rustup toolchain install stable-x86_64-pc-windows-gnu): in an
MSYS2 UCRT64 shell, packaging/windows/install-build-deps.sh installs them, and
cargo +stable-x86_64-pc-windows-gnu run --release builds and runs it. Passwords go to
the Credential Manager. See BUILDING.md for the details.
Then:
git clone https://github.com/dsalvado/shuttlescp.git
cd shuttlescp
cargo run --release
The program is target/release/shuttlescp. To build the AppImage yourself, run
packaging/linux/build-appimage.sh; on a Mac, packaging/macos/build-dmg.sh builds the
self-contained app and its disk image, and packaging/macos/run-dev.sh runs a debug
build as an app (cargo run starts it without its Dock icon); on Windows,
packaging/windows/build-bundle.sh and build-installer.sh build the program folder
and its installer. See BUILDING.md for release builds
and the build information shown in the app, and docs/RELEASING.md
for how releases are made, signed and published.
| What | Where |
|---|---|
| Settings and saved sites | ~/.config/shuttlescp/ (macOS: ~/Library/Application Support/shuttlescp/; Windows: %APPDATA%\shuttlescp\) |
| Log and unfinished transfers | ~/.local/state/shuttlescp/ (macOS: ~/Library/Application Support/shuttlescp/; Windows: %LOCALAPPDATA%\shuttlescp\) |
| Passwords | Your desktop keyring, under "ShuttleSCP" (macOS: the login Keychain, under "shuttlescp"; Windows: the Credential Manager, under "shuttlescp:…") |
crates/shuttlescp-core: everything that is not the user interface (sites,
settings, the keyring, SSH, SFTP and FTP, the transfer engine, logging). It does not
depend on GTK, so other front ends can reuse it.crates/shuttlescp-gtk: the front end for Linux, macOS and Windows, built with relm4
and GTK 4.packaging/linux, packaging/macos, packaging/windows: the AppImage, the macOS app
and disk image, and the Windows program folder and installer.Run the tests with cargo test --workspace.
ShuttleSCP was built with Claude Code, Anthropic's AI coding agent, and I want to be upfront about that. I moved my laptop from Windows 10 to Linux and missed WinSCP, which does not run well under Wine, so I set out to build the tool I wanted, in Rust, and to use the project to learn modern project engineering with AI tools.
The split of work: Claude wrote the code, tests and documentation. I decided what to
build and how it should look and behave, reviewed every change, tested it against my own
servers, and made the calls on design, security and releases (for example signed
updates, keeping the core free of GTK for other platforms, and publishing under the GPL).
Commits made with Claude carry a Co-Authored-By: Claude line, so the history shows
exactly which they are.
I'm David Salvador; more about me at dsalvado.ca.
The Windows program and installer are not signed with a code-signing certificate yet, which is why Windows SmartScreen asks before running the installer the first time.
Please report security problems privately, as described in SECURITY.md, rather than in a public issue.
ShuttleSCP is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE.