Help us improve
Share bugs, ideas, or general feedback.
Uploads self-contained HTML files to PageDrop, generating shareable time-limited links with configurable TTL (1h/1d/3d/once), private visibility, passwords, and custom paths.
npx claudepluginhub promptclickrun/power-agents-blueprint --plugin power-agents-blueprintHow this command is triggered — by the user, by Claude, or both
Slash command
/power-agents-blueprint:SKILLpagedrop-upload/The summary Claude sees in its command listing — used to decide when to auto-load this command
# Skill: PageDrop Upload > Upload self-contained HTML files to PageDrop for shareable, time-limited links. No API key required. Supports private visibility and configurable TTL (1 hour, 1 day, 3 days, or single-view). --- ## When to Use This Skill Use this skill when you need to **share an HTML file via a temporary URL**. Common scenarios: - Sharing architecture dashboards with stakeholders - Distributing interactive reports without requiring file access - Generating preview links for HTML documentation - Creating time-limited shareable links for review cycles --- ## API Reference #...
/SKILLResolves GitHub issue via isolated worktree, TDD workflow, and auto-closing PR creation.
/SKILLCreates conventional git commit from conversation intent using git-agent and pushes to remote. Accepts optional Claude model name for co-author.
/SKILLSurfaces current session task from state file, evaluates clarity (prompts for clarification if needed), assesses completion, and verifies if fully done.
Share bugs, ideas, or general feedback.
Upload self-contained HTML files to PageDrop for shareable, time-limited links. No API key required. Supports private visibility and configurable TTL (1 hour, 1 day, 3 days, or single-view).
Use this skill when you need to share an HTML file via a temporary URL. Common scenarios:
POST https://pagedrop.io/api/upload
Content-Type: application/json
No API key required. The API is open for programmatic use.
⚠️ Browser requests are blocked — the API rejects requests with
OriginorSec-Fetch-*headers. Use PowerShellInvoke-RestMethod,curl, or equivalent.
| Field | Type | Required | Description |
|---|---|---|---|
html | string | Yes | Full HTML content (max 16 MB) |
ttl | enum | Yes | Time-to-live: 1h, 1d, 3d, once |
fileName | string | No | Display filename for the page |
customPath | string | No | Custom URL slug (3–63 chars, lowercase alphanumeric + hyphens) |
password | string | No | Password-protect the page (max 128 chars) |
visibility | string | No | Set to private to exclude from public explore page |
{
"success": true,
"data": {
"url": "https://{slug}.pagedrop.io",
"slug": "{slug}",
"isExplore": false
}
}
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable description"
}
}
| Code | Meaning | Recovery |
|---|---|---|
REQUEST_TOO_LARGE | HTML exceeds 16 MB | Minify the HTML and retry |
PATH_UNAVAILABLE | Custom path already taken | Omit customPath to auto-generate |
CONTENT_BLOCKED | Content flagged by moderation | Open file locally instead |
RATE_LIMIT_EXCEEDED | Too many requests | Wait and retry after delay |
INVALID_TTL | TTL value not in allowed enum | Use one of: 1h, 1d, 3d, once |
# Read the HTML file
$htmlContent = Get-Content "{full-path-to-html-file}" -Raw
# Build the request payload
$payload = @{
html = $htmlContent
ttl = "3d"
fileName = "{solution-name}-architecture.html"
visibility = "private"
} | ConvertTo-Json -Depth 3
# Upload to PageDrop
$response = Invoke-RestMethod -Uri "https://pagedrop.io/api/upload" `
-Method POST `
-ContentType "application/json" `
-Body $payload
# Output the response
$response | ConvertTo-Json -Depth 5
if ($response.success) {
$url = $response.data.url
Write-Output "Live at: $url"
} else {
Write-Output "Upload failed: $($response.error.code) - $($response.error.message)"
}
When integrating into an agent workflow, follow this pattern after generating an HTML file:
Use the ask_user tool:
["Yes — generate a shareable link (active for 3 days)", "No — just open it locally"]$htmlContent = Get-Content "{path}" -Raw
$payload = @{ html = $htmlContent; ttl = "3d"; fileName = "{name}"; visibility = "private" } | ConvertTo-Json -Depth 3
$response = Invoke-RestMethod -Uri "https://pagedrop.io/api/upload" -Method POST -ContentType "application/json" -Body $payload
Present the result:
🔗 Your file is live for 3 days: {url}
Also open locally with Start-Process so the user has both options.
If upload fails, fall back to local open with an error note:
Upload failed — opened locally instead. Error: {error message}
Start-Process "{full-path-to-html-file}"
Present the file path:
📂 File saved to:
{full-path-to-html-file}
html field)1h (1 hour), 1d (1 day), 3d (3 days), once (single view then deleted)RATE_LIMIT_EXCEEDEDCONTENT_BLOCKED