# Send Write My Blog to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "write-my-blog",
    "name": "Write My Blog",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/harshraj001/write-my-blog",
    "canonicalUrl": "https://clawhub.ai/harshraj001/write-my-blog",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/write-my-blog",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=write-my-blog",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "references/api-reference.md",
      "references/theme-guide.md",
      "scripts/setup.sh",
      "scripts/deploy-vercel.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/write-my-blog"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/write-my-blog",
    "downloadUrl": "https://openagent3.xyz/downloads/write-my-blog",
    "agentUrl": "https://openagent3.xyz/skills/write-my-blog/agent",
    "manifestUrl": "https://openagent3.xyz/skills/write-my-blog/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/write-my-blog/agent.md"
  }
}
```
## Documentation

### Write My Blog Skill

You are a blog content creator and platform manager. You can autonomously create,
publish, and manage a professional blog using the Write My Blog platform.

IMPORTANT: Author Identity — When creating or updating posts, always use YOUR
agent name and identity as the authorName. This ensures every post is properly
attributed to the agent that wrote it. Never leave authorName blank or use a
generic placeholder.

### 1. Initial Setup

If the blog platform is not yet set up, run the setup script:

cd <skill-directory>/platform
bash ../scripts/setup.sh

The setup script will:

Install dependencies
Guide you through database and cache selection
Generate .env.local configuration
Run database migrations
Create an admin user

### 2. Starting the Dev Server

cd <skill-directory>/platform
npm run dev

The blog will be available at http://localhost:3000.

### 3. Writing & Publishing Posts

Use the REST API to create posts. All API calls require the X-API-Key header.

Create a Post

curl -X POST http://localhost:3000/api/posts \\
  -H "Content-Type: application/json" \\
  -H "X-API-Key: YOUR_API_KEY" \\
  -d '{
    "title": "My First Post",
    "slug": "my-first-post",
    "content": "# Hello World\\n\\nThis is my first blog post written by an AI agent.",
    "excerpt": "A brief introduction to the blog.",
    "tags": ["introduction", "ai"],
    "status": "published",
    "coverImage": ""
  }'

List Posts

curl http://localhost:3000/api/posts \\
  -H "X-API-Key: YOUR_API_KEY"

Get a Single Post

curl http://localhost:3000/api/posts/my-first-post \\
  -H "X-API-Key: YOUR_API_KEY"

Update a Post

curl -X PUT http://localhost:3000/api/posts/my-first-post \\
  -H "Content-Type: application/json" \\
  -H "X-API-Key: YOUR_API_KEY" \\
  -d '{
    "title": "Updated Title",
    "content": "Updated content here."
  }'

Delete a Post

curl -X DELETE http://localhost:3000/api/posts/my-first-post \\
  -H "X-API-Key: YOUR_API_KEY"

### 4. Managing Themes

The blog ships with 10 premium themes. To list and switch:

# List available themes
curl http://localhost:3000/api/themes \\
  -H "X-API-Key: YOUR_API_KEY"

# Switch theme
curl -X PUT http://localhost:3000/api/themes \\
  -H "Content-Type: application/json" \\
  -H "X-API-Key: YOUR_API_KEY" \\
  -d '{"theme": "brutalism"}'

Available themes: minimalism, brutalism, constructivism, swiss, editorial,
hand-drawn, retro, flat, bento, glassmorphism

### 5. Uploading Media

curl -X POST http://localhost:3000/api/media \\
  -H "X-API-Key: YOUR_API_KEY" \\
  -F "file=@/path/to/image.jpg" \\
  -F "alt=Description of the image"

The response includes a url field you can use in post content.

### 6. Viewing Analytics

curl http://localhost:3000/api/analytics \\
  -H "X-API-Key: YOUR_API_KEY"

### 7. Updating Blog Settings

curl -X PUT http://localhost:3000/api/settings \\
  -H "Content-Type: application/json" \\
  -H "X-API-Key: YOUR_API_KEY" \\
  -d '{
    "blogName": "My AI Blog",
    "blogDescription": "A blog powered by AI",
    "postsPerPage": 10
  }'

### 8. Deployment

Deploy to Vercel

bash <skill-directory>/scripts/deploy-vercel.sh

Deploy to Cloudflare

bash <skill-directory>/scripts/deploy-cloudflare.sh

### API Reference

MethodEndpointDescriptionPOST/api/postsCreate a new blog postGET/api/postsList posts (paginated)GET/api/posts/[slug]Get a single post by slugPUT/api/posts/[slug]Update a postDELETE/api/posts/[slug]Delete a postPOST/api/mediaUpload media fileGET/api/themesList available themesPUT/api/themesSwitch active themeGET/api/analyticsGet blog analyticsPUT/api/settingsUpdate blog settings

### Content Guidelines

When writing blog posts:

Use Markdown format for content
Always provide a meaningful slug (URL-friendly, lowercase, hyphens)
Include an excerpt (1-2 sentences) for SEO
Add relevant tags as an array of strings
Set status to "draft" or "published"
Upload images via /api/media first, then reference the returned URL

### Security Notes

All API endpoints are protected by API key authentication
The API key must be passed in the X-API-Key header
Rate limiting is enforced (100 requests/minute by default)
All content is sanitized before storage to prevent XSS
Never expose the API key in public-facing code
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: harshraj001
- Version: 0.1.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-30T16:55:25.780Z
- Expires at: 2026-05-07T16:55:25.780Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/write-my-blog)
- [Send to Agent page](https://openagent3.xyz/skills/write-my-blog/agent)
- [JSON manifest](https://openagent3.xyz/skills/write-my-blog/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/write-my-blog/agent.md)
- [Download page](https://openagent3.xyz/downloads/write-my-blog)