Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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.
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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Deploy static websites and applications to Static.app hosting directly from OpenClaw.
All Static.app operations in your workspace use a dedicated folder structure: workspace/ โโโ staticapp/ # Main folder for all Static.app operations โโโ new-site/ # New sites created locally โโโ {pid}/ # Downloaded existing sites (by PID) New sites: Created in staticapp/ subfolders before deployment Downloaded sites: Extracted to staticapp/{pid}/ for editing
Static.app automatically creates clean URLs from your filenames: FileURLindex.html/ (homepage)about.html/aboutportfolio.html/portfoliocontact.html/contact No subdirectories needed! Just create .html files in the root folder.
my-site/ โโโ index.html # Homepage โ / โโโ about.html # About page โ /about โโโ portfolio.html # Portfolio โ /portfolio โโโ contact.html # Contact โ /contact โโโ style.css # Stylesheet โโโ js/ # JavaScript files โ โโโ main.js โ โโโ utils.js โโโ images/ # Images folder โโโ logo.png โโโ photo.jpg
For JS apps, build first, then deploy the dist (or build) folder: # Build your app npm run build # Deploy the dist folder node scripts/deploy.js ./dist
Get API Key: Go to https://static.app/account/api and create an API key (starts with sk_) Set Environment Variable: Store the API key in STATIC_APP_API_KEY env var
# Create your pages echo '<h1>Home</h1>' > index.html echo '<h1>About</h1>' > about.html echo '<h1>Portfolio</h1>' > portfolio.html # Deploy node scripts/deploy.js
node scripts/deploy.js ./my-site
node scripts/deploy.js . --pid olhdscieyr
node scripts/list.js
node scripts/files.js YOUR_PID Options: --raw โ Output raw JSON -k <key> โ Specify API key
node scripts/delete.js YOUR_PID Options: -f, --force โ Skip confirmation prompt -k <key> โ Specify API key
Download an existing site to your workspace for editing: node scripts/download.js YOUR_PID This will: Fetch the download URL from Static.app API Download the site archive Extract it to staticapp/{pid}/ Options: -p, --pid โ Site PID to download -o, --output โ Custom output directory (default: ./staticapp/{pid}) -k <key> โ Specify API key --raw โ Output raw JSON response Example: # Download site to default location node scripts/download.js abc123 # Download to custom folder node scripts/download.js abc123 -o ./my-site
node scripts/deploy.js [SOURCE_DIR] [OPTIONS] Arguments: SOURCE_DIR Directory to deploy (default: current directory) Options: -k, --api-key API key (or set STATIC_APP_API_KEY env var) -p, --pid Project PID to update existing site -e, --exclude Comma-separated exclude patterns --keep-zip Keep zip archive after deployment
The following are automatically excluded from deployment: node_modules .git, .github *.md package*.json .env .openclaw
Static HTML sites โ Any number of .html pages CSS & JavaScript โ Frontend frameworks, vanilla JS Images & Assets โ Place in images/ folder or root JavaScript files โ Place in js/ folder or root Built JS Apps โ Deploy dist/ or build/ folder after npm run build
Node.js Server Apps โ No server-side rendering, no Express.js, no API routes PHP, Python, Ruby โ Static.app only serves static files Databases โ Use client-side storage or external APIs
# 1. Build your React/Vue/Angular app npm run build # 2. Deploy the build output node scripts/deploy.js ./dist --pid YOUR_PID
Endpoint: POST https://api.static.app/v1/sites/zip Auth: Bearer token (API key) Body: Multipart form with archive (zip file) and optional pid
Endpoint: GET https://api.static.app/v1/sites Auth: Bearer token (API key) Headers: Accept: application/json
Endpoint: GET https://api.static.app/v1/sites/files/{pid} Auth: Bearer token (API key) Headers: Accept: application/json
Endpoint: DELETE https://api.static.app/v1/sites/{pid} Auth: Bearer token (API key) Headers: Accept: application/json
Endpoint: GET https://api.static.app/v1/sites/download/{pid} Auth: Bearer token (API key) Headers: Accept: application/json Response: Returns download URL for the site archive
archiver โ Zip archive creation form-data โ Multipart form encoding node-fetch โ HTTP requests adm-zip โ Zip extraction Install with: cd scripts && npm install
On success, the script outputs: โ Deployment successful! ๐ Site URL: https://xyz.static.app ๐ PID: abc123 STATIC_APP_URL=https://xyz.static.app STATIC_APP_PID=abc123
Check for STATIC_APP_API_KEY env var or --api-key Create zip archive from source directory (with exclusions) Upload to Static.app API Parse response and output URLs Clean up temporary zip file
Missing API key โ Clear error with instructions Network issues โ HTTP error details Invalid PID โ API error message
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.