S3UI
A native desktop file manager for Amazon S3 and S3-compatible services.
S3UI is a free, open-source, cross-platform desktop app that makes Amazon S3 feel like a local file system. It provides a dual-pane file manager — local files on the left, S3 on the right — with drag-and-drop transfers, large-file handling, and built-in cost tracking.
Works with Amazon S3, MinIO, and any S3-compatible storage.
Features
- Dual-pane browser — local filesystem and S3 side by side
- Drag and drop — drop files onto the S3 pane to upload
- Upload and download — right-click context menus or drag and drop
- New folder — toolbar button and context menu
- Multipart uploads — large files stream from disk in resumable parts
- Resume support — interrupted transfers pick up where they left off
- Transfer queue — pause, resume, cancel, and retry individual transfers
- Folder operations — recursive downloads and deletion, preserving folder structure
- Copy and rename — server-side copies with metadata preservation
- Share links — copy a presigned download URL
- Bucket-scoped credentials — enter a bucket directly when listing all buckets is restricted
- Cost tracking — estimates your monthly S3 costs as you work
- AWS CLI profiles — auto-discovers profiles from
~/.aws/config - Custom endpoints — connect to MinIO, LocalStack, or any S3-compatible service
- Secure credentials — stored in your OS keychain via
keyring - Setup wizard — guided first-run configuration
- Keyboard shortcuts — Ctrl+1/2 to switch panes, Ctrl+R to refresh, Ctrl+F to filter
- System notifications — notifies on large transfer completion when the app is in the background
Install
pip install s3ui
Requires Python 3.11+ and a running display server (X11, Wayland, macOS, or Windows).
System requirements
| Platform | Minimum version |
|---|---|
| Windows | Windows 10 |
| macOS | macOS 11 (Big Sur) |
| Linux | glibc 2.28+ (e.g. Ubuntu 20.04, Debian 10) with X11 or Wayland |
Windows 7 and 8.1 are not supported. S3UI bundles Python 3.12 (Python 3.9+ dropped Windows 7) and is built on Qt 6, which requires Windows 10 or later. On older Windows you'll see
Failed to load Python DLL … python312.dll— this is the OS limit, not a corrupt install.
Quick start
s3ui
On first launch, the setup wizard walks you through connecting your AWS account or S3-compatible service. You can also configure connections later from Settings.
MinIO example
In the setup wizard or Settings > Credentials > Add Profile:
| Field | Value |
|---|---|
| Profile Name | my-minio |
| Access Key ID | minioadmin |
| Secret Access Key | minioadmin |
| Region | us-east-1 |
| Endpoint URL | http://localhost:9000 |
Development
git clone https://github.com/justinGrosvenor/s3ui.git
cd s3ui
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pre-commit install
pytest
To run the release checks without a desktop session:
ruff check src/ tests/ scripts/
ruff format --check src/ tests/ scripts/
QT_QPA_PLATFORM=offscreen pytest
pip install build
python -m build
The repeatable local performance audit is python scripts/audit_hot_paths.py.
See the v1.1.0 review for findings, measurements,
and the remaining checks on live storage services and platform installers.
License
Release files for s3ui 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| s3ui-1.2.0.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| s3ui-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.7 MB
Release files / s3ui-1.2.0.tar.gz
| Download URL | s3ui-1.2.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a7574e4b46d1f026a99ad43f5ea4ad0af785405c2a6c30882747f84f7eedb01f
|
|
BLAKE2b-256 checksum How to use checksums |
83c7a197074b857203c56eb0302c1ba325adefb05d57955283e61ffddd62a5ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency logRelease files / s3ui-1.2.0-py3-none-any.whl
| Download URL | s3ui-1.2.0-py3-none-any.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e5188afdd533a94523a8fd98fd22b0ff46acdef8420bd1470d58899cace67096
|
|
BLAKE2b-256 checksum How to use checksums |
9611528fb0a48f02d4c4e0531f5a63d5fc81b614e3c254ee109cffc483dbaa80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency log