{"id":"4b186c98-2e61-4e04-8daa-c54774ba9097","shortId":"wdrLE7","kind":"skill","title":"anonymous-file-upload","tagline":"Upload and host files anonymously using decentralized storage with Originless and IPFS.","description":"# Originless Agent Skill\n# Decentralized File Storage & Anonymous Content Hosting\n# Source: https://github.com/besoeasy/Originless\n\n## Overview\nOriginless is a privacy-first, decentralized file hosting backend using IPFS.\n\n**Key Principles:**\n- Anonymous uploads (no accounts, no tracking)\n- Persistent, censorship-resistant content via IPFS\n- Client-side encryption for sensitive data\n- Decentralized authentication (Daku)\n\n**Endpoints:**\n- Self-hosted: http://localhost:3232 (Docker recommended)\n- Public gateway: https://filedrop.besoeasy.com\n- Blossom fallback servers:\n  - https://blossom.primal.net\n  - https://24242.io/\n\nIf Docker is available, the best setup is running Originless locally:\n\n```bash\ndocker run -d --restart unless-stopped --name originless \\\n  -p 3232:3232 \\\n  -p 4001:4001/tcp \\\n  -p 4001:4001/udp \\\n  -v originlessd:/data \\\n  -e STORAGE_MAX=200GB \\\n  ghcr.io/besoeasy/originless\n```\n\nThat is where `http://localhost:3232/upload` comes from in the examples below.\n\n---\n\n## Skills\n\n### upload_file_anonymously\n\nUpload a local file to Originless/IPFS.\n\nFor `.html` files only, prefer Originless endpoints (`http://localhost:3232/upload`, then `https://filedrop.besoeasy.com/upload`) and do not route HTML uploads to Blossom fallback servers.\n\nOriginless `/upload` expects a real `multipart/form-data` request with a file part named exactly `file`.\nPrefer `curl -F` for this, since it handles multipart boundaries/headers correctly by default.\nIf another client/runtime is used, it must fully replicate `curl -F \"file=@...\"` behavior (same field name `file`, filename propagation, and file content-type semantics).\n\n**Usage:**\n```bash\n# HTML upload (Originless only)\ncurl -X POST -F \"file=@/path/to/index.html\" http://localhost:3232/upload || \\\ncurl -X POST -F \"file=@/path/to/index.html\" https://filedrop.besoeasy.com/upload\n\n# Self-hosted\ncurl -X POST -F \"file=@/path/to/file.pdf\" http://localhost:3232/upload\n\n# Public gateway\ncurl -X POST -F \"file=@/path/to/file.pdf\" https://filedrop.besoeasy.com/upload\n\n# Fallback strategy for non-HTML files (Originless first, then Blossom servers)\nSERVERS=(\n  \"http://localhost:3232/upload\"\n  \"https://filedrop.besoeasy.com/upload\"\n  \"https://blossom.primal.net/upload\"\n  \"https://24242.io/upload\"\n)\n\nMAX_RETRIES=7\nfor ((i=0; i<MAX_RETRIES; i++)); do\n  idx=$((i % ${#SERVERS[@]}))\n  target=\"${SERVERS[$idx]}\"\n  echo \"Trying: $target\"\n\n  if curl -fsS -X POST -F \"file=@/path/to/file.pdf\" \"$target\"; then\n    echo \"Upload succeeded via $target\"\n    break\n  fi\n\n  if [[ $i -eq $((MAX_RETRIES-1)) ]]; then\n    echo \"All upload attempts failed after $MAX_RETRIES retries\"\n    exit 1\n  fi\ndone\n```\n\n**Response:**\n```json\n{\n  \"status\": \"success\",\n  \"cid\": \"QmX5ZTbH9uP3qMq7L8vN2jK3bR9wC4eF6gD7h\",\n  \"url\": \"https://dweb.link/ipfs/QmX5ZTbH9uP3qMq7L8vN2jK3bR9wC4eF6gD7h?filename=file.pdf\",\n  \"size\": 245678,\n  \"type\": \"application/pdf\",\n  \"filename\": \"file.pdf\"\n}\n```\n\n**When to use:**\n- User asks to upload/share a file anonymously\n- Need permanent, account-free storage\n- Sharing files without creating accounts\n- Originless endpoint is down or rate-limited, and you need fallback servers\n\n**Blossom compatibility note:**\n- Some Blossom/Nostr media servers may use slightly different upload routes or auth requirements.\n- If `/upload` fails, probe server capabilities first (for example `/.well-known/nostr/nip96.json`) and adapt to server-specific upload endpoints.\n\n---\n\n### mirror_web_content\n\nMirror remote URL content to IPFS.\n\n**Usage:**\n```bash\ncurl -X POST http://localhost:3232/remoteupload \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com/image.png\"}'\n```\n\n**When to use:**\n- User wants to backup/arch web content\n- Preserving content that might be taken down\n- Creating permanent mirrors of online resources\n\n---\n\n### share_encrypted_content\n\nCreate client-side encrypted uploads for private sharing.\n\n**Workflow:**\n1. Encrypt content client-side (AES-GCM with Web Crypto API)\n2. Upload ciphertext to Originless\n3. Generate share link: `{cid}#{decryption_key}`\n4. Recipient decrypts locally\n\n**Example:**\n```javascript\nconst encrypted = await encryptWithPassphrase(content, passphrase);\nconst response = await fetch('http://localhost:3232/upload', {\n  method: 'POST',\n  body: formDataWithEncrypted(encrypted)\n});\nconst shareLink = `${response.url}#${passphrase}`;\n```\n\nFor Originless `/upload`, ensure `formDataWithEncrypted(encrypted)` builds true multipart form-data and appends the payload under the `file` field, equivalent to `curl -F`.\n\n**When to use:**\n- User wants private file sharing\n- Sensitive content that must remain confidential\n- Content that even the server shouldn't be able to read\n\n---\n\n### manage_persistent_pins\n\nPin CIDs for permanent storage (requires Daku authentication).\n\n**Generate Daku Credentials:**\n```bash\nnode -e \"const { generateKeyPair } = require('daku'); const keys = generateKeyPair(); console.log('Public:', keys.publicKey); console.log('Private:', keys.privateKey);\"\n```\n\n**Pin a CID:**\n```bash\ncurl -X POST http://localhost:3232/pin/add \\\n  -H \"daku: YOUR_DAKU_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"cids\": [\"QmHash1\", \"QmHash2\"]}'\n```\n\n**List pins:**\n```bash\ncurl -H \"daku: YOUR_DAKU_TOKEN\" http://localhost:3232/pin/list\n```\n\n**Remove pin:**\n```bash\ncurl -X POST http://localhost:3232/pin/remove \\\n  -H \"daku: YOUR_DAKU_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"cid\": \"QmHash\"}'\n```\n\n**When to use:**\n- User wants content to persist forever\n- Preventing garbage collection of important files\n- Managing a personal content library\n\n---\n\n## Decision Tree\n\n```\nUser wants to share file?\n├─ Must content persist permanently?\n│  ├─ YES → Use Originless/IPFS with pinning\n│  └─ NO → Continue below\n│\n├─ Is file type HTML?\n│  ├─ YES → Upload only to Originless endpoints (localhost/filedrop), no Blossom fallback\n│  └─ NO → Continue standard flow below\n│\n├─ File size check:\n│  ├─ > 10 GB → Use Originless/IPFS only\n│  ├─ 512 MB - 10 GB → Use transfer.sh or Originless\n│  ├─ < 512 MB → All services available\n│  └─ Continue based on duration needs\n│\n├─ How long must file be available?\n│  ├─ Permanent → Originless/IPFS with pinning\n│  ├─ Up to 1 year → 0x0.st or Originless\n│  ├─ Up to 14 days → transfer.sh\n│  └─ Temporary → Any service\n│\n├─ Is privacy critical?\n│  ├─ YES → Use encrypted content sharing (client-side encryption) + Originless\n│  │        OR use transfer.sh with GPG encryption\n│  └─ NO → Continue to simple upload\n│\n├─ Need download tracking/limits?\n│  ├─ YES → Use transfer.sh\n│  └─ NO → Continue to simple upload\n│\n├─ Quick temporary share?\n│  ├─ YES → temp.sh (3 days, up to 4GB) or 0x0.st (365 days, up to 512MB)\n│  └─ NO → Originless for reliability\n│\n├─ Did primary upload fail?\n│  ├─ YES → Try fallback: transfer.sh → 0x0.st → temp.sh → Blossom servers\n│  └─ NO → Continue with returned URL/CID\n│\n└─ Is content already online?\n   ├─ YES → Use Originless /remoteupload to mirror it\n   └─ NO → Direct upload\n```\n\n---\n\n## Alternative Anonymous File Hosts\n\n### upload_to_0x0\n\nUpload files to 0x0.st - a simple, no-frills file hosting service.\n\n**Features:**\n- No registration required\n- Files expire after 365 days (1 year)\n- Maximum file size: 512 MB\n- Simple HTTP upload\n\n**Usage:**\n```bash\n# Basic upload\ncurl -F \"file=@/path/to/file.pdf\" https://0x0.st\n\n# With custom filename\ncurl -F \"file=@/path/to/data.json\" https://0x0.st\n\n# Upload with custom expiration (in days, max 365)\ncurl -F \"file=@/path/to/image.png\" -F \"expires=30\" https://0x0.st\n\n# Upload with secret token for deletion\ncurl -F \"file=@/path/to/document.pdf\" -F \"secret=\" https://0x0.st\n```\n\n**Response:**\nReturns a direct URL to the uploaded file:\n```\nhttps://0x0.st/XaBc.pdf\n```\n\n**Delete uploaded file (if secret token was provided):**\n```bash\ncurl -F \"token=YOUR_SECRET_TOKEN\" -F \"delete=\" https://0x0.st/XaBc.pdf\n```\n\n**When to use:**\n- Quick temporary file sharing (up to 1 year)\n- Smaller files (under 512 MB)\n- When IPFS persistence is not needed\n- Simple paste/screenshot sharing\n- Quick file transfers without accounts\n\n**Limitations:**\n- Files expire after 365 days maximum\n- Not decentralized (single service)\n- No encryption built-in\n- Files can be taken down\n\n---\n\n### upload_to_temp_sh\n\nUpload files to temp.sh — a simple, no-auth file sharing service.\n\n**Features:**\n- No registration required\n- Files expire after 3 days\n- Maximum file size: 4 GB\n- Simple HTTP POST upload via curl\n\n**Usage:**\n```bash\n# Basic upload\ncurl -F \"file=@/path/to/file.pdf\" https://temp.sh/upload\n\n# Any file type\ncurl -F \"file=@video.mp4\" https://temp.sh/upload\n\n# Upload from stdin (text)\necho \"Hello world\" | curl -F \"file=@-\" https://temp.sh/upload\n\n# Upload directory (tar first)\ntar czf - mydir/ | curl -F \"file=@-;filename=mydir.tar.gz\" https://temp.sh/upload\n```\n\n**Response:**\nReturns a direct download URL:\n```\nhttps://temp.sh/abc123\n```\n\n**Download:**\n```bash\ncurl -L https://temp.sh/abc123 -o file.pdf\n```\n\n**ShareX config (Windows):**\n```yaml\n# Download from https://temp.sh/temp.sh.sxcu\n```\n\n**When to use:**\n- Quick temporary file sharing (up to 3 days)\n- Medium files (up to 4 GB)\n- CLI-only workflows / piping\n- No account needed\n\n**Limitations:**\n- Files expire after 3 days (shortest of all options)\n- Not decentralized (single service)\n- No encryption built-in\n- No download tracking\n\n---\n\n### upload_to_transfer_sh\n\nUpload files to transfer.sh - a popular temporary file hosting service.\n\n**Features:**\n- No registration required\n- Files expire after 14 days by default\n- Maximum file size: 10 GB\n- Supports encryption with GPG\n- Download count tracking\n\n**Usage:**\n```bash\n# Basic upload\ncurl --upload-file /path/to/file.pdf https://transfer.sh/file.pdf\n\n# Upload with custom expiration (max 14 days)\ncurl --upload-file /path/to/image.png https://transfer.sh/image.png?expires=7d\n\n# Download count limit\ncurl --upload-file /path/to/data.zip https://transfer.sh/data.zip?downloads=5\n\n# Upload with encryption (requires gpg)\ncat /path/to/secret.txt | gpg -ac -o- | curl -X PUT --upload-file \"-\" https://transfer.sh/secret.txt.gpg\n\n# Upload from stdin\ncat /path/to/file.txt | curl --upload-file \"-\" https://transfer.sh/file.txt\n\n# Upload directory (tar + gzip)\ntar czf - /path/to/directory | curl --upload-file \"-\" https://transfer.sh/directory.tar.gz\n\n# Multiple files\ncurl --upload-file /path/to/file1.txt https://transfer.sh/file1.txt && \\\ncurl --upload-file /path/to/file2.txt https://transfer.sh/file2.txt\n```\n\n**Response:**\nReturns a direct URL to the uploaded file:\n```\nhttps://transfer.sh/random/file.pdf\n```\n\n**Download uploaded file:**\n```bash\ncurl https://transfer.sh/random/file.pdf -o file.pdf\n\n# Download and decrypt (if encrypted with gpg)\ncurl https://transfer.sh/random/secret.txt.gpg | gpg -d > secret.txt\n```\n\n**Advanced options:**\n```bash\n# Get download count\ncurl -H \"X-Transfer-Count: true\" https://transfer.sh/random/file.pdf\n\n# Upload with basic auth protection\ncurl -u username:password --upload-file /path/to/file.pdf https://transfer.sh/file.pdf\n```\n\n**When to use:**\n- Temporary file sharing (up to 14 days)\n- Large files up to 10 GB\n- Quick transfers without persistence needs\n- Download count tracking required\n- Built-in GPG encryption for sensitive data\n- Sending files with expiration/download limits\n\n**Limitations:**\n- Files expire after 14 days maximum\n- Not decentralized (single service)\n- No permanent storage\n- Service availability depends on infrastructure\n\n**Comparison:**\n\n| Service | Max Size | Max Duration | Encryption | Persistence | Best For |\n|---------|----------|--------------|------------|-------------|----------|\n| **temp.sh** | 4 GB | 3 days | None | Temporary | Quick shares, medium files |\n| **Originless/IPFS** | ~200GB (configurable) | Permanent (if pinned) | Client-side | Decentralized | Long-term, censorship-resistant |\n| **transfer.sh** | 10 GB | 14 days | GPG optional | Temporary | Large temporary files |\n| **0x0.st** | 512 MB | 365 days | None | Temporary | Quick sharing, small files |\n\n---\n\n## Quick Reference\n\n**Originless/IPFS Endpoints:**\n\n| Endpoint | Method | Auth | Purpose |\n|----------|--------|------|---------|\n| `/upload` | POST | No | Upload local file |\n| `/remoteupload` | POST | No | Mirror remote URL |\n| `/pin/add` | POST | Daku | Pin CID permanently |\n| `/pin/list` | GET | Daku | List pinned CIDs |\n| `/pin/remove` | POST | Daku | Unpin a CID |\n\n**Alternative Services Quick Commands:**\n\n| Service | Upload Command | Max Size | Expiration |\n|---------|----------------|----------|------------|\n| **temp.sh** | `curl -F \"file=@file.pdf\" https://temp.sh/upload` | 4 GB | 3 days |\n| **0x0.st** | `curl -F \"file=@file.pdf\" https://0x0.st` | 512 MB | 365 days |\n| **transfer.sh** | `curl --upload-file file.pdf https://transfer.sh/file.pdf` | 10 GB | 14 days |\n| **Originless** | `curl -F \"file=@file.pdf\" http://localhost:3232/upload` | ~200GB | Permanent* |\n\n*Permanent if pinned, otherwise subject to garbage collection\n\n**Recommended fallback servers:**\n- https://blossom.primal.net\n- https://24242.io/\n\n**Gateway URLs:**\n- https://dweb.link/ipfs/{CID} (default)\n- https://ipfs.io/ipfs/{CID}\n- https://cloudflare-ipfs.com/ipfs/{CID}\n\n---\n\n## Deployment\n\n**Docker (Recommended):**\n```bash\ndocker run -d --restart unless-stopped --name originless \\\n  -p 3232:3232 \\\n  -p 4001:4001/tcp \\\n  -p 4001:4001/udp \\\n  -v originlessd:/data \\\n  -e STORAGE_MAX=200GB \\\n  ghcr.io/besoeasy/originless\n```\n\n**Access:**\n- API: http://localhost:3232\n- Web UI: http://localhost:3232/index.html\n- Admin: http://localhost:3232/admin.html\n\n---\n\n## Privacy & Security Notes\n\n**TRUE PRIVACY:**\n- No account creation required\n- No IP logging or activity tracking\n- Content addressed by cryptographic hash (CID)\n\n**CLIENT-SIDE ENCRYPTION:**\n- Encrypt sensitive content before uploading\n- Passphrase never leaves user's device\n- Server cannot read encrypted content\n\n**CAVEATS:**\n- Uploaded content is public unless encrypted\n- Same file = same CID (deterministic)\n- Unpinned content may be garbage collected\n\n---\n\n## Common Patterns\n\n**Screenshot sharing (permanent):**\n```bash\n# Save to IPFS for permanent storage\ncurl -F \"file=@screenshot.png\" http://localhost:3232/upload\n```\n\n**Screenshot sharing (temporary):**\n```bash\n# Quick share with 0x0.st\ncurl -F \"file=@screenshot.png\" https://0x0.st\n\n# Or with transfer.sh for larger files\ncurl --upload-file screenshot.png https://transfer.sh/screenshot.png\n```\n\n**Nostr media attachment:**\n```bash\n# Upload image and embed IPFS URL in Nostr event\ncurl -F \"file=@image.jpg\" https://filedrop.besoeasy.com/upload\n# Returns: https://dweb.link/ipfs/QmX...\n```\n\n**Anonymous paste (14-day expiration):**\n```bash\n# Quick text sharing\necho \"Secret message\" | curl --upload-file \"-\" https://transfer.sh/message.txt\n```\n\n**Anonymous paste (permanent):**\n```bash\n# Permanent text storage\necho \"Important note\" > note.txt\ncurl -F \"file=@note.txt\" http://localhost:3232/upload\n```\n\n**Large file transfer:**\n```bash\n# For files 1-10 GB, use transfer.sh\ncurl --upload-file large-video.mp4 https://transfer.sh/video.mp4\n\n# For files > 10 GB, use Originless/IPFS\ncurl -F \"file=@huge-dataset.tar.gz\" http://localhost:3232/upload\n```\n\n**Encrypted temporary sharing:**\n```bash\n# Using transfer.sh with GPG\ncat sensitive.pdf | gpg -ac -o- | curl -X PUT --upload-file \"-\" https://transfer.sh/sensitive.pdf.gpg\n# Share URL + passphrase separately\n```\n\n---\n\n## Resources\n\n**Originless/IPFS:**\n- GitHub: https://github.com/besoeasy/Originless\n- Daku Auth: https://www.npmjs.com/package/daku\n- IPFS Docs: https://docs.ipfs.tech\n\n**Alternative Services:**\n- 0x0.st: https://0x0.st (source: https://github.com/mia-0/0x0)\n- transfer.sh: https://transfer.sh (source: https://github.com/dutchcoders/transfer.sh)","tags":["anonymous","file","upload","open","skills","besoeasy","agent-skills","ai-agents","claude-code","clawdbot","clawdbot-skill","hermes"],"capabilities":["skill","source-besoeasy","skill-anonymous-file-upload","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-clawdbot","topic-clawdbot-skill","topic-hermes","topic-hermes-agent","topic-llm-tools","topic-mcp-server","topic-openai","topic-openclaw","topic-vibe-coding"],"categories":["open-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/besoeasy/open-skills/anonymous-file-upload","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add besoeasy/open-skills","source_repo":"https://github.com/besoeasy/open-skills","install_from":"skills.sh"}},"qualityScore":"0.506","qualityRationale":"deterministic score 0.51 from registry signals: · indexed on github topic:agent-skills · 112 github stars · SKILL.md body (15,758 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:56:19.885Z","embedding":null,"createdAt":"2026-04-18T22:10:31.898Z","updatedAt":"2026-05-18T18:56:19.885Z","lastSeenAt":"2026-05-18T18:56:19.885Z","tsv":"'-1':331 '-10':1855 '/.well-known/nostr/nip96.json':421 '/abc123':1133,1140 '/besoeasy/originless':29,123,1672,1913 '/data':116,1665 '/data.zip?downloads=5':1273 '/directory.tar.gz':1318 '/dutchcoders/transfer.sh)':1935 '/file.pdf':1247,1404,1599 '/file.txt':1304 '/file1.txt':1328 '/file2.txt':1336 '/image.png':455 '/image.png?expires=7d':1262 '/ipfs/':1630,1635,1639 '/ipfs/qmx...':1811 '/ipfs/qmx5ztbh9up3qmq7l8vn2jk3br9wc4ef6gd7h?filename=file.pdf':355 '/message.txt':1830 '/mia-0/0x0)':1929 '/package/daku':1918 '/path/to/data.json':926 '/path/to/data.zip':1270 '/path/to/directory':1311 '/path/to/document.pdf':953 '/path/to/file.pdf':251,261,316,918,1083,1244,1401 '/path/to/file.txt':1297 '/path/to/file1.txt':1325 '/path/to/file2.txt':1333 '/path/to/image.png':939,1259 '/path/to/index.html':231,239 '/path/to/secret.txt':1280 '/pin/add':1541 '/pin/list':1547 '/pin/remove':1553 '/random/file.pdf':1348,1356,1388 '/random/secret.txt.gpg':1369 '/remoteupload':866,1535 '/screenshot.png':1787 '/secret.txt.gpg':1292 '/sensitive.pdf.gpg':1903 '/temp.sh.sxcu':1151 '/upload':157,169,242,264,282,285,288,413,545,1086,1096,1109,1124,1529,1576,1807 '/video.mp4':1869 '/xabc.pdf':968,988 '0':294 '0x0':879 '0x0.st':775,832,850,883,919,927,943,956,967,987,1510,1581,1586,1768,1773,1924,1925 '0x0.st/xabc.pdf':966,986 '1':343,491,773,901,998,1854 '10':738,745,1227,1419,1500,1600,1872 '14':780,1220,1253,1413,1447,1502,1602,1814 '2':504 '200gb':120,1484,1611,1669 '24242.io':83,287,1625 '24242.io/upload':286 '245678':357 '3':509,826,1063,1161,1181,1475,1579 '30':942 '3232':73,106,107,1655,1656,1676 '3232/admin.html':1683 '3232/index.html':1680 '3232/pin/add':630 '3232/pin/list':655 '3232/pin/remove':663 '3232/remoteupload':445 '3232/upload':128,153,233,253,279,533,1610,1760,1847,1881 '365':833,899,935,1023,1513,1589 '4':516,1068,1167,1473,1577 '4001':109,112,1658,1661 '4001/tcp':110,1659 '4001/udp':113,1662 '4gb':830 '512':743,751,906,1003,1511,1587 '512mb':837 '7':291 'abl':589 'ac':1282,1893 'access':1673 'account':48,375,382,1018,1175,1690 'account-fre':374 'activ':1697 'adapt':423 'address':1700 'admin':1681 'advanc':1373 'ae':498 'aes-gcm':497 'agent':18 'alreadi':861 'altern':873,1559,1922 'anonym':2,9,23,45,138,371,874,1812,1831 'anonymous-file-upload':1 'anoth':196 'api':503,1674 'append':556 'application/json':450,640,673 'application/pdf':359 'ask':366 'attach':1790 'attempt':336 'auth':410,1052,1392,1527,1915 'authent':66,602 'avail':87,755,766,1458 'await':524,530 'backend':40 'backup/arch':462 'base':757 'bash':95,221,440,606,625,647,658,912,977,1077,1135,1237,1352,1375,1644,1748,1764,1791,1817,1834,1851,1885 'basic':913,1078,1238,1391 'behavior':207 'best':89,1470 'blossom':79,165,275,396,728,852 'blossom.primal.net':82,284,1624 'blossom.primal.net/upload':283 'blossom/nostr':400 'bodi':536 'boundaries/headers':191 'break':324 'build':549 'built':1033,1194,1431 'built-in':1032,1193,1430 'cannot':1721 'capabl':417 'cat':1279,1296,1890 'caveat':1725 'censorship':53,1497 'censorship-resist':52,1496 'check':737 'cid':350,513,596,624,642,675,1545,1552,1558,1631,1636,1640,1704,1735 'ciphertext':506 'cli':1170 'cli-on':1169 'client':59,483,495,795,1490,1706 'client-sid':58,482,494,794,1489,1705 'client/runtime':197 'cloudflare-ipfs.com':1638 'cloudflare-ipfs.com/ipfs/':1637 'collect':688,1620,1742 'come':129 'command':1562,1565 'common':1743 'comparison':1462 'compat':397 'confidenti':580 'config':1144 'configur':1485 'console.log':616,619 'const':522,528,539,609,613 'content':24,55,217,432,436,448,464,466,480,493,526,576,581,638,671,682,695,705,792,860,1699,1711,1724,1727,1738 'content-typ':216,447,637,670 'continu':714,731,756,806,817,855 'correct':192 'count':1234,1264,1378,1384,1427 'creat':381,472,481 'creation':1691 'credenti':605 'critic':788 'crypto':502 'cryptograph':1702 'curl':183,204,226,234,246,256,310,441,565,626,648,659,915,923,936,950,978,1075,1080,1090,1104,1117,1136,1240,1255,1266,1284,1298,1312,1321,1329,1353,1366,1379,1394,1570,1582,1592,1605,1755,1769,1780,1801,1824,1842,1859,1876,1895 'custom':921,930,1250 'czf':1115,1310 'd':98,451,641,674,1371,1647 'daku':67,601,604,612,632,634,650,652,665,667,1543,1549,1555,1914 'data':64,554,1437 'day':781,827,834,900,933,1024,1064,1162,1182,1221,1254,1414,1448,1476,1503,1514,1580,1590,1603,1815 'decentr':11,20,37,65,1027,1188,1451,1492 'decis':697 'decrypt':514,518,1361 'default':194,1223,1632 'delet':949,969,985 'depend':1459 'deploy':1641 'determinist':1736 'devic':1719 'differ':406 'direct':871,960,1128,1340 'directori':1111,1306 'doc':1920 'docker':74,85,96,1642,1645 'docs.ipfs.tech':1921 'done':345 'download':811,1129,1134,1147,1197,1233,1263,1349,1359,1377,1426 'durat':759,1467 'dweb.link':354,1629,1810 'dweb.link/ipfs/':1628 'dweb.link/ipfs/qmx...':1809 'dweb.link/ipfs/qmx5ztbh9up3qmq7l8vn2jk3br9wc4ef6gd7h?filename=file.pdf':353 'e':117,608,1666 'echo':306,319,333,1101,1821,1838 'emb':1795 'encrypt':61,479,485,492,523,538,548,791,797,804,1031,1192,1230,1276,1363,1434,1468,1708,1709,1723,1731,1882 'encryptwithpassphras':525 'endpoint':68,151,384,429,725,1524,1525 'ensur':546 'eq':328 'equival':563 'even':583 'event':1800 'exact':180 'exampl':133,420,520 'example.com':454 'example.com/image.png':453 'exit':342 'expect':170 'expir':897,931,941,1021,1061,1179,1218,1251,1445,1568,1816 'expiration/download':1441 'f':184,205,229,237,249,259,314,566,916,924,937,940,951,954,979,984,1081,1091,1105,1118,1571,1583,1606,1756,1770,1802,1843,1877 'fail':337,414,845 'fallback':80,166,265,394,729,848,1622 'featur':892,1056,1213 'fetch':531 'fi':325,344 'field':209,562 'file':3,8,21,38,137,142,147,177,181,206,211,215,230,238,250,260,271,315,370,379,561,573,691,703,717,735,764,875,881,889,896,904,917,925,938,952,965,971,994,1001,1015,1020,1035,1045,1053,1060,1066,1082,1088,1092,1106,1119,1157,1164,1178,1204,1210,1217,1225,1243,1258,1269,1289,1301,1315,1320,1324,1332,1345,1351,1400,1409,1416,1439,1444,1482,1509,1520,1534,1572,1584,1595,1607,1733,1757,1771,1779,1783,1803,1827,1844,1849,1853,1862,1871,1878,1900 'file.pdf':361,1142,1358,1573,1585,1596,1608 'filedrop.besoeasy.com':78,156,241,263,281,1806 'filedrop.besoeasy.com/upload':155,240,262,280,1805 'filenam':212,360,922,1120 'first':36,273,418,1113 'flow':733 'forev':685 'form':553 'form-data':552 'formdatawithencrypt':537,547 'free':376 'frill':888 'fss':311 'fulli':202 'garbag':687,1619,1741 'gateway':77,255,1626 'gb':739,746,1069,1168,1228,1420,1474,1501,1578,1601,1856,1873 'gcm':499 'generat':510,603 'generatekeypair':610,615 'get':1376,1548 'ghcr.io':122,1671 'ghcr.io/besoeasy/originless':121,1670 'github':1910 'github.com':28,1912,1928,1934 'github.com/besoeasy/originless':27,1911 'github.com/dutchcoders/transfer.sh)':1933 'github.com/mia-0/0x0)':1927 'gpg':803,1232,1278,1281,1365,1370,1433,1504,1889,1892 'gzip':1308 'h':446,631,636,649,664,669,1380 'handl':189 'hash':1703 'hello':1102 'host':7,25,39,71,245,876,890,1211 'html':146,162,222,270,719 'http':909,1071 'huge-dataset.tar.gz':1879 'idx':300,305 'imag':1793 'image.jpg':1804 'import':690,1839 'infrastructur':1461 'ip':1694 'ipf':16,42,57,438,1006,1751,1796,1919 'ipfs.io':1634 'ipfs.io/ipfs/':1633 'javascript':521 'json':347 'key':43,515,614 'keys.privatekey':621 'keys.publickey':618 'l':1137 'larg':1415,1507,1848,1864 'large-video':1863 'larger':1778 'leav':1716 'librari':696 'limit':390,1019,1177,1265,1442,1443 'link':512 'list':645,1550 'local':94,141,519,1533 'localhost':72,127,152,232,252,278,444,532,629,654,662,1609,1675,1679,1682,1759,1846,1880 'localhost/filedrop':726 'log':1695 'long':762,1494 'long-term':1493 'manag':592,692 'max':119,289,296,329,339,934,1252,1464,1466,1566,1668 'maximum':903,1025,1065,1224,1449 'may':403,1739 'mb':744,752,907,1004,1512,1588 'media':401,1789 'medium':1163,1481 'messag':1823 'method':534,1526 'might':468 'mirror':430,433,474,868,1538 'mp4':1866 'multipart':190,551 'multipart/form-data':173 'multipl':1319 'must':201,578,704,763 'mydir':1116 'mydir.tar.gz':1121 'name':103,179,210,1652 'need':372,393,760,810,1010,1176,1425 'never':1715 'no-auth':1050 'no-fril':886 'node':607 'non':269 'non-html':268 'none':1477,1515 'nostr':1788,1799 'note':398,1686,1840 'note.txt':1841,1845 'o':1141,1283,1357,1894 'onlin':476,862 'option':1186,1374,1505 'originless':14,17,31,93,104,150,168,224,272,383,508,544,724,750,777,798,839,865,1604,1653 'originless/ipfs':144,710,741,768,1483,1523,1875,1909 'originlessd':115,1664 'otherwis':1616 'overview':30 'p':105,108,111,1654,1657,1660 'part':178 'passphras':527,542,1714,1906 'password':1397 'past':1813,1832 'paste/screenshot':1012 'pattern':1744 'payload':558 'perman':373,473,598,707,767,1455,1486,1546,1612,1613,1747,1753,1833,1835 'persist':51,593,684,706,1007,1424,1469 'person':694 'pin':594,595,622,646,657,712,770,1488,1544,1551,1615 'pipe':1173 'popular':1208 'post':228,236,248,258,313,443,535,628,661,1072,1530,1536,1542,1554 'prefer':149,182 'preserv':465 'prevent':686 'primari':843 'principl':44 'privaci':35,787,1684,1688 'privacy-first':34 'privat':488,572,620 'probe':415 'propag':213 'protect':1393 'provid':976 'public':76,254,617,1729 'purpos':1528 'put':1286,1897 'qmhash':676 'qmhash1':643 'qmhash2':644 'qmx5ztbh9up3qmq7l8vn2jk3br9wc4ef6gd7h':351 'quick':821,992,1014,1155,1421,1479,1517,1521,1561,1765,1818 'rate':389 'rate-limit':388 'read':591,1722 'real':172 'recipi':517 'recommend':75,1621,1643 'refer':1522 'registr':894,1058,1215 'reliabl':841 'remain':579 'remot':434,1539 'remov':656 'replic':203 'request':174 'requir':411,600,611,895,1059,1216,1277,1429,1692 'resist':54,1498 'resourc':477,1908 'respons':346,529,957,1125,1337 'response.url':541 'restart':99,1648 'retri':290,297,330,340,341 'return':857,958,1126,1338,1808 'rout':161,408 'run':92,97,1646 'save':1749 'screenshot':1745,1761 'screenshot.png':1758,1772,1784 'secret':946,955,973,982,1822 'secret.txt':1372 'secur':1685 'self':70,244 'self-host':69,243 'semant':219 'send':1438 'sensit':63,575,1436,1710 'sensitive.pdf':1891 'separ':1907 'server':81,167,276,277,302,304,395,402,416,426,585,853,1623,1720 'server-specif':425 'servic':754,785,891,1029,1055,1190,1212,1453,1457,1463,1560,1563,1923 'setup':90 'sh':1043,1202 'share':378,478,489,511,574,702,793,823,995,1013,1054,1158,1410,1480,1518,1746,1762,1766,1820,1884,1904 'sharelink':540 'sharex':1143 'shortest':1183 'shouldn':586 'side':60,484,496,796,1491,1707 'simpl':808,819,885,908,1011,1049,1070 'sinc':187 'singl':1028,1189,1452 'size':356,736,905,1067,1226,1465,1567 'skill':19,135 'skill-anonymous-file-upload' 'slight':405 'small':1519 'smaller':1000 'sourc':26,1926,1932 'source-besoeasy' 'specif':427 'standard':732 'status':348 'stdin':1099,1295 'stop':102,1651 'storag':12,22,118,377,599,1456,1667,1754,1837 'strategi':266 'subject':1617 'succeed':321 'success':349 'support':1229 'taken':470,1038 'tar':1112,1114,1307,1309 'target':303,308,317,323 'temp':1042 'temp.sh':825,851,1047,1085,1095,1108,1123,1132,1139,1150,1472,1569,1575 'temp.sh/abc123':1131,1138 'temp.sh/temp.sh.sxcu':1149 'temp.sh/upload':1084,1094,1107,1122,1574 'temporari':783,822,993,1156,1209,1408,1478,1506,1508,1516,1763,1883 'term':1495 'text':1100,1819,1836 'token':635,653,668,947,974,980,983 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-clawdbot' 'topic-clawdbot-skill' 'topic-hermes' 'topic-hermes-agent' 'topic-llm-tools' 'topic-mcp-server' 'topic-openai' 'topic-openclaw' 'topic-vibe-coding' 'track':50,1198,1235,1428,1698 'tracking/limits':812 'transfer':1016,1201,1383,1422,1850 'transfer.sh':748,782,801,815,849,1206,1246,1261,1272,1291,1303,1317,1327,1335,1347,1355,1368,1387,1403,1499,1591,1598,1776,1786,1829,1858,1868,1887,1902,1930,1931 'transfer.sh/data.zip?downloads=5':1271 'transfer.sh/directory.tar.gz':1316 'transfer.sh/file.pdf':1245,1402,1597 'transfer.sh/file.txt':1302 'transfer.sh/file1.txt':1326 'transfer.sh/file2.txt':1334 'transfer.sh/image.png?expires=7d':1260 'transfer.sh/message.txt':1828 'transfer.sh/random/file.pdf':1346,1354,1386 'transfer.sh/random/secret.txt.gpg':1367 'transfer.sh/screenshot.png':1785 'transfer.sh/secret.txt.gpg':1290 'transfer.sh/sensitive.pdf.gpg':1901 'transfer.sh/video.mp4':1867 'tree':698 'tri':307,847 'true':550,1385,1687 'type':218,358,449,639,672,718,1089 'u':1395 'ui':1678 'unless':101,1650,1730 'unless-stop':100,1649 'unpin':1556,1737 'upload':4,5,46,136,139,163,223,320,335,407,428,486,505,721,809,820,844,872,877,880,910,914,928,944,964,970,1040,1044,1073,1079,1097,1110,1199,1203,1239,1242,1248,1257,1268,1274,1288,1293,1300,1305,1314,1323,1331,1344,1350,1389,1399,1532,1564,1594,1713,1726,1782,1792,1826,1861,1899 'upload-fil':1241,1256,1267,1287,1299,1313,1322,1330,1398,1593,1781,1825,1860,1898 'upload/share':368 'url':352,435,452,961,1130,1341,1540,1627,1797,1905 'url/cid':858 'usag':220,439,911,1076,1236 'use':10,41,199,364,404,458,569,679,709,740,747,790,800,814,864,991,1154,1407,1857,1874,1886 'user':365,459,570,680,699,1717 'usernam':1396 'v':114,1663 'via':56,322,1074 'video':1865 'video.mp4':1093 'want':460,571,681,700 'web':431,463,501,1677 'window':1145 'without':380,1017,1423 'workflow':490,1172 'world':1103 'www.npmjs.com':1917 'www.npmjs.com/package/daku':1916 'x':227,235,247,257,312,442,627,660,1285,1382,1896 'x-transfer-count':1381 'yaml':1146 'year':774,902,999 'yes':708,720,789,813,824,846,863","prices":[{"id":"55bf961f-a39d-4195-91f4-35e45a2eb966","listingId":"4b186c98-2e61-4e04-8daa-c54774ba9097","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"besoeasy","category":"open-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:10:31.898Z"}],"sources":[{"listingId":"4b186c98-2e61-4e04-8daa-c54774ba9097","source":"github","sourceId":"besoeasy/open-skills/anonymous-file-upload","sourceUrl":"https://github.com/besoeasy/open-skills/tree/main/skills/anonymous-file-upload","isPrimary":false,"firstSeenAt":"2026-04-18T22:10:31.898Z","lastSeenAt":"2026-05-18T18:56:19.885Z"}],"details":{"listingId":"4b186c98-2e61-4e04-8daa-c54774ba9097","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"besoeasy","slug":"anonymous-file-upload","github":{"repo":"besoeasy/open-skills","stars":112,"topics":["agent-skills","ai","ai-agents","claude-code","clawdbot","clawdbot-skill","hermes","hermes-agent","llm-tools","mcp-server","openai","openclaw","vibe-coding","vibecoding"],"license":"mit","html_url":"https://github.com/besoeasy/open-skills","pushed_at":"2026-05-17T20:38:07Z","description":"Battle-tested skill library for AI agents. Save 98% of API costs with ready-to-use code for crypto, PDFs, search, web scraping & more. No trial-and-error, no expensive APIs.","skill_md_sha":"de1b1adad66166b458be1a091961ebfe0764b567","skill_md_path":"skills/anonymous-file-upload/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/besoeasy/open-skills/tree/main/skills/anonymous-file-upload"},"layout":"multi","source":"github","category":"open-skills","frontmatter":{"name":"anonymous-file-upload","description":"Upload and host files anonymously using decentralized storage with Originless and IPFS."},"skills_sh_url":"https://skills.sh/besoeasy/open-skills/anonymous-file-upload"},"updatedAt":"2026-05-18T18:56:19.885Z"}}