Skip to main content

pipedrag

Drag files found on the command line into any app that accepts drops:

find ~/Downloads -name '*.pdf' | pipedrag

pipedrag reads file paths from stdin (newline- or NUL-separated), opens a small window with a multi-file icon, and lets you drag it into Dolphin, a browser, a chat window … as if you had selected the files in a file manager.

Drops can be chunked (pipedrag -n 1000), most browser uploads have some sort of limit. Chunks already dropped are marked as "green".

$> find . -name '*.jpeg' -type f | pipedrag -n 1000

Pipedrag main window with drop target (website) in background

How to install a release version

Install as python image

If you have a working python/pip setup the easiest way is to install it with pip:

pip install pipedrag

Debian / Ubuntu

Debian packages can be downloaded from https://git.jtheuer.de/pipedrag/releases. Install the package as usual with:

sudo dpkg -i <filename.deb>

Development and contribution

Clone the repository and setup virtualenv locally. You can use the provided script:

make setup

Requires Python ≥ 3.10. If python3 -m venv fails on Debian/Ubuntu, install python3-venv first.

How the drop works

  • The drag speaks XDND — the same protocol Dolphin uses — via text/uri-list.
  • The dragged files are registered with the FileTransfer portal, so sandboxed targets (snap/Flatpak apps) can read them even from directories their sandbox blocks directly — e.g. snap Firefox silently denies dot-directories like ~/.local/share/. This is the same mechanism KDE/Dolphin uses.

Testing drag'n'drop

upload-test.html is a browser page that prints everything the browser exposes about dropped files (metadata, mime types, filesystem handle) and their SHA-256/SHA-384/SHA-512 checksums.

AI transparency

This project was largely coded with claude using the deepseek api. I couldn't have built a QT app so quickly and the drag'n'drop part with the portals was a lot more messy than expected.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipedrag-0.1.4.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pipedrag-0.1.4-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file pipedrag-0.1.4.tar.gz.

File metadata

  • Download URL: pipedrag-0.1.4.tar.gz
  • Upload date:
  • Size: 23.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for pipedrag-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f5e707b40c2b9a4d9045a15e3f14fcb20c49474e7b72c4b0f67db421e0e83cec
MD5 6c432addb301426794dc482192659f9f
BLAKE2b-256 e4b57df05491894e342a92f315fd3801fb3efdda8731765607ac767bf6f96164

See more details on using hashes here.

File details

Details for the file pipedrag-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: pipedrag-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for pipedrag-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7c54637740dddddf5ab3250c2222050dbb46764f78b1d85a63e016b1d865860b
MD5 e08fec21df5b2405003355a72d230040
BLAKE2b-256 65e64e18a0741fd8710f684242a9d6d0cec7361ed8e2c9ed02efd216337e984b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page