{"id":"91cce103-994b-44a7-a0d6-5f4d5d45cbbe","shortId":"RhnpwW","kind":"skill","title":"xdrop","tagline":"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, provides an Xdrop `/t/:transferId#k=...` link to download and decrypt locally, or needs Xdrop CLI flags such as `--quiet`, `","description":"Use the bundled scripts inside this skill directory.\n\n## Available scripts\n\n- `scripts/upload.mjs` — Upload local files or directories to an Xdrop server and print the share link\n- `scripts/download.mjs` — Download an Xdrop share link, decrypt it locally, and save the files\n\nEnvironment requirements:\n\n- Bun\n- Local filesystem access\n- Network access to the target Xdrop server\n\n## Upload\n\n```bash\nbun scripts/upload.mjs --server <xdrop-site-url> <file-or-directory> [...]\n```\n\nPrefer these flags when relevant:\n\n- `--quiet`: suppress progress output and keep stdout clean\n- `--json`: return `transferId`, `shareUrl`, and `expiresAt`\n- `--expires-in <seconds>`: choose a supported expiry\n- `--api-url <url>`: override the default `<server>/api/v1`\n- `--name <value>`: set the transfer display name\n- `--concurrency <n>`: limit parallel uploads per file\n\nUseful examples:\n\n```bash\nbun scripts/upload.mjs --server http://localhost:8080 ./dist/report.pdf\nbun scripts/upload.mjs --server http://localhost:8080 --quiet ./archive.zip\nbun scripts/upload.mjs --server http://localhost:8080 --expires-in 600 --json ./notes.txt\n```\n\nIf the user wants verification, upload a small temporary file and then confirm the public transfer API or browser can open the returned link.\n\n## Download\n\nRequire the full share link, including `#k=...`. Without the fragment key, the transfer cannot be decrypted.\n\n```bash\nbun scripts/download.mjs \"<share-url>\"\n```\n\nPrefer these flags when relevant:\n\n- `--output <dir>`: choose the destination directory\n- `--quiet`: suppress progress output and keep stdout clean\n- `--json`: return `transferId`, `outputRoot`, and saved file paths\n- `--api-url <url>`: override the default `<share-origin>/api/v1`\n\nUseful examples:\n\n```bash\nbun scripts/download.mjs \"http://localhost:8080/t/abc123#k=...\"\nbun scripts/download.mjs --output ./downloads \"http://localhost:8080/t/abc123#k=...\"\nbun scripts/download.mjs --quiet --json --output ./downloads \"http://localhost:8080/t/abc123#k=...\"\n```\n\nBy default the downloader writes to `./xdrop-<transferId>` and preserves the manifest's relative paths.\n\n## Gotchas\n\n- A download link without the `#k=...` fragment is not decryptable. Ask for the full original share URL.\n- Use `--quiet` whenever another command or caller needs to capture stdout. Progress logs otherwise go to stderr, but the final result still matters.\n\n## Guardrails\n\n- Prefer `--quiet` when another command or script needs to capture stdout.\n- Keep the full share link fragment intact for downloads.\n- Do not bypass the scripts' built-in path sanitization or transfer cleanup behavior with manual ad hoc commands unless the user explicitly asks.","tags":["xdrop","skills","xixu-me","agent-skills"],"capabilities":["skill","source-xixu-me","skill-xdrop","topic-agent-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/xixu-me/skills/xdrop","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add xixu-me/skills","source_repo":"https://github.com/xixu-me/skills","install_from":"skills.sh"}},"qualityScore":"0.476","qualityRationale":"deterministic score 0.48 from registry signals: · indexed on github topic:agent-skills · 53 github stars · SKILL.md body (2,671 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:57:51.665Z","embedding":null,"createdAt":"2026-04-18T20:23:44.325Z","updatedAt":"2026-05-18T18:57:51.665Z","lastSeenAt":"2026-05-18T18:57:51.665Z","tsv":"'/api/v1':138,254 '/archive.zip':166 '/dist/report.pdf':159 '/downloads':266,275 '/notes.txt':177 '/t':33 '/xdrop-':285 '600':175 '8080':158,164,171 '8080/t/abc123':261,268,277 'access':93,95 'ad':371 'anoth':314,338 'api':133,194,249 'api-url':132,248 'ask':21,304,378 'autom':23 'avail':58 'bash':102,153,219,257 'behavior':368 'browser':196 'built':361 'built-in':360 'bun':90,103,154,160,167,220,258,263,270 'bundl':52 'bypass':357 'caller':317 'cannot':216 'captur':320,344 'choos':128,228 'clean':118,239 'cleanup':367 'cli':45 'command':315,339,373 'concurr':145 'confirm':190 'decrypt':40,81,218,303 'default':137,253,280 'destin':230 'directori':57,65,231 'display':143 'download':38,76,202,282,295,354 'encrypt':24 'environ':88 'exampl':152,256 'expir':126,173 'expires-in':125,172 'expiresat':124 'expiri':131 'explicit':377 'fetch':12 'file':13,63,87,150,187,246 'filesystem':92 'final':330 'flag':46,108,224 'fragment':212,300,351 'full':205,307,348 'go':325 'gotcha':293 'guardrail':334 'hoc':372 'includ':208 'insid':54 'intact':352 'json':119,176,240,273 'k':35,209,262,269,278,299 'keep':116,237,346 'key':213 'limit':146 'link':28,36,74,80,201,207,296,350 'local':41,62,83,91 'localhost':157,163,170,260,267,276 'log':323 'manifest':289 'manual':370 'matter':333 'name':139,144 'need':43,318,342 'network':94 'open':198 'origin':308 'otherwis':324 'output':114,227,235,265,274 'outputroot':243 'overrid':135,251 'parallel':147 'path':247,292,363 'per':149 'prefer':106,222,335 'preserv':287 'print':71 'progress':113,234,322 'provid':30 'public':192 'quiet':49,111,165,232,272,312,336 'relat':291 'relev':110,226 'requir':89,203 'result':331 'return':120,200,241 'sanit':364 'save':85,245 'script':53,59,341,359 'scripts/download.mjs':75,221,259,264,271 'scripts/upload.mjs':60,104,155,161,168 'send':10 'server':17,69,100,105,156,162,169 'set':140 'share':27,73,79,206,309,349 'share-link':26 'shareurl':122 'skill':4,56 'skill-xdrop' 'small':185 'source-xixu-me' 'stderr':327 'stdout':117,238,321,345 'still':332 'support':130 'suppress':112,233 'target':98 'temporari':186 'termin':20 'topic-agent-skills' 'transfer':142,193,215,366 'transferid':34,121,242 'unless':374 'upload':61,101,148,183 'url':134,250,310 'use':2,50,151,255,311 'user':7,180,376 'verif':182 'want':8,181 'whenev':313 'without':210,297 'workflow':29 'write':283 'xdrop':1,16,25,32,44,68,78,99","prices":[{"id":"8934b775-cdd7-4c86-8a3c-a9c43a752bc0","listingId":"91cce103-994b-44a7-a0d6-5f4d5d45cbbe","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"xixu-me","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:23:44.325Z"}],"sources":[{"listingId":"91cce103-994b-44a7-a0d6-5f4d5d45cbbe","source":"github","sourceId":"xixu-me/skills/xdrop","sourceUrl":"https://github.com/xixu-me/skills/tree/main/skills/xdrop","isPrimary":false,"firstSeenAt":"2026-04-18T22:19:21.899Z","lastSeenAt":"2026-05-18T18:57:51.665Z"},{"listingId":"91cce103-994b-44a7-a0d6-5f4d5d45cbbe","source":"skills_sh","sourceId":"xixu-me/skills/xdrop","sourceUrl":"https://skills.sh/xixu-me/skills/xdrop","isPrimary":true,"firstSeenAt":"2026-04-18T20:23:44.325Z","lastSeenAt":"2026-05-07T22:40:12.227Z"}],"details":{"listingId":"91cce103-994b-44a7-a0d6-5f4d5d45cbbe","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"xixu-me","slug":"xdrop","github":{"repo":"xixu-me/skills","stars":53,"topics":["agent-skills"],"license":"mit","html_url":"https://github.com/xixu-me/skills","pushed_at":"2026-04-07T20:37:52Z","description":"Agent Skills maintained by me for practical engineering work","skill_md_sha":"dcb72fa7ae7a266820c7ce4263c6265256647514","skill_md_path":"skills/xdrop/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/xixu-me/skills/tree/main/skills/xdrop"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"xdrop","description":"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, provides an Xdrop `/t/:transferId#k=...` link to download and decrypt locally, or needs Xdrop CLI flags such as `--quiet`, `--json`, `--expires-in`, `--output`, or `--api-url`, even if they do not explicitly mention the skill name."},"skills_sh_url":"https://skills.sh/xixu-me/skills/xdrop"},"updatedAt":"2026-05-18T18:57:51.665Z"}}