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

screenshot1.png

How to install a release version

Install as python image

pip install pipedrag

Debian / Ubuntu

Download the latest release from https://git.jtheuer.de/pipedrop/releases and install it via

sudo dpkg -i <filename.deb>

Development and contribution

make setup          # creates .venv and installs the project + dev tools

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.

Drop inspector

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 — useful for verifying a drop end to end and cross-checking with sha256sum.

Notes

  • The drag starts from inside the mouse-press handler, as Qt requires on Wayland.

AI transparency

This project was largely coded via 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.2.tar.gz (23.1 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.2-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pipedrag-0.1.2.tar.gz
  • Upload date:
  • Size: 23.1 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.2.tar.gz
Algorithm Hash digest
SHA256 670aac4125129b1809a94c3824e2fc7ec88f5c3d25d4d1736db4705539978bec
MD5 198ce041fe5f3bdf49ce5ed3765d04cc
BLAKE2b-256 b71ca6161974b761c9c2aa049369b149d1d9b4275b1ec0e6c62983fa1881325e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pipedrag-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 22.3 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 053e17c6bc1c9b0115bca2541f68cba71cfbc14ced8a358ac96ea3cb4faeae42
MD5 d728b8ea834526cb7af9410b820d0499
BLAKE2b-256 cb9a37570909b4337fe358f994f2752b5403d71267b336f57fd11d83db69551a

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.4

2 files

This release

0.1.2 This release

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