A clean, dual-pane SFTP client: browse local and remote side by side, transfer with a background queue, save sessions, compare and sync folders, and watch a local folder for auto-upload. Secure connections only.
Built by JDE-Projects.
If you enjoyed this project and would like to buy me a coffee, check out my Ko-fi.
- Dual-pane browser with breadcrumb paths, back/forward, recent locations, and an instant per-pane filter.
- Quick connect plus saved sessions (host, port, user, key path, start path; never a password).
- Key authentication, with a built-in generator for Ed25519 (default) or RSA-4096 key pairs.
- Background transfer queue with progress, ETA, resume, and auto-retry.
- Compare local vs remote, folder sync, and download-changed-only.
- Upload watcher: keep a remote folder up to date from a local one.
- Remote directory size calculation (on demand) and a connection health indicator.
- Built-in check for updates against GitHub Releases.
- Optional debug log, off by default, with credentials redacted.
- Secure transport only: weak or vulnerable algorithms are disabled, so the app connects securely or fails with a clear message (no unsafe fallback).
- Backend: paramiko over SSH/SFTP.
- Saved sessions:
servers.jsonnext to the app (no passwords). - Window: pywebview on the Qt backend, UI in
simple_sftp_client-UI.html.
Two ways to get it from the Releases page - pick one:
- Installer (recommended): download
SimpleSFTPClient-vX.Y.Z-setup.exeand run it. Installs the app, adds a Start menu shortcut, and can be removed later from Add or Remove Programs. Installs just for you by default (no admin); you can choose all users during setup. - Portable .zip: download
SimpleSFTPClient-vX.Y.Z.zip, extract it, and runSimple SFTP Client.exefrom inside the extracted folder. No install - good for a locked-down PC or a USB stick. Keep the folder together. Windows only, no Python or setup required. Unsigned, so SmartScreen may warn the first time: More info > Run anyway.
Simple SFTP Client doesn't update itself. The bottom bar has a Check for updates button that tells you when a newer release is out; when it does, get the new version from the Releases page the same way you first installed it.
- Installer: download the new
SimpleSFTPClient-vX.Y.Z-setup.exeand run it. It installs over your current copy and keeps your saved sessions and theme choice. - Portable .zip: download and extract the new
SimpleSFTPClient-vX.Y.Z.zip. To keep your saved sessions, copyservers.json,known_hosts, andsimple_sftp_client.preffrom the old folder into the new one.
Passwords remembered via "Remember password" live in the Windows Credential Manager, not the app folder, so they survive an update on the same machine; there's nothing else to carry over.
This release was built on GitHub from this public source, not on a personal machine, and is signed with a build-provenance attestation. To confirm your download is genuine, install the GitHub CLI and run:
gh attestation verify SimpleSFTPClient-vX.Y.Z.zip \
--repo JDE-Projects/Simple-SFTP-Client \
--signer-repo JDE-Projects/Build-Tools
A Verification succeeded! line means the file was built by the published
pipeline from this repo. You can also check the file against the published
.sha256.
- Python 3 on PATH.
pip install -r requirements.txt(pinned versions: PySide6, pywebview, paramiko, cryptography, keyring, and PyInstaller)- Keep
simple_sftp_client.py,simple_sftp_client-UI.html, thefonts/folder, the.ico,.png, and-splash.pngtogether. - Run from source:
python simple_sftp_client.py - Build the .exe:
Build_Simple_SFTP_Client.bat->dist\Simple SFTP Client\Simple SFTP Client.exe
- Enter host, port, and username, then a password or a private key. Connect. Verify the server fingerprint on first connection.
- Save the connection for one-click reconnect (optionally a start path).
- Browse the panes; transfer with the center arrows or drag-and-drop.
- Use Compare / Sync to reconcile folders, or the watcher to auto-upload local changes.
- Generate an Ed25519 or RSA key pair from the connection panel if you want to switch a host to key auth.
- Passwords and key passphrases live in memory only and are wiped on disconnect.
servers.jsonholds your saved sessions, never passwords. Treat it as sensitive: it maps your internal hosts and accounts, so don't share it publicly (in a bug report, forum post, or public repo).- "Remember password" is opt-in per session and stores the password in the
Windows Credential Manager (via
keyring), not in any file. - Only modern, secure key-exchange, ciphers, and MACs are offered; known-weak algorithms are disabled. There is no "compatibility" downgrade.
- Deleting a remote file or folder is permanent and cannot be undone; the app confirms first.
- The optional debug log is off by default; when on it writes
Debug_Log_MMDDYYYY_HHMMSS.txtnext to the app with credentials redacted.
This project was built with AI assistance. The design decisions, feature direction, and real-world testing were directed by me. The code was written and revised with an AI assistant against that direction. Treat it like any community tool: review and test it before relying on it.
Released under the PolyForm Noncommercial License 1.0.0 (see LICENSE). Personal and any noncommercial use, modification, and noncommercial redistribution are permitted; commercial use is not. Keep the copyright notice; no warranty. This tool bundles third-party code; see THIRD-PARTY-LICENSES.txt.
For commercial licensing, open a GitHub issue with the title "Commercial License Inquiry".
