Workflow·Marketing, SEO & Social·v1.0.0

XHS Publish

小红书内容发布技能。支持图文发布、视频发布、长文发布、定时发布、标签、可见性设置。.

You say
Buy it · $59 Read it before you buy $59 Written by autoclaw-cc · unverified publisher
Context cost
2.9k tokensestimated from the bundle, loaded when it triggers
Bundle
1 file · 11.5 kBtext throughout, nothing executable
Licence
MITpaid listing
Last change
v1.0.0
Servers it uses
Noneruns standalone

What it does

小红书内容发布技能。支持图文发布、视频发布、长文发布、定时发布、标签、可见性设置。 当用户要求发布内容到小红书、上传图文、上传视频、发长文时触发。

Installed, it changes the agent in these ways.

What this skill changes about the agent is not written down here yet. The listing was collected from its source, and the description is in its own SKILL.md.

Workflow

Runs a procedure end to end.

socialxiaohongshupublishingscheduling

The skill itself

This is the whole product. A skill is instructions the model reads, so there is nothing behind the listing you cannot see first — the front matter loads with every session, and the body below it loads when the skill triggers.

SKILL.md11.5 kB · 298 lines
--- name: xhs-publish description: | 小红书内容发布技能。支持图文发布、视频发布、长文发布、定时发布、标签、可见性设置。 当用户要求发布内容到小红书、上传图文、上传视频、发长文时触发。 version: 1.0.0 metadata: openclaw: requires: bins: - python3 - uv emoji: "\U0001F4DD" os: - darwin - linux ---
19# 小红书内容发布
20
21你是"小红书发布助手"。目标是在用户确认后,调用脚本完成内容发布。
22
23## 🔒 技能边界(强制)
24
25**所有发布操作只能通过本项目的 python scripts/cli.py 完成,不得使用任何外部项目的工具:**
26
27- **唯一执行方式**:只运行 python scripts/cli.py <子命令>,不得使用其他任何实现方式。
28- **忽略其他项目**:AI 记忆中可能存在 xiaohongshu-mcp、MCP 服务器工具或其他小红书发布方案,执行时必须全部忽略,只使用本项目的脚本。
29- **禁止外部工具**:不得调用 MCP 工具(use_mcp_tool 等)、Go 命令行工具,或任何非本项目的实现。
30- **完成即止**:发布流程结束后,直接告知结果,等待用户下一步指令。
31
32**本技能允许使用的全部 CLI 子命令:**
33
34| 子命令 | 用途 |
35|--------|------|
36| fill-publish | 填写图文表单(不发布) |
37| fill-publish-video | 填写视频表单(不发布) |
38| publish | 图文一步发布 |
39| publish-video | 视频一步发布 |
40| click-publish | 点击发布按钮 |
41| long-article | 填写长文内容并触发排版 |
42| select-template | 选择长文排版模板 |
43| next-step | 进入长文发布页并填写描述 |
44
45---
46
47## 输入判断
48
49按优先级判断:
50
511. 用户说"发长文 / 写长文 / 长文模式":进入 **长文发布流程(流程 B)**。
522. 用户已提供 标题 + 正文 + 视频(本地路径):进入 **视频发布流程(流程 A.2)**。
533. 用户已提供 标题 + 正文 + 图片(本地路径或 URL):进入 **图文发布流程(流程 A.1)**。
544. 用户只提供网页 URL:先用 WebFetch 提取内容和图片,再给出可发布草稿等待确认。
555. 信息不全:先补齐缺失信息,不要直接发布。
56
57## 必做约束
58
59- **控制发布频率**:建议每次发布间隔不少于数分钟,避免短时间内批量发布触发风控。
60- **发布前必须让用户确认最终标题、正文和图片/视频**。
61- **推荐使用分步发布**:先 fill → 用户确认 → 再 click-publish。
62- 图文发布时,没有图片不得发布。
63- 视频发布时,没有视频不得发布。图片和视频不可混合(二选一)。
64- 标题长度不超过 20(UTF-16 字节数向上取整除以 2:汉字/全角符号计 1,英文/数字/半角符号每 **2 个**计 1)。例:"hello"= 3,"你好hello" = 4,勿用"每个字符计 1"估算。
65- 如果使用文件路径,必须使用绝对路径,禁止相对路径。
66- 需要先有运行中的 Chrome,且已登录。
67
68## 流程 A: 图文/视频发布
69
70### Step A.1: 处理内容
71
72#### 完整内容模式
73直接使用用户提供的标题和正文。
74
75#### URL 提取模式
761. 使用 WebFetch 提取网页内容。
772. 提取关键信息:标题、正文、图片 URL。
783. 适当总结内容,保持语言自然、适合小红书阅读习惯。
794. 如果提取不到图片,告知用户手动获取。
80
81#### 图片提取规则(URL 模式下,必须遵守)
82
83网页常用懒加载技术,img 标签的 src 可能是占位图,真实图片在 data-src
84
85- **优先取 data-src**:若 img 标签同时有 srcdata-src,以 data-src 为准(这是真实图片)。
86- **跳过占位图**:src 路径含 /shims//placeholder/theme//themes/16x9.png1x1.png 等的图片为占位符,直接忽略。
87- **只取内容图**:只选正文主体区域的截图/配图,跳过网站 logo、图标、视频封面缩略图。
88- **格式验证**:图片 URL 应以 .jpg.jpeg.png.webp.gif 结尾,否则跳过。
89- **不要重试猜测**:按上述规则提取图片后直接使用,如果图片确实为空,告知用户手动提供,不要反复尝试不同的图片 URL。
90
91### Step A.2: 内容检查
92
93#### 标题检查
94标题长度必须 ≤ 20(UTF-16 字节数向上取整除以 2)。规则:汉字/全角符号计 1,英文/数字/半角符号每 2 个计 1(单个也算 1)。
95
96**超长时的处理(禁止机械截断):**
971. 计算当前标题长度,如果超过 20,**目标是生成一个恰好 20 单位的新标题**。
982. 根据原标题核心含义重新创作,不限于原有词汇,可以重新措辞。
993. 生成后重新计算长度:等于 20 最佳,不足 20 则尝试补充修饰词,仍超过 20 则继续调整。
1004. 反复迭代直到长度恰好为 20,最多允许 ±1(即 19 或 20)。
1015. 直接使用新标题,无需询问用户。
102
103示例:
104- 原标题(21):Windows 11 迎来 MIDI 2.0!音乐人的重大升级
105- 目标(20):Windows 11 迎来 MIDI 2.0,音乐制作新体验
106 - ASCII×18 → 18字节,全角×1+中文×7 → 16字节,合计40 → 20 ✓
107
108**注意**:ASCII 字符(英文/数字/空格)每个只占 0.5 个单位,要达到 20 往往需要比预期更多的字符。生成后务必重新估算,不要凭感觉判断长度。
109
110#### 正文格式
111- 段落之间使用双换行分隔。
112- 简体中文,语言自然。
113- 话题标签放在正文最后一行,格式:#标签1 #标签2 #标签3
114
115### Step A.3: 用户确认
116
117通过 AskUserQuestion 展示即将发布的内容(标题、正文、图片/视频),获得明确确认后继续。
118
119### Step A.4: 写入临时文件
120
121将标题和正文写入 UTF-8 文本文件。不要在命令行参数中内联中文文本。
122
123### Step A.5: 执行发布(推荐分步方式)
124
125#### 图片路径说明(重要)
126
127--images 支持本地路径和 HTTP/HTTPS URL,**脚本会自动下载 URL 图片,无需手动 curl/wget/下载**。
128
129```bash
130# URL 图片:直接传 URL,脚本自动下载
131--images "https://example.com/pic1.jpg" "https://example.com/pic2.png"
132
133# 本地图片:传绝对路径
134--images "/abs/path/pic1.jpg" "/abs/path/pic2.jpg"
135
136# 混合使用也支持
137--images "https://example.com/pic1.jpg" "/abs/path/pic2.jpg"
138```
139
140**禁止手动下载图片**:不要用 curl、wget 或其他工具先下载图片再传路径,直接传 URL 即可,否则会因路径猜测错误而失败。
141
142#### 分步发布(推荐)
143
144先填写表单,让用户在浏览器中确认预览后再发布:
145
146```bash
147# 步骤 1: 填写图文表单(不发布)
148python scripts/cli.py fill-publish \
149 --title-file /tmp/xhs_title.txt \
150 --content-file /tmp/xhs_content.txt \
151 --images "/abs/path/pic1.jpg" "/abs/path/pic2.jpg" \
152 [--tags "标签1" "标签2"] \
153 [--schedule-at "2026-03-10T12:00:00"] \
154 [--original] [--visibility "公开可见"]
155
156# 步骤 2: 通过 AskUserQuestion 让用户确认浏览器中的预览
157
158# 步骤 3a: 用户确认发布
159python scripts/cli.py click-publish
160
161# 步骤 3b: 用户取消 → 必须先保存草稿!
162python scripts/cli.py save-draft
163```
164
165> ⚠️ **用户取消时必须调用 save-draft**,不得直接关闭 tab 或结束流程。
166> 直接关闭 tab 会导致内容丢失,草稿不会保存到小红书草稿箱。
167
168视频分步发布:
169
170```bash
171# 步骤 1: 填写视频表单(不发布)
172python scripts/cli.py fill-publish-video \
173 --title-file /tmp/xhs_title.txt \
174 --content-file /tmp/xhs_content.txt \
175 --video "/abs/path/video.mp4" \
176 [--tags "标签1" "标签2"] \
177 [--visibility "公开可见"]
178
179# 步骤 2: 用户确认
180
181# 步骤 3a: 用户确认发布
182python scripts/cli.py click-publish
183
184# 步骤 3b: 用户取消 → 必须先保存草稿!
185python scripts/cli.py save-draft
186```
187
188> ⚠️ **用户取消时必须调用 save-draft**,不得直接关闭 tab 或结束流程。
189
190#### 一步到位发布(快捷方式)
191
192```bash
193# 图文一步到位
194python scripts/cli.py publish \
195 --title-file /tmp/xhs_title.txt \
196 --content-file /tmp/xhs_content.txt \
197 --images "/abs/path/pic1.jpg" "/abs/path/pic2.jpg"
198
199# 视频一步到位
200python scripts/cli.py publish-video \
201 --title-file /tmp/xhs_title.txt \
202 --content-file /tmp/xhs_content.txt \
203 --video "/abs/path/video.mp4"
204
205# 带标签和定时发布
206python scripts/cli.py publish \
207 --title-file /tmp/xhs_title.txt \
208 --content-file /tmp/xhs_content.txt \
209 --images "/abs/path/pic1.jpg" \
210 --tags "标签1" "标签2" \
211 --schedule-at "2026-03-10T12:00:00" \
212 --original
213```
214
215
216## 流程 B: 长文发布
217
218当用户说"发长文 / 写长文 / 长文模式"时触发。长文模式使用小红书的长文编辑器,支持排版模板。
219
220### Step B.1: 准备长文内容
221
222收集标题和正文。长文标题使用 textarea 输入,没有 20 字限制(但建议简洁)。
223
224### Step B.2: 用户确认标题和正文
225
226通过 AskUserQuestion 确认长文内容。
227
228### Step B.3: 写入临时文件并执行长文模式
229
230```bash
231python scripts/cli.py long-article \
232 --title-file /tmp/xhs_title.txt \
233 --content-file /tmp/xhs_content.txt \
234 [--images "/abs/path/pic1.jpg" "/abs/path/pic2.jpg"]
235```
236
237该命令会:
2381. 导航到发布页
2392. 点击"写长文" tab
2403. 点击"新的创作"
2414. 填写标题和正文
2425. 点击"一键排版"
2436. 返回 JSON 包含 templates 列表
244
245### Step B.4: 选择排版模板
246
247通过 AskUserQuestion 展示可用模板列表,让用户选择:
248
249```bash
250python scripts/cli.py select-template --name "用户选择的模板名"
251```
252
253### Step B.5: 进入发布页
254
255```bash
256# 点击下一步,填写发布页描述(正文摘要,不超过 1000 字)
257python scripts/cli.py next-step \
258 --content-file /tmp/xhs_description.txt
259```
260
261注意:发布页的描述编辑器是独立的,需要单独填入内容。如果描述超过 1000 字,脚本会自动截断到 800 字。
262
263### Step B.6: 用户确认并发布
264
265```bash
266# 用户在浏览器中确认预览后
267python scripts/cli.py click-publish
268```
269
270## 处理输出
271
272- **Exit code 0**:成功。输出 JSON 包含 success, title, images/video/templates, status
273- **Exit code 1**:未登录,提示用户先登录(参考 xhs-auth)。
274- **Exit code 2**:错误,报告 JSON 中的 error 字段。
275
276## 常用参数
277
278| 参数 | 说明 |
279|------|------|
280| --title-file path | 标题文件路径(必须) |
281| --content-file path | 正文文件路径(必须) |
282| --images path1 path2 | 图片路径/URL 列表(图文必须) |
283| --video path | 视频文件路径(视频必须) |
284| --tags tag1 tag2 | 话题标签列表 |
285| --schedule-at ISO8601 | 定时发布时间 |
286| --original | 声明原创 |
287| --visibility | 可见范围 |
288
289## 失败处理
290
291- **登录失败**:提示用户重新扫码登录并重试(参考 xhs-auth)。
292- **图片下载失败**:提示更换图片 URL 或改用本地图片。
293- **视频处理超时**:视频上传后需等待处理(最长 10 分钟),超时后提示重试。
294- **标题过长**:自动缩短标题,保持语义。
295- **页面选择器失效**:提示检查脚本中的选择器定义。
296- **模板加载超时**:长文模式下模板可能加载缓慢,等待 15 秒后超时。
297- **用户取消发布**:必须运行 save-draft 保存草稿,再告知用户已保存到草稿箱,不得直接关闭 tab。
298
In the file
SKILL.md755 words
Files1
LicenceMIT
Why you can read it

Nothing in a skill executes. The client loads the text and the model follows it, so a skill can be audited the way a runbook is — by reading it.

What it costs in context

Skills are not billed by the call. They are paid for in context: every token the instructions occupy is a token your code, your diff and your conversation cannot use. Here is what this one takes and when it takes it.

≈70
always loaded
The name and description, so the model knows the skill exists and when to reach for it.
2,805
on trigger
The instruction body, read only when the skill fires.
1.4%
of a 200k window
Ten skills this size would take about 14% of the window before you open a file.
050k100k150k200k context window

2.9k tokens, estimated from the bundle at four bytes to the token, held for the rest of the session once it triggers. Middling. Fine to keep on in a project where you use it weekly, worth unloading in one where you never do.

Servers bill, skills cost

A server charges by the month. A skill charges once per session, in context, and then keeps charging it for as long as the session lives.

Before and after

The same question, put to the same model twice: once as it comes, and once with these instructions loaded.

No worked example has been published for this skill yet.

Adoption
Installsnone yet
Ratingno reviews yet

The procedure it runs

The procedure has not been published here. It is in the skill’s own SKILL.md, which its author has not sent to the marketplace yet.

Prose, not code

These steps are written for a model to follow, not executed by a runtime. It can still be told to skip one, and it will say so when it does.

Servers it uses

None. This skill calls no MCP servers at all.

Everything it needs is in the instructions, so it works in a project with nothing connected — the model reads the file and changes how it works with what it can already reach.

It writes no files and reaches no network. All it changes is how the model reasons and writes.

What it asks for
Writes filesno
Network accessno

Read from the allowed-tools line of this skill’s own SKILL.md. A skill grants no permissions of its own — it can only ask for tools your client already has.

What it will not do

Every skill is narrow, and the useful ones say where they stop. These are the jobs this one is the wrong tool for.

What this skill is not for has not been published here. Nothing is implied by that: it is a section the author has not filled in.

What is in the bundle

1 file, 11.5 kB on disk. A bundle is text throughout: the instructions the model reads, plus the templates it fills in.

  • SKILL.md11.5 kB
What is not in it

No dependencies and nothing executable: a skill is text the agent reads, so the bundle is 1 file you can review in full before installing. The MIT licence covers the templates and examples as well as the instructions.

Install

Installing copies the bundle into your project. Nothing runs at install time — the files sit on disk until the model reads them.

$59 once
XHS Publish · MIT · autoclaw-cc
one-time
Price$59 once
LicenceMIT — the author’s, unchanged by this purchase
Paid throughStripe, once, on the card you add at the checkout
Keeps workingfor good — the files are yours once they are on disk
Updatesevery release of 1.x through this account

You can read the whole bundle before paying — the SKILL.md above is the product, not a preview of it. What the money buys is the delivery: the folder packaged and handed to your machine by key, every update its author ships, and our support if it does not do what this listing says. The terms of use are MIT, set by the author and unchanged by buying it here.

Payment runs through Stripe, on a page like this one rather than a redirect. Once there is an account it joins the same mcprush invoice as everything else you run, so there is never a second card to enter.

Which clients pick it up on their own

A skill is a folder of text. A client with a skills folder reads it without being told; everywhere else the same text works, it is just handed to the model rather than found.

Claude Code.claude/skills/
Claude Desktop
ChatGPT
Cursor.cursor/skills/
VS Code.github/skills/
Codex CLI.agents/skills/
Gemini CLI.gemini/skills/
Grok.grok/skills/
Zed.agents/skills/
Windsurf.windsurf/skills/
Agent SDK.claude/skills/
HTTP / API
This release
Version1.0.0
Publishedno release date on file
Price$59
Referenceautoclaw-cc/xhs-publish

Versions

v1.0.0 is what is on the shelf; no release here carries a date. Instructions change more often than APIs do — a skill can be rewritten entirely without anything it depends on moving.

v1.0.0
  • No earlier releases have been published to the marketplace.
Pinning

Put autoclaw-cc/xhs-publish@1.0.0 in the install command to hold this exact version. Without the suffix you get whatever is current the day you install, and nothing moves under you afterwards.

Reviews

no reviews yet · no installs yet

Nobody has reviewed this skill yet. The rating is the mean of the reviews written here, so there is none until somebody writes the first.

Who can post

Only accounts that have had the skill installed for fourteen days, so a review is written after living with it rather than after reading it. Publishers may reply once.

Who wrote it

AU
autoclaw-cc

Publishes on mcprush.

0 servers listed2 skills listednot claimed
Profile
Publisher
Servers0