magichanks/openclaw-xhs-workflow
OpenClaw plugin for XiaoHongShu automation, AI content workflow, image generation, and draft-first publishing
OpenClaw XiaoHongShu Workflow
Turn one topic into a reviewable, resumable XiaoHongShu post pack.
An OpenClaw plugin for XiaoHongShu automation, AI content workflow, cover image generation, review, and draft-first publishing.
research -> copy -> image -> review -> publisher
把一个选题变成一套可检查、可续跑、可存草稿的小红书内容包。
Quick Start
cp .env.example .env.local
/usr/bin/python3 scripts/check_env.py --profile mock
/usr/bin/python3 scripts/quickstart.py --profile mockExpected result:
- a new pack under
./tmp-packs - final status
draft_saved
这是最快的首次跑通路径。
预期结果:
./tmp-packs下出现一个新 pack- 最终状态是
draft_saved
This path needs:
- no real image API
- no browser profile
- no publisher login
这条路径不需要:
- 真实图像 API
- 浏览器 profile
- publisher 登录
Use Cases
This project is a good fit if you are looking for:
- XiaoHongShu automation
- XiaoHongShu content workflow
- AI-assisted Xiaohongshu copywriting
- draft-first Xiaohongshu publishing
- OpenClaw content operations
- OpenClaw image-generation workflow
如果你在找这些方向,它会比较合适:
- 小红书自动化
- 小红书内容工作流
- AI 辅助小红书文案生成
- 先存草稿的小红书发布流程
- OpenClaw 内容运营流程
- OpenClaw 配图工作流
What This Project Does
This repo is a workflow layer for one XiaoHongShu post.
It is designed as a reusable OpenClaw plugin and XiaoHongShu publishing workflow, not just a one-off prompt template.
Give it one topic, and it will:
- research the topic
- write the post
- prepare one cover image
- review the pack
- save it to draft or publish it later
这个仓库是“一篇小红书内容”的 workflow 层。
给它一个选题后,它会:
- 做 research
- 写文案
- 准备一张封面图
- 做审核
- 存草稿,或者稍后正式发布
What You Get Back
The result is not just generated text. The result is a working folder for one post, for example:
2026-03-14-developer-honest-share/
├── brief.md
├── title.txt
├── content.txt
├── hashtags.txt
├── research.md
├── research.json
├── image_prompts.md
├── review_report.json
├── publish_result.json
├── workflow_state.json
├── agent_runs.json
└── assets/
├── cover.png
└── manifest.json
So the real output is:
- draft content
- one cover image
- review decision
- publish result
- run history
- resumable workflow state
所以它真正交付的是:
- 草稿内容
- 一张封面图
- 审核结论
- 发布结果
- 运行历史
- 可续跑的工作流状态
How One Topic Flows Through The System
research
expand the topic into angles, pain points, and claim boundariescopy
write title, body, hashtags, asset plan, and image promptimage
create one cover image from a source file, OpenClaw image capability, or an image APIreview
decide whether the pack is ready for publisher stagepublisher
fill the publish flow and usually stop atsave_draft
一个选题会按这个顺序流过系统:
research
扩展成角度、痛点和表达边界copy
生成标题、正文、标签、素材计划和图片提示词image
用真实图片、OpenClaw 图像能力或图像 API 生成封面图review
判断 pack 是否具备进入 publisher 阶段的条件publisher
填写发布流程,默认通常停在save_draft
Who This Repo Is For
This repo is written for two readers at the same time:
- the human operator who wants the shortest path to a successful run
- the user's OpenClaw, which needs a stable contract and a clear execution boundary
这个仓库同时写给两个读者:
- 想尽快跑通流程的人
- 需要稳定 contract 和明确执行边界的 OpenClaw
It is useful when:
- you want OpenClaw to generate content, but still leave inspectable files
- you want failures to be resumable instead of restarting from zero
- you want draft-first publishing instead of direct blind publish
它适合这些场景:
- 你希望 OpenClaw 负责生成内容,但仍然保留可检查文件
- 你希望失败后可以续跑,而不是每次重来
- 你希望默认先存草稿,而不是直接盲发
It is not:
- a private content repository
- a browser profile manager
- a credential vault
它不是:
- 私有内容仓库
- 浏览器 profile 管理器
- 凭证保险箱
If You Already Use OpenClaw
Minimal real path
If your first real run should stay simple, provide one explicit cover image:
/usr/bin/python3 scripts/check_env.py --profile openclaw --source-file /abs/path/to/cover.png
/usr/bin/python3 scripts/quickstart.py --profile openclaw --source-file /abs/path/to/cover.png如果你已经在用 OpenClaw,想让第一次真实运行保持简单,就提供一张明确的封面图:
/usr/bin/python3 scripts/check_env.py --profile openclaw --source-file /abs/path/to/cover.png
/usr/bin/python3 scripts/quickstart.py --profile openclaw --source-file /abs/path/to/cover.pngIf OpenClaw already owns image generation
Use the openclaw-images path. The image stage will consume the prompt written during copy and ask OpenClaw to generate the cover image.
如果 OpenClaw 本身已经接好了图像生成,就用 openclaw-images 路径。图片阶段会直接消费 copy 写出的提示词,并让 OpenClaw 生成封面。
This is useful for users who already have OpenClaw connected to OpenAI Images, Gemini image generation, or another image-capable provider.
这对那些已经把 OpenClaw 接到 OpenAI Images、Gemini 图像生成或其他图像能力提供方的用户尤其合适。
Supported Profiles
mock- fastest first success path
- fully local
openclaw- content and publisher go through OpenClaw
- image comes from
--source-file
openclaw-images- content, image, and publisher all go through OpenClaw
openai-images- image generation goes through OpenAI
gemini-images- image generation goes through Gemini
支持的 profile:
mock- 最快的首次成功路径
- 完全本地
openclaw- 内容和 publisher 走 OpenClaw
- 图片来自
--source-file
openclaw-images- 内容、图片和 publisher 都走 OpenClaw
openai-images- 图片生成走 OpenAI
gemini-images- 图片生成走 Gemini
What To Tell OpenClaw
If OpenClaw is invoking this repo, keep the instruction narrow:
- read the scheduler or run configuration first
- treat the pack directory as the source of truth
- respect
allow_publish=false - prefer
save_draft - write failures back into the pack files
如果由 OpenClaw 调用这个仓库,指令保持收敛:
- 先读 scheduler 或运行配置
- 把 pack 目录当作唯一事实源
- 遵守
allow_publish=false - 默认优先
save_draft - 失败时把结果写回 pack 文件