Awesome-omni-skill xiaohongshu-publisher
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.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cli-automation/xiaohongshu-publisher" ~/.claude/skills/diegosouzapw-awesome-omni-skill-xiaohongshu-publisher && rm -rf "$T"
skills/cli-automation/xiaohongshu-publisher/SKILL.md- pip install
小红书 Publisher
Create, format, and publish posts to 小红书 (Xiaohongshu/RED) through browser automation.
Requirements
- Python 3 with Pillow (
orpip install Pillow
)apt install python3-pil - CJK fonts —
on Linux (fonts-noto-cjk
), or Noto Sans CJK via Homebrew on macOSapt install fonts-noto-cjk - 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:
- Draft — Write post content in 小红书 style
- Cover — Generate a cover image (1080×1440)
- Review — Send draft to user for approval via messaging channel
- 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 <skill-dir>/scripts/gen_cover.py --title "主标题" --subtitle "副标题" --tags "标签1,标签2,标签3" --output /path/to/cover.png
Options:
— Main title (large text, required)--title
— Subtitle line (medium text, optional)--subtitle
— Comma-separated feature tags shown as pills (optional)--tags
— Top-right badge text (default: "OpenClaw")--badge
— Output path (default:--output
)cover.png
— Color scheme:--gradient
(default),purple
,blue
,green
,orangedark
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:
- Navigate to
https://creator.xiaohongshu.com/publish/publish - Enter title and body text
- Upload cover image via browser
actionupload - 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
on macOS (GUI session required). If--remote-debugging-port
fails, fall back to manual publishing.browser start - 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.