Skip to main content

Local clipboard-envelope file transfer helper

Project description

FileClip

FileClip is a small local web app for moving one file through text clipboard synchronization. It packages a dropped file into a self-contained FILECLIP/1 text envelope, copies that envelope to the local clipboard, and can later hydrate a compatible envelope back into a downloadable file.

FileClip does not sync clipboards, upload files, or store file contents on disk. It assumes another system already syncs clipboard text between the environments you care about.

Install

For CLI use:

uv tool install fileclip

Or with pipx:

pipx install fileclip

Run

fileclip

By default the server binds to 127.0.0.1, chooses an available port, and opens the browser.

Useful options:

fileclip --port 8080
fileclip --no-open
fileclip --passphrase-prompt

Plain Mode

Without a passphrase, FileClip creates plain base64 clipboard envelopes. This is convenient for trusted local clipboard-sync paths, but the file bytes are visible to anything that can read the clipboard envelope.

Passphrase Mode

With --passphrase or --passphrase-prompt, FileClip encrypts file bytes in the browser with PBKDF2/SHA-256 and AES-GCM before building the clipboard envelope.

--passphrase-prompt avoids putting the passphrase in shell history or the process list. The browser still receives the passphrase through local launch configuration so it can encrypt and decrypt files. Passphrase mode is a practical guardrail, not a high-assurance security boundary.

Encrypted mode protects payload bytes but does not hide envelope metadata such as filename, MIME type, file size, or SHA-256 hash.

Limits

FileClip has no artificial file-size limit, but browsers, clipboards, clipboard managers, and external clipboard-sync channels do. Large payloads may fail to copy, paste, or sync.

Only schema 1 envelopes are supported. FileClip intentionally rejects unknown schema versions and mode mismatches.

Development

uv sync
uv run pytest
uv run fileclip --no-open

License

FileClip is distributed under the MIT License.

Project details


Download files

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

Source Distribution

fileclip-0.1.0.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

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

fileclip-0.1.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file fileclip-0.1.0.tar.gz.

File metadata

  • Download URL: fileclip-0.1.0.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fileclip-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c7736c786010f1c27ee6e340a5a1af3597da88ab064e33def33ca1d1155328b6
MD5 25e7f8811a80ff820ed316544382ba06
BLAKE2b-256 623979686d62594b97c4f7fb5ce613553ecf723a6a25577440b4732645427ccd

See more details on using hashes here.

File details

Details for the file fileclip-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fileclip-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fileclip-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a39eb7165a9b2e1cd5dfac9f09bd28010db0482d55cbf2ba0dbaeb41fa00548a
MD5 18160c1a40cb154583bbc63c133409c7
BLAKE2b-256 17b9f690470791a2b696ef36bc831a7024c61df92f030f38d012616feb5bb63c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page