Install
openclaw skills install @mebusw/xhsUse this skill when publishing or managing posts on Xiaohongshu (小红书 / RED / xiaohongshu) via the official Creator Center. Triggers on requests to draft, save, or publish a note; generate titles, captions, or topic chips; reply to comments or DMs; or check creator dashboard metrics. The skill follow
openclaw skills install @mebusw/xhs通过浏览器自动化操作官方创作者中心完成全流程。
https://creator.xiaohongshu.comhttps://creator.xiaohongshu.com/publish/publish?from=menu&target=image绝不强制使用任何特定语言。 本技能默认跟随用户在当轮对话中实际使用的语言:
模板与示例仅供参考语言风格参考,不应被理解为"必须用中文"或"必须用某种语言"。 若用户在多轮中切换语言,跟随用户最近一轮的语言。
publish_now 或 draft_onlytarget=image,通过隐藏的 <input type="file" multiple accept=".jpg,.jpeg,.png,.webp"> 上传。act:click + act:type 填写标题/正文(act:type 必须提供 ref,不能盲打)draft_only:点击保存/暂存并报告成功。
<xhs-publish-btn> 自定义元素渲染,实际位于 closed Shadow DOM 内。外部 DOM 查询通常只能看到空的 <xhs-publish-btn>,无法直接定位内部的 button.ce-btn.bg-red。(x:248, y:853, w:680, h:90);内部两个按钮依次为“暂存离开”和“发布”,宽度约 120px,中间间距约 24px。不要固定使用旧坐标;先读取外层组件 bounding box。红色按钮中心可按公式计算:x = host.x + (host.width - 264) / 2 + 204,y = host.y + 45。确认 submit-disabled="false" 后,使用真实鼠标移动/按下/抬起或坐标点击该中心位置。publish_now:进行最后一轮 是/否 确认,然后发布。核心事实(取代已过时的"光标后移"建议,该建议无效):
什么是 "chip"? 编辑器 DOM 中已格式化的话题标签,渲染为:
<a class="tiptap-topic" data-topic='{"name":"xxx","id":"xxx"}' contenteditable="false">
#xxx<span class="content-hide">[话题]#</span>
</a>
与真实话题 ID 绑定。在已发布笔记中点击该 chip → 跳转到话题页。
chip 候选从何而来? 小红书会在编辑器下方根据"标题 + 正文 + 图片"的语义自动生成 4-5 个"推荐话题" chip。不会因输入 #、移动光标或按方向键触发。用户正文中输入的 #XXX 文本仅以蓝色高亮文本形式存在,不会被自动格式化。
触发条件: 编辑器中同时填好标题 + 正文 + 至少一张图片后,小红书才会渲染推荐行。写长文(无图)模式下该行不会出现。 若需要 chip,请始终使用 图文 模式。
如何等待 chip 出现: 在最后一次 act:type 后,执行 act:evaluate 运行 await new Promise(r => setTimeout(r, 1500))(1.5 秒),然后 act:snapshot。若在行容器(通常为 e211)内看到形如 [ref=e212] "#xxx" 的子元素,说明 chip 行已就绪。不要轮询 —— 1.5 秒足够,小红书内部已有防抖。
如何点击 chip:
act:click 某个 chip 的 ref(如 e212)→ chip 会被插入到正文末尾,成为格式化的 <a class="tiptap-topic">。document.querySelectorAll('a.tiptap-topic') 验证结果。编辑器和右侧预览通常各渲染一份,因此 DOM 数量可能是实际 chip 数的 2 倍;检查 innerText 中带 [话题]# 的节点可统计编辑器内实际 chip。若用户想要指定 #XXX 标签(不在小红书推荐中)怎么办?
e223)→ 打开搜索弹窗。GET /api/store/search/topic?keyword=XXX → 返回话题信息。标签推荐命中率(教练培训领域观察,2026-06-06):
| 标签 | 命中? | 原因 |
|---|---|---|
#敏捷转型 | ✅ | 纯中文组合,训练充分 |
#教练对话 | ✅ | 纯中文组合,训练充分 |
#Scrum教练 | ❌ | 中英混排;训练数据稀缺 |
| 经验法则 | — | 纯中文组合 → 高命中率。中英混排 → 必须通过 "添加话题" 手动搜索。 |
常见坑 —— chip 元素的 contenteditable=false。 一旦插入,Backspace 在编辑器中无法删除。如需移除误点的 chip,使用 act:evaluate 精准地从 DOM 中移除 <a class="tiptap-topic"> 节点,或保留并继续追加。
发布操作要求用户给出明确的确认意图,例如:
若用户含糊其辞("随便"、"你看着办"),默认进入"仅草稿"模式并说明原因。
<xhs-publish-btn> 使用 closed Shadow DOM: 元素本身可能显示 children=0、innerHTML 为空、shadowRoot 不可访问,但内部按钮实际存在。不要继续查找 button.ce-btn.bg-red,因为 closed Shadow DOM 会使选择器返回 0 个元素;也不要把外层组件中心 (x:588, y:898) 当作发布按钮,它可能落在两个按钮之间。应点击红色按钮中心约 (x:660, y:898),点击后等待页面跳转到 /publish/success 并核验“发布成功”。act:evaluate 执行原子操作(在同一调用中合并 click + wait + snapshot),而不是分开的 act:click + act:snapshot。image_generate工具, 或图像模(默认 MiniMax 图像模型)。。browser.upload 仅接受 /Users/jacky/.openclaw/media/inbound/ 下的文件。生成在 /Users/jacky/.openclaw/media/tool-image-generation/... 的图片需先 cp 到 inbound/ 目录。act:type 必须提供 ref 或 selector。 盲打(无 ref)会失败并报 type requires ref or selector。act:press 配合 ref 是稳定的。 不带 ref 偶尔会触发标签页重置。<xhs-publish-btn> 的发布按钮位于 closed Shadow DOM: 无法通过普通 DOM 选择器访问内部按钮;使用外层组件坐标定位红色“发布”按钮,并在点击后核验 /publish/success 和“发布成功”。可复用的文案模板见 references/post-templates.md。