sftpretty
Pretty secure file transfer made easy.
What it is and what it does
sftpretty is a Python3-optimized wrapper around paramiko's SFTP client that aims to reduce boilerplate and add practical features for reliable file transfers. It provides context managers for connection handling, built-in retry decorators with exponential backoff, transfer resumption, multi-threaded directory operations with progress callbacks, and support for modern SSH authentication (ED25519, ECDSA keys, private key passwords, OpenSSH config files). The library also exposes fine-grained control over SSH cipher, compression, digest, and key-exchange algorithms, and includes a hash function for integrity checking.
The package is intended for developers who need straightforward SFTP operations without wrestling with paramiko's lower-level API. It handles common patterns like recursive directory uploads/downloads, temporary directory changes, and file integrity verification. Multi-threading is opt-in via a workers parameter, and the library includes a thread-safe connection manager. It is actively maintained and tested on Python 3.6 through 3.14.
Use it for:
- Automated backup scripts that upload local directories to a remote SFTP server with retry logic and progress tracking.
- Downloading large files or directory trees from an SFTP server with automatic resumption on connection failure.
- Building deployment tools that need to transfer files over SSH with modern key types and custom cipher preferences.
- Batch file operations (rename, delete, stat) on remote SFTP servers with simplified context-manager syntax.
- Multi-threaded parallel transfers of many small files to reduce round-trip latency.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Python3 wrapper around paramiko that simplifies SFTP file transfers with multi-threaded operations, progress tracking, retry logic, and support for modern SSH key types and authentication methods.
Yes. sftpretty is a well-maintained, low-friction wrapper that genuinely simplifies common SFTP tasks. The single dependency (paramiko) is stable, the codebase is actively updated, there are no known vulnerabilities, and the BSD license is permissive. Install it if you need SFTP transfers with retry, resume, or multi-threading; skip it if you only need basic paramiko SFTP calls.
Install
sftpretty on PyPI
pip
pip install sftprettyuv
uv add sftprettypoetry
poetry add sftprettyInstalling sftpretty
Before you install
Low friction installation with a single pure-Python dependency (paramiko >= 2.7.0). Actively maintained as of 2026-05-11 with recent commits, though the project has modest visibility (44 stars).
License in practice
BSD 3-Clause License permits commercial and private use with minimal restrictions; you must retain copyright notice and disclaimer in distributions.
Quickstart
pip install sftpretty
from sftpretty import Connection
with Connection('hostname', username='me', password='secret') as sftp:
sftp.put('/my/local/filename')
sftp.get('remote_file')
Requires paramiko >= 2.7.0; SSH server connectivity and valid credentials.
Verify before relying
- Whether multi-threaded transfers are truly safe for all SFTP server implementations.
- Performance characteristics compared to direct paramiko or other SFTP libraries.
- Actual test coverage and stability of the retry and resume mechanisms.
Package facts
| License | BSD 3-Clause License Copyright (c) 2026, byteskeptical All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — paramiko |
| Maintenance | actively maintained — 95 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 183,095/month — #10,073 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: sftpretty-1.2.2-py3-none-any.whl
Keywords: file-transfer, file-transfer-protocol, ftp, paramiko, pysftp, scp, sftp, sftp-client, sftp-download, sftp-server, sftp-upload, ssh
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
pysftppysftp provides a high-level Python interface…
permissive · top 5,000 on PyPI
scpProvides file transfer over SSH using the SCP…
copyleft · top 5,000 on PyPI
sysrsyncWraps the system rsync command for Python,…
unclear · top 15,000 on PyPI
sftpserverProvides a simple single-threaded SFTP server…
permissive · top 15,000 on PyPI
fs.sshfsfs.sshfs provides a PyFilesystem2 interface to…
copyleft · top 15,000 on PyPI
mock-ssh-serverProvides a Python context manager that runs an…
permissive · top 15,000 on PyPI
sshfsProvides an fsspec-compatible filesystem…
permissive · top 5,000 on PyPI
paramikoParamiko is a pure-Python SSH protocol library…
copyleft · top 1,000 on PyPI
files-comPython client library for the Files.com API,…
permissive · top 15,000 on PyPI
asyncsshAsyncSSH provides an asynchronous SSH client…
copyleft · top 5,000 on PyPI