skillfed

sftpretty

Pretty secure file transfer made easy.

sftpretty v1.2.2 183.1K downloads/30d#10,073 on PyPI44
Permissive 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) Active released

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 sftpretty

uv

uv add sftpretty

poetry

poetry add sftpretty

Installing 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

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

Tags

sftp client library pythonparamiko sftp wrappermulti-threaded file transferssh file transfer pythonsftp with progress notificationssftp retry and resumeed25519 ecdsa ssh keys
sftp-clientssh-file-transferasync-io

More Networking packages