{"id":"c578d0f2-907e-4da3-ae0a-fb1b0b003d19","entityType":"agent","slug":"clawhub-skills-akellacom-static-app","name":"Static Website Hosting - Static.app","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skills-akellacom-static-app","canonicalPath":"/agent/clawhub-skills-akellacom-static-app","generatedAt":"2026-10-09T15:02:39.270Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Deploy static websites to Static.app hosting. Use when the user wants to deploy, upload, or host a static site on Static.app. Triggers on phrases like \"deploy to static.app\", \"upload to static\", \"host on static.app\", \"static.app deploy\", or when working with the Static.app hosting service. --- name: Static Website Hosting - Static.app description: Deploy static websites to Static.app hosting. Use when the user wants to deploy, upload, or host a static site on Static.app. Triggers on phrases like \"deploy to static.app\", \"upload to static\", \"host on static.app\", \"static.app deploy\", or when working with the Static.app hosting service. --- Static.app Deployment Skill Deploy static websites and application","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"clawhub skill install skills:akellacom:static-app","sourceUrl":"https://github.com/openclaw/skills/tree/main/skills/akellacom/static-app","homepage":null,"primaryLinks":[{"label":"View on ClawHub","url":"https://github.com/openclaw/skills/tree/main/skills/akellacom/static-app","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":50,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Deploy static websites to Static.app hosting. Use when the user wants to deploy, upload, or host a static site on Static.app. Triggers on phrases like \"deploy t"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-25T05:57:49.704Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-25T05:57:49.704Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-26T05:57:49.704Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install skills:akellacom:static-app","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T15:02:39.269Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akellacom-static-app/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"---\nname: Static Website Hosting - Static.app\ndescription: Deploy static websites to Static.app hosting. Use when the user wants to deploy, upload, or host a static site on Static.app. Triggers on phrases like \"deploy to static.app\", \"upload to static\", \"host on static.app\", \"static.app deploy\", or when working with the Static.app hosting service.\n---\n\n# Static.app Deployment Skill\n\nDeploy static websites and applications to [Static.app](https://static.app) hosting directly from OpenClaw.\n\n## Workspace Structure\n\nAll Static.app operations in your workspace use a dedicated folder structure:\n\n```\nworkspace/\n└── staticapp/              # Main folder for all Static.app operations\n    ├── new-site/           # New sites created locally\n    └── {pid}/              # Downloaded existing sites (by PID)\n```\n\n- **New sites**: Created in `staticapp/` subfolders before deployment\n- **Downloaded sites**: Extracted to `staticapp/{pid}/` for editing\n\n## How Static.app Handles Files\n\nStatic.app automatically creates clean URLs from your filenames:\n\n| File | URL |\n|------|-----|\n| `index.html` | `/` (homepage) |\n| `about.html` | `/about` |\n| `portfolio.html` | `/portfolio` |\n| `contact.html` | `/contact` |\n\n**No subdirectories needed!** Just create `.html` files in the root folder.\n\n## Project Structure\n\n### Simple Multi-Page Site\n\n```\nmy-site/\n├── index.html          # Homepage → /\n├── about.html          # About page → /about\n├── portfolio.html      # Portfolio → /portfolio\n├── contact.html        # Contact → /contact\n├── style.css           # Stylesheet\n├── js/                 # JavaScript files\n│   ├── main.js\n│   └── utils.js\n└── images/             # Images folder\n    ├── logo.png\n    └── photo.jpg\n```\n\n### JavaScript App (React, Vue, etc.)\n\nFor JS apps, **build first**, then deploy the `dist` (or `build`) folder:\n\n```bash\n# Build your app\nnpm run build\n\n# Deploy the dist folder\nnode scripts/deploy.js ./dist\n```\n\n## Prerequisites\n\n1. **Get API Key**: Go to https://static.app/account/api and create an API key (starts with `sk_`)\n2. **Set Environment Variable**: Store the API key in `STATIC_APP_API_KEY` env var\n\n## Usage\n\n### Deploy Multi-Page Site\n\n```bash\n# Create your pages\necho '<h1>Home</h1>' > index.html\necho '<h1>About</h1>' > about.html\necho '<h1>Portfolio</h1>' > portfolio.html\n\n# Deploy\nnode scripts/deploy.js\n```\n\n### Deploy Specific Directory\n\n```bash\nnode scripts/deploy.js ./my-site\n```\n\n### Update Existing Site\n\n```bash\nnode scripts/deploy.js . --pid olhdscieyr\n```\n\n### List All Sites\n\n```bash\nnode scripts/list.js\n```\n\n### List Site Files\n\n```bash\nnode scripts/files.js YOUR_PID\n```\n\nOptions:\n- `--raw` — Output raw JSON\n- `-k <key>` — Specify API key\n\n### Delete Site\n\n```bash\nnode scripts/delete.js YOUR_PID\n```\n\nOptions:\n- `-f, --force` — Skip confirmation prompt\n- `-k <key>` — Specify API key\n\n### Download Site\n\nDownload an existing site to your workspace for editing:\n\n```bash\nnode scripts/download.js YOUR_PID\n```\n\nThis will:\n1. Fetch the download URL from Static.app API\n2. Download the site archive\n3. Extract it to `staticapp/{pid}/`\n\nOptions:\n- `-p, --pid` — Site PID to download\n- `-o, --output` — Custom output directory (default: `./staticapp/{pid}`)\n- `-k <key>` — Specify API key\n- `--raw` — Output raw JSON response\n\nExample:\n```bash\n# Download site to default location\nnode scripts/download.js abc123\n\n# Download to custom folder\nnode scripts/download.js abc123 -o ./my-site\n```\n\n## Script Options\n\n```\nnode scripts/deploy.js [SOURCE_DIR] [OPTIONS]\n\nArguments:\n  SOURCE_DIR          Directory to deploy (default: current directory)\n\nOptions:\n  -k, --api-key       API key (or set STATIC_APP_API_KEY env var)\n  -p, --pid           Project PID to update existing site\n  -e, --exclude       Comma-separated exclude patterns\n  --keep-zip          Keep zip archive after deployment\n```\n\n## Default Exclusions\n\nThe following are automatically excluded from deployment:\n- `node_modules`\n- `.git`, `.github`\n- `*.md`\n- `package*.json`\n- `.env`\n- `.openclaw`\n\n## Important Notes\n\n### ✅ What Works\n\n- **Static HTML sites** — Any number of `.html` pages\n- **CSS & JavaScript** — Frontend frameworks, vanilla JS\n- **Images & Assets** — Place in `images/` folder or root\n- **JavaScript files** — Place in `js/` folder or root\n- **Built JS Apps** — Deploy `dist/` or `build/` folder after `npm run build`\n\n### ❌ What Doesn't Work\n\n- **Node.js Server Apps** — No server-side rendering, no Express.js, no API routes\n- **PHP, Python, Ruby** — Static.app only serves static files\n- **Databases** — Use client-side storage or external APIs\n\n### JavaScript Apps Workflow\n\n```bash\n# 1. Build your React/Vue/Angular app\nnpm run build\n\n# 2. Deploy the build output\nnode scripts/deploy.js ./dist --pid YOUR_PID\n```\n\n## API Reference\n\n### Deploy Site\n- **Endpoint**: `POST https://api.static.app/v1/sites/zip`\n- **Auth**: Bearer token (API key)\n- **Body**: Multipart form with `archive` (zip file) and optional `pid`\n\n### List Sites\n- **Endpoint**: `GET https://api.static.app/v1/sites`\n- **Auth**: Bearer token (API key)\n- **Headers**: `Accept: application/json`\n\n### List Site Files\n- **Endpoint**: `GET https://api.static.app/v1/sites/files/{pid}`\n- **Auth**: Bearer token (API key)\n- **Headers**: `Accept: application/json`\n\n### Delete Site\n- **Endpoint**: `DELETE https://api.static.app/v1/sites/{pid}`\n- **Auth**: Bearer token (API key)\n- **Headers**: `Accept: application/json`\n\n### Download Site\n- **Endpoint**: `GET https://api.static.app/v1/sites/download/{pid}`\n- **Auth**: Bearer token (API key)\n- **Headers**: `Accept: application/json`\n- **Response**: Returns download URL for the site archive\n\n## Dependencies\n\n- `archiver` — Zip archive creation\n- `form-data` — Multipart form encoding\n- `node-fetch` — HTTP requests\n- `adm-zip` — Zip extraction\n\nInstall with: `cd scripts && npm install`\n\n## Response\n\nOn success, the script outputs:\n```\n✅ Deployment successful!\n🌐 Site URL: https://xyz.static.app\n📋 PID: abc123\n\nSTATIC_APP_URL=https://xyz.static.app\nSTATIC_APP_PID=abc123\n```\n\n## Workflow\n\n1. Check for `STATIC_APP_API_KEY` env var or `--api-key`\n2. Create zip archive from source directory (with exclusions)\n3. Upload to Static.app API\n4. Parse response and output URLs\n5. Clean up temporary zip file\n\n## Error Handling\n\n- Missing API key → Clear error with instructions\n- Network issues → HTTP error details\n- Invalid PID → API error message\n","readmeExcerpt":"--- name: Static Website Hosting - Static.app description: Deploy static websites to Static.app hosting. Use when the user wants to deploy, upload, or host a static site on Static.app. Triggers on phrases like \"deploy to static.app\", \"upload to static\", \"host on static.app\", \"static.app deploy\", or when working with the Static.app hosting service. --- Static.app Deployment Skill Deploy static websites and application","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"workspace/\n└── staticapp/              # Main folder for all Static.app operations\n    ├── new-site/           # New sites created locally\n    └── {pid}/              # Downloaded existing sites (by PID)"},{"language":"text","snippet":"my-site/\n├── index.html          # Homepage → /\n├── about.html          # About page → /about\n├── portfolio.html      # Portfolio → /portfolio\n├── contact.html        # Contact → /contact\n├── style.css           # Stylesheet\n├── js/                 # JavaScript files\n│   ├── main.js\n│   └── utils.js\n└── images/             # Images folder\n    ├── logo.png\n    └── photo.jpg"},{"language":"bash","snippet":"# Build your app\nnpm run build\n\n# Deploy the dist folder\nnode scripts/deploy.js ./dist"},{"language":"bash","snippet":"# Create your pages\necho '<h1>Home</h1>' > index.html\necho '<h1>About</h1>' > about.html\necho '<h1>Portfolio</h1>' > portfolio.html\n\n# Deploy\nnode scripts/deploy.js"},{"language":"bash","snippet":"node scripts/deploy.js ./my-site"},{"language":"bash","snippet":"node scripts/deploy.js . --pid olhdscieyr"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"CLAWHUB","editorialOverview":"Deploy static websites to Static.app hosting. Use when the user wants to deploy, upload, or host a static site on Static.app. Triggers on phrases like \"deploy to static.app\", \"upload to static\", \"host on static.app\", \"static.app deploy\", or when working with the Static.app hosting service. --- name: Static Website Hosting - Static.app description: Deploy static websites to Static.app hosting. Use when the user wants to deploy, upload, or host a static site on Static.app. Triggers on phrases like \"deploy to static.app\", \"upload to static\", \"host on static.app\", \"static.app deploy\", or when working with the Static.app hosting service. --- Static.app Deployment Skill Deploy static websites and application","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":451,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T15:02:39.270Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}