Back to projects
(03 Project Detail)

Pluck

Self-hosted ephemeral file sharing tool

Tools

C#ASP.NET CoreSpectre.ConsoleDockerSQLite

Links

Pluck is a lightweight, self-hosted ephemeral file-sharing application built with a Zero-Knowledge security model.

It consists of a self-hosted ASP.NET Core Web API and a C# CLI client featuring client-side AES-256 encryption, Spectre.Console UI formatting, terminal QR codes, download analytics, an interactive Admin TUI dashboard, file upload/download progress tracking, and clipboard integration.

How Pluck Works

Pluck is designed for temporary file sharing with little maintenance and a Zero-Knowledge security architecture:

  1. Client-Side Encryption: Every file or folder uploaded via pluck share is encrypted client-side using AES-256 before leaving your machine. If no custom password (--pwd) is provided, a 16-character encryption key is generated automatically and appended to the download URL fragment (#<key>). The server never receives or stores your plaintext files or encryption keys.
  2. Upload & Lifecycle Configuration: Set an optional Time-To-Live (--ttl in hours, default 24 hours), maximum download count (--downloads), custom vanity token (--token), or a custom encryption password (--pwd).
  3. Instant Link & QR Generation: The server returns the unique token and download link, which the CLI automatically copies to your clipboard and renders as a scannable terminal QR code.
  4. Automated Background Cleanup & Analytics: The Pluck API runs an automated background cleanup worker every 10 minutes, while logging download counts and client/geographic analytics.
  5. Permanent File Purging: A file is immediately rendered unavailable and permanently purged from disk storage and the database as soon as:
  • Its Time-To-Live (TTL) expires, or
  • Its remaining download limit reaches zero.