sftpretty
Pretty secure file transfer made easy.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires paramiko >= 2.7.0; SSH server connectivity and valid credentials.
- 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 · maintenance · safety
permissive license (permissive) — BSD 3-Clause License permits commercial and private use with minimal restrictions; you must retain copyright notice and disclaimer in distributions.
last release 2026-05-11 (95 days) · last repo commit 2026-05-11 · 44 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 183,095 downloads/mo, #10,073 on PyPI
Alternatives
Verify before relying
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')- 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.
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 on it.
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
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).
Requires paramiko >= 2.7.0; SSH server connectivity and valid credentials.
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')
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 | permissive license permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageparamiko |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPython |
Evidence: sftpretty-1.2.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “multi-threaded file transfer”
- sftprettyA Python3 wrapper around paramiko that simplifies SFTP file transfers…
- connectorxConnectorX loads data from databases directly into Python dataframes…
- DrissionRecordBuffers and writes data to files (xlsx, csv, json, jsonl, sqlite,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also pysftp · scp · sysrsync · sftpserver · fs.sshfs · mock-ssh-server · sshfs · paramiko · files-com · asyncssh