Use this skill when the user wants to send or fetch files through an Xdrop server from the terminal, asks to automate encrypted Xdrop share-link workflows,…
SaferSkills independently audited xdrop (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use the bundled scripts inside this skill directory.
scripts/upload.mjs — Upload local files or directories to an Xdrop server and print the share linkscripts/download.mjs — Download an Xdrop share link, decrypt it locally, and save the filesEnvironment requirements:
bun scripts/upload.mjs --server <xdrop-site-url> <file-or-directory> [...]Prefer these flags when relevant:
--quiet: suppress progress output and keep stdout clean--json: return transferId, shareUrl, and expiresAt--expires-in <seconds>: choose a supported expiry--api-url <url>: override the default <server>/api/v1--name <value>: set the transfer display name--concurrency <n>: limit parallel uploads per fileUseful examples:
bun scripts/upload.mjs --server http://localhost:8080 ./dist/report.pdf
bun scripts/upload.mjs --server http://localhost:8080 --quiet ./archive.zip
bun scripts/upload.mjs --server http://localhost:8080 --expires-in 600 --json ./notes.txtIf the user wants verification, upload a small temporary file and then confirm the public transfer API or browser can open the returned link.
Require the full share link, including #k=.... Without the fragment key, the transfer cannot be decrypted.
bun scripts/download.mjs "<share-url>"Prefer these flags when relevant:
--output <dir>: choose the destination directory--quiet: suppress progress output and keep stdout clean--json: return transferId, outputRoot, and saved file paths--api-url <url>: override the default <share-origin>/api/v1Useful examples:
bun scripts/download.mjs "http://localhost:8080/t/abc123#k=..."
bun scripts/download.mjs --output ./downloads "http://localhost:8080/t/abc123#k=..."
bun scripts/download.mjs --quiet --json --output ./downloads "http://localhost:8080/t/abc123#k=..."By default the downloader writes to ./xdrop-<transferId> and preserves the manifest's relative paths.
#k=... fragment is not decryptable. Ask for the full original share URL.--quiet whenever another command or caller needs to capture stdout. Progress logs otherwise go to stderr, but the final result still matters.--quiet when another command or script needs to capture stdout.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.