/install static-app
Static.app Deployment Skill
Deploy static websites and applications to Static.app hosting directly from OpenClaw.
Workspace Structure
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
How Static.app Handles Files
Static.app automatically creates clean URLs from your filenames:
| File | URL |
|---|---|
index.html |
/ (homepage) |
about.html |
/about |
portfolio.html |
/portfolio |
contact.html |
/contact |
No subdirectories needed! Just create .html files in the root folder.
Project Structure
Simple Multi-Page Site
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
JavaScript App (React, Vue, etc.)
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
Prerequisites
- 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_KEYenv var
Usage
Deploy Multi-Page Site
# Create your pages
echo '\x3Ch1>Home\x3C/h1>' > index.html
echo '\x3Ch1>About\x3C/h1>' > about.html
echo '\x3Ch1>Portfolio\x3C/h1>' > portfolio.html
# Deploy
node scripts/deploy.js
Deploy Specific Directory
node scripts/deploy.js ./my-site
Update Existing Site
node scripts/deploy.js . --pid olhdscieyr
List All Sites
node scripts/list.js
List Site Files
node scripts/files.js YOUR_PID
Options:
--raw— Output raw JSON-k \x3Ckey>— Specify API key
Delete Site
node scripts/delete.js YOUR_PID
Options:
-f, --force— Skip confirmation prompt-k \x3Ckey>— Specify API key
Download Site
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 \x3Ckey>— 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
Script Options
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
Default Exclusions
The following are automatically excluded from deployment:
node_modules.git,.github*.mdpackage*.json.env.openclaw
Important Notes
✅ What Works
- Static HTML sites — Any number of
.htmlpages - 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/orbuild/folder afternpm run build
❌ What Doesn't Work
- 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
JavaScript Apps Workflow
# 1. Build your React/Vue/Angular app
npm run build
# 2. Deploy the build output
node scripts/deploy.js ./dist --pid YOUR_PID
API Reference
Deploy Site
- Endpoint:
POST https://api.static.app/v1/sites/zip - Auth: Bearer token (API key)
- Body: Multipart form with
archive(zip file) and optionalpid
List Sites
- Endpoint:
GET https://api.static.app/v1/sites - Auth: Bearer token (API key)
- Headers:
Accept: application/json
List Site Files
- Endpoint:
GET https://api.static.app/v1/sites/files/{pid} - Auth: Bearer token (API key)
- Headers:
Accept: application/json
Delete Site
- Endpoint:
DELETE https://api.static.app/v1/sites/{pid} - Auth: Bearer token (API key)
- Headers:
Accept: application/json
Download Site
- 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
Dependencies
archiver— Zip archive creationform-data— Multipart form encodingnode-fetch— HTTP requestsadm-zip— Zip extraction
Install with: cd scripts && npm install
Response
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
Workflow
- Check for
STATIC_APP_API_KEYenv 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
Error Handling
- Missing API key → Clear error with instructions
- Network issues → HTTP error details
- Invalid PID → API error message
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install static-app - 安装完成后,直接呼叫该 Skill 的名称或使用
/static-app触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Static App 是什么?
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. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 1377 次。
如何安装 Static App?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install static-app」即可一键安装,无需额外配置。
Static App 是免费的吗?
是的,Static App 完全免费(开源免费),可自由下载、安装和使用。
Static App 支持哪些平台?
Static App 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Static App?
由 Akellacom(@akellacom)开发并维护,当前版本 v1.0.4。