Install
openclaw skills install md-webTurn any content into a web page with a shareable URL. Use when the user wants to preview, generate, share, export, or publish content as a web page.
openclaw skills install md-webUpload raw .md files to an S3-compatible storage bucket, where a pre-deployed Docsify server automatically renders them as web pages. This avoids sending long text in the conversation.
Uploaded content is publicly accessible. Only use this skill when the user explicitly requests it:
/md-web)Check if ~/.md-web/config.json exists (cross-platform: use the user's home directory). If it does NOT exist or has empty fields, follow the Configuration section below first.
Either use an existing .md file, or write the content to a temporary file. Choose the temp path based on the current platform (e.g., /tmp/ on Linux/macOS, system temp dir on Windows). Use whichever path works in the current shell environment.
node {SKILL_DIR}/upload.js <local-file> <remote-key>
{SKILL_DIR}: the base directory of this skill (shown at the top when skill is loaded)<remote-key>: a descriptive lowercase name with hyphens (e.g., api-docs.md, project-guide.md). A timestamp is prepended automatically to avoid filename collisions.Example success output:
api-docs- https://example.r2.dev/index.html#/20260305-091500-api-docs
This only needs to happen once. On subsequent runs, config.json already exists.
{SKILL_DIR}/README.md for detailed setup instructions (Cloudflare R2 / AWS S3 / other S3-compatible services).https:// (e.g., ACCOUNT_ID.r2.cloudflarestorage.com)https://docs.example.com); otherwise use the default R2.dev URL (e.g., https://pub-XXXX.r2.dev). Recommend custom domain for production use — R2.dev URLs have rate limits.auto for Cloudflare R2, or the actual region for AWS S3 (e.g., us-east-1). Default is auto.30. Set to 0 to keep files forever. The script sets an S3 lifecycle rule automatically — only timestamped uploads are affected; Docsify server files are never expired. Note: this requires the API token to have Admin Read & Write permission (not just Object Read & Write). If the token lacks permission, the script will warn but still upload normally — the user can set the lifecycle rule manually in the Cloudflare Dashboard instead.~/.md-web/config.json (create the ~/.md-web/ directory if it doesn't exist). Use the user's home directory ($HOME on Unix, %USERPROFILE% on Windows):{
"access_key": "...",
"secret_key": "...",
"endpoint": "...",
"bucket": "...",
"region": "auto",
"public_url": "...",
"expire_days": 30
}
.md file — Docsify handles rendering.upload.js uses only Node.js built-in modules (zero dependencies).This skill connects only to the S3 endpoint configured by the user in config.json. No data is sent to the skill author or any third-party service.
| Endpoint | Purpose | Data sent |
|---|---|---|
User's S3 endpoint (config.json → endpoint) | Upload .md files and Docsify server assets | File content, S3 auth headers |
access_key, secret_key) are stored locally in ~/.md-web/config.json (outside the skill directory, safe from upgrades) and only sent to the user's own S3 endpoint for authentication.upload.js uses only Node.js built-in modules — no third-party dependencies.By using this skill, markdown content is uploaded to your own S3-compatible storage bucket and made publicly accessible. No data is sent to the skill author or any third-party service. Only install if you trust the storage provider you configure.