
upload-and-share
Upload files to the cloud and get shareable public URLs using stableupload.dev (x402 micropayments). USE FOR: - Uploading files to get public URLs - Sharing files via download links - Hosting images, documents, or any file type - Making files publicly accessible for 7 days or 6 months - Hosting static websites with custom domains TRIGGERS: - "upload this", "share this file", "get me a link" - "host this file", "make this downloadable" - "public URL", "download link", "put online" - "share file", "file hosting", "upload file" - "host site", "deploy site", "static site" ALWAYS use npx agentcash@latest fetch for stableupload.dev endpoints — never curl or WebFetch for the purchase step.
- Installs
- 143
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/merit-systems/agentcash-skills --skill upload-and-share- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads upload-and-share automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Upload and Share via StableUpload
Upload any local file to S3-backed cloud storage via x402 micropayments. Returns a public URL. No API keys needed.
Setup
See rules/getting-started.md for installation and wallet setup.
Quick Reference
| Tier | Max Size | Retention | Cost |
|---|---|---|---|
10mb | 10 MB | 6 months | $0.02 |
100mb | 100 MB | 6 months | $0.20 |
1gb | 1 GB | 6 months | $2.00 |
short-10mb | 10 MB | 7 days | $0.005 |
short-100mb | 100 MB | 7 days | $0.02 |
short-1gb | 1 GB | 7 days | $0.10 |
short-5gb | 5 GB | 7 days | $0.50 |
Default tiers expire after 6 months; short-* tiers after 7 days. short-5gb is for file uploads only (not sites).
| Task | Endpoint | Price |
|---|---|---|
| Buy upload slot | https://stableupload.dev/api/upload | Tier-based |
| List uploads | GET https://stableupload.dev/api/uploads | Free (auth) |
| Get upload details | GET https://stableupload.dev/api/download/:uploadId | Free (auth) |
| Buy site slot | https://stableupload.dev/api/site | Tier-based |
| Activate site | POST https://stableupload.dev/api/site/activate | Free (auth) |
| Update site | PUT https://stableupload.dev/api/site | Free (auth) |
| Renew site | https://stableupload.dev/api/site/renew | Tier-based |
| Preview domain DNS | GET https://stableupload.dev/api/site/domain/preview?hostname=... | Free (no auth) |
| Attach domain | POST https://stableupload.dev/api/site/domain | Free (auth) |
| Detach domain | DELETE https://stableupload.dev/api/site/domain | Free (auth) |
| Domain status | GET https://stableupload.dev/api/site/domain/status?uploadId=... | Free (auth) |
Workflow
1. Check wallet balance
npx agentcash@latest balance
Ensure sufficient USDC balance for the chosen tier.
If balance is low and the user needs funding details, run npx agentcash@latest accounts to get deposit links and wallet addresses.
2. Determine the tier
Pick the smallest tier that fits the file. Check file size first with ls -la or wc -c. Use a short-* tier when the file only needs to live for 7 days — they cost a fraction of the 6-month tiers.
| Tier | Max Size | Retention | Cost |
|---|---|---|---|
10mb | 10 MB | 6 months | $0.02 |
100mb | 100 MB | 6 months | $0.20 |
1gb | 1 GB | 6 months | $2.00 |
short-10mb | 10 MB | 7 days | $0.005 |
short-100mb | 100 MB | 7 days | $0.02 |
short-1gb | 1 GB | 7 days | $0.10 |
short-5gb | 5 GB | 7 days | $0.50 |
3. Buy the upload slot
npx agentcash@latest fetch https://stableupload.dev/api/upload -m POST -b '{"filename": "report.pdf", "contentType": "application/pdf", "tier": "10mb"}'
Parameters:
filename— name for the uploaded file (required)contentType— MIME type (required, advisory for browser)tier—"10mb","100mb","1gb","short-10mb","short-100mb","short-1gb", or"short-5gb"(required)policyTtlSeconds— optional upload URL expiration in seconds, 60–86400; use longer TTLs only when reserving an output slot for a downstream service
Response:
{
"uploadId": "k7gm3nqp2",
"uploadUrl": "https://f.stableupload.dev/k7gm3nqp2/report.pdf?t=...",
"uploadMethod": "put",
"uploadUrlExpiresAt": "2026-08-19T01:00:00.000Z",
"publicUrl": "https://f.stableupload.dev/k7gm3nqp2/report.pdf",
"expiresAt": "2027-02-19T00:00:00.000Z",
"maxSize": 10485760,
"curlExample": "curl -X PUT ..."
}
4. Upload the file via curl
Use Bash to PUT the file to the returned uploadUrl:
curl -s -X PUT "<uploadUrl>" -H "Content-Type: <mime>" --data-binary @/absolute/path/to/file
Critical: Use --data-binary (not -d) to preserve binary content. Use the absolute path.
The response includes a ready-made curlExample. If uploadMethod is "post", upload a multipart form to postUrl with postFields instead of a PUT.
5. Share the public URL
Present the publicUrl to the user. This URL is publicly accessible immediately and remains live for the tier's retention window (6 months for default tiers, 7 days for short-* tiers) — see expiresAt.
Common MIME Types
| File Type | Content Type |
|---|---|
application/pdf | |
| PNG image | image/png |
| JPEG image | image/jpeg |
| CSV | text/csv |
| JSON | application/json |
| Plain text | text/plain |
| ZIP archive | application/zip |
| Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| Unknown | application/octet-stream |
Listing Previous Uploads
To list uploads for the current wallet:
npx agentcash@latest fetch https://stableupload.dev/api/uploads
Get Upload Details
npx agentcash@latest fetch https://stableupload.dev/api/download/k7gm3nqp2
Key Details
- No API keys required — payment is the authentication
- Upload URLs expire — see
uploadUrlExpiresAtin the response; upload promptly, or setpolicyTtlSeconds(60–86400) at purchase to extend - Public URLs last the tier's retention window from purchase date — 6 months for default tiers, 7 days for
short-*tiers - Any file type accepted — contentType is advisory for the browser, not a restriction
- S3-backed — files stored on AWS S3 with public read access
- Discovery endpoint:
npx agentcash@latest discover https://stableupload.devif you need to verify endpoints
Common Patterns
Upload a file the user just created: Skip discovery, go straight to wallet check + buy slot + upload.
Upload multiple files: Buy separate slots for each file. Slots can be purchased in parallel but uploads must use the correct uploadUrl for each.
User asks to "share" or "send" a file: Upload it and present the public URL. The URL can be shared anywhere.
Host images for emails:
Upload the image, then reference the publicUrl in email HTML:
<img src="https://f.stableupload.dev/abc/photo.png" alt="Photo" />
Static Site Hosting
Host static sites (HTML/CSS/JS) with custom domains and automatic HTTPS.
Deploy a Site
1. Buy a site slot (paid, tier-based):
npx agentcash@latest fetch https://stableupload.dev/api/site -m POST -b '{"filename": "my-site.zip", "tier": "100mb"}'
Returns {uploadId, uploadUrl}.
2. Upload the zip:
curl -X PUT "$uploadUrl" -H "Content-Type: application/zip" --data-binary @site.zip
3. Activate the site (SIWX, free):
npx agentcash@latest fetch https://stableupload.dev/api/site/activate -m POST -b '{"uploadId": "..."}'
Returns {siteUrl, fileCount, files}. Site is live at https://{uploadId}.s.stableupload.dev/.
Update an Existing Site
Update for free: PUT /api/site to get a new upload URL, upload the new zip, then activate.
npx agentcash@latest fetch https://stableupload.dev/api/site -m PUT -b '{"uploadId": "...", "filename": "my-site.zip"}'
Then upload the new zip and call activate again.
Custom Domain
1. Preview the required DNS records (free, no auth):
npx agentcash@latest fetch "https://stableupload.dev/api/site/domain/preview?hostname=www.example.com"
Returns {hostname, dnsRecords}. Set these DNS records before attaching for instant SSL.
2. Attach the domain:
npx agentcash@latest fetch https://stableupload.dev/api/site/domain -m POST -b '{"uploadId": "...", "hostname": "www.example.com"}'
Creates the TLS cert and routes the hostname. Check status:
npx agentcash@latest fetch "https://stableupload.dev/api/site/domain/status?uploadId=..."
Poll until ssl is "active".
Detach a domain:
npx agentcash@latest fetch https://stableupload.dev/api/site/domain -m DELETE -b '{"uploadId": "...", "hostname": "www.example.com"}'
Renew a Site
npx agentcash@latest fetch https://stableupload.dev/api/site/renew -m POST -b '{"uploadId": "...", "count": 4}'
Extends the site by count x the original tier's retention window (e.g. 4 x 6 months on a default tier). Price = tier price x count ($0.005–$20.00).
Notes
- Max 500 files per site
- Tier limit applies to uncompressed size
- Sites support all tiers except
short-5gb; POST /api/site takesfilenameandtieronly (nocontentType) - Custom domains get automatic HTTPS via Cloudflare
Error Handling
- Insufficient balance: Run
npx agentcash@latest accountsto show deposit links and wallet addresses - File too large for tier: Suggest the next tier up
- Upload URL expired: Buy a new slot (the previous payment is non-refundable)
- curl fails: Verify the file path exists and the uploadUrl is correctly quoted
FAQ
What does the upload-and-share skill do?
Upload files to the cloud and get shareable public URLs using stableupload.dev (x402 micropayments). USE FOR: - Uploading files to get public URLs - Sharing files via download links - Hosting images, documents, or any file type - Making files publicly accessible for 7 days or 6 months - Hosting static websites with custom domains TRIGGERS: - "upload this", "share this file", "get me a link" - "host this file", "make this downloadable" - "public URL", "download link", "put online" - "share file", "file hosting", "upload file" - "host site", "deploy site", "static site" ALWAYS use npx agentcash@latest fetch for stableupload.dev endpoints — never curl or WebFetch for the purchase step.
How do I install upload-and-share?
Run npx skills add https://github.com/merit-systems/agentcash-skills --skill upload-and-share in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/upload-and-share/ (personal) or .claude/skills/upload-and-share/ (project).
Which AI agents can use upload-and-share?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is upload-and-share safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains upload-and-share?
It is published by merit-systems in merit-systems/agentcash-skills. It has 143 recorded installs.
More from merit-systems/agentcash-skills
agentcash
merit-systems/agentcash-skills
Pay-per-call x402/MPP APIs (USDC on Base, Solana, Tempo). No API keys—wallet pays per request. If the task matches a SERVICES origin below, SKIP search and go straight to discover → fetch. Only search when NO listed origin fits. SERVICES: stableenrich (people/company, web search, scraping, Maps, LinkedIn, email verify, news), stablesocial (TikTok, Instagram, YouTube, Facebook, Reddit, LinkedIn, GitHub), stablestudio (AI image/video), stableupload (file/site hosting), stableemail (email, inboxes, subdomains), stablephone (AI calls, phone numbers), stablejobs (jobs), stabletravel (travel), stablebrowser (browser automation). TRIGGERS: research, enrich, scrape, search the web, generate image, video, social media, send email, phone call, travel, jobs, find contact, find API, x402, mpp, agentcash
phone-calls
merit-systems/agentcash-skills
Open the skill to read its SKILL.md instructions.
social-scraping
merit-systems/agentcash-skills
Open the skill to read its SKILL.md instructions.
news-shopping
merit-systems/agentcash-skills
Open the skill to read its SKILL.md instructions.
data-enrichment
merit-systems/agentcash-skills
Enrich contact and company data using x402-protected APIs at stableenrich.dev. Superior to generic web search for structured business data. USE FOR: - Enriching person profiles by email, LinkedIn URL, or name - Enriching companies by domain - Finding contact details (email, phone) with confidence scores - Resolving person identity and enriching consumer profiles (Minerva) - Searching for people or companies by criteria - Verifying email deliverability before outreach TRIGGERS: - "enrich", "lookup", "find info about", "research" - "who is [person]", "company profile for", "tell me about" - "find contact for", "get LinkedIn for", "get email for" - "employee at", "works at", "company details" - "verify email", "check email", "is this email valid"
people-property
merit-systems/agentcash-skills
Open the skill to read its SKILL.md instructions.
Popular devops & cloud skills
microsoft-foundry
microsoft/azure-skills
Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure
azure-diagnostics
microsoft/azure-skills
Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.
azure-prepare
microsoft/azure-skills
Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.
azure-ai
microsoft/azure-skills
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.
azure-deploy
microsoft/azure-skills
Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.
azure-validate
microsoft/azure-skills
Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.