🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

小红书自动发布助手

by @yuf1011

Draft and publish posts to 小红书 (Xiaohongshu/RED). Use when creating content for 小红书, drafting posts, generating cover images, or publishing via browser automation. Covers the full workflow from content creation to browser-based publishing, including cover image generation with Pillow.

Versionv1.0.0
Downloads8,367
Installs43
Stars5
TERMINAL
clawhub install xiaohongshu-publisher

📖 About This Skill


name: xiaohongshu-publisher description: Draft and publish posts to 小红书 (Xiaohongshu/RED). Use when creating content for 小红书, drafting posts, generating cover images, or publishing via browser automation. Covers the full workflow from content creation to browser-based publishing, including cover image generation with Pillow.

小红书 Publisher

Create, format, and publish posts to 小红书 (Xiaohongshu/RED) through browser automation.

Requirements

  • Python 3 with Pillow (pip install Pillow or apt install python3-pil)
  • CJK fontsfonts-noto-cjk on Linux (apt install fonts-noto-cjk), or Noto Sans CJK via Homebrew on macOS
  • OpenClaw browser tool — access to a browser with the user logged into 小红书 creator portal
  • A connected OpenClaw node (or sandbox browser) with Chrome/Chromium for browser automation
  • Overview

    This skill handles the complete 小红书 publishing pipeline: 1. Draft — Write post content in 小红书 style 2. Cover — Generate a cover image (1080×1440) 3. Review — Send draft to user for approval via messaging channel 4. Publish — Use browser automation to post (or deliver for manual posting)

    Workflow

    Step 1: Draft Content

    Create post content following 小红书 style. See references/content-guide.md for formatting rules, structure, and examples.

    Key rules:

  • Title ≤20 chars, with emoji hook
  • Use --- section breaks, emoji bullets, short paragraphs
  • End with question CTA + hashtags (8-12 tags)
  • Save draft to memory/xiaohongshu-draft.md
  • Step 2: Generate Cover Image

    Run the cover generation script:

    python3 /scripts/gen_cover.py --title "主标题" --subtitle "副标题" --tags "标签1,标签2,标签3" --output /path/to/cover.png
    

    Options:

  • --title — Main title (large text, required)
  • --subtitle — Subtitle line (medium text, optional)
  • --tags — Comma-separated feature tags shown as pills (optional)
  • --badge — Top-right badge text (default: "OpenClaw")
  • --output — Output path (default: cover.png)
  • --gradient — Color scheme: purple (default), blue, green, orange, dark
  • Output: 1080×1440 PNG with gradient background, decorative elements, CJK text.

    Step 3: Send for Review

    Send the draft content + cover image to the user's messaging channel for review. Format:

    📝 小红书草稿 — [主题]

    标题:[标题]

    [正文内容]

    封面图已生成:[path]

    请确认: ✅ 可以发布 ✏️ 需要修改 ❌ 不发

    Never auto-publish. Always wait for explicit user approval.

    Step 4: Publish via Browser

    After user approval, publish using browser automation on the configured node.

    See references/browser-publish.md for the complete browser automation steps.

    Summary: 1. Navigate to https://creator.xiaohongshu.com/publish/publish 2. Enter title and body text 3. Upload cover image via browser upload action 4. Click publish

    Fallback: Manual Publishing

    If browser automation is unavailable (CDP issues, node offline, etc.), send the complete post to the user's channel with all content formatted for easy copy-paste:

    📋 小红书发帖内容(请手动发布)

    【标题】[标题]

    【正文】 [正文内容]

    【标签】[hashtags]

    封面图:[path to cover image]

    Known Limitations

  • Mac Chrome CDP: Chrome launched via SSH/node may fail to bind --remote-debugging-port on macOS (GUI session required). If browser start fails, fall back to manual publishing.
  • Login state: 小红书 creator portal requires login. If the session has expired, ask the user to re-login in their browser before proceeding.
  • Pillow emoji: Pillow cannot render color emoji (NotoColorEmoji.ttf) — use text/icon alternatives in cover images.
  • Cron Integration

    This skill works with cron jobs for scheduled daily posting. Typical cron setup:

    Schedule: 0 8 * * * (Asia/Shanghai)
    Session: isolated agentTurn
    Delivery: announce to user's channel
    

    The cron job message should reference this skill and include the content plan/topic for the day.