Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/2p1c/ai-redbook --skill xhs-auto-publisher명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | xhs-auto-publisher |
| description | 小红书一键自动化发布 — 从任意链接/文件到精美文章发布+评论的全流程编排 |
从链接到发布的自动化管道。用户在项目根目录发送链接(GitHub/网页/飞书/本地 md),即自动完成内容抓取→文章生成→封面制作→发布→评论。
--reuse-existing-tab,避免重复打开浏览器标签| 输入特征 | 类型 | 抓取方式 |
|---|---|---|
github.com/* | GitHub 仓库 | curl -s https://api.github.com/repos/$owner/$repo + README |
https?://* | 网页 | WebFetch 工具 |
*.md 且本地存在 | 本地 Markdown | Read 工具 |
# 确保 Chrome 运行(幂等操作)
python3 .claude/skills/redbook-skills/scripts/chrome_launcher.py --headless
# 检查登录态
python3 .claude/skills/redbook-skills/scripts/cdp_publish.py check-login
如果输出 NOT LOGGED IN:
python3 .claude/skills/redbook-skills/scripts/chrome_launcher.pycheck-loginGitHub 仓库:
# 获取仓库元数据
curl -s "https://api.github.com/repos/$owner/$repo" | python3 -c "
import sys,json
d=json.load(sys.stdin)
print(f'name: {d[\"name\"]}')
print(f'description: {d.get(\"description\",\"\")}')
print(f'stars: {d[\"stargazers_count\"]}')
print(f'forks: {d[\"forks_count\"]}')
print(f'language: {d.get(\"language\",\"\")}')
print(f'url: {d[\"html_url\"]}')
"
# 获取 README(取前 8000 字符控制 token)
curl -s "https://api.github.com/repos/$owner/$repo/readme" | python3 -c "
import sys,json,base64
d=json.load(sys.stdin)
content=base64.b64decode(d['content']).decode('utf-8')
print(content[:8000])
"
网页/飞书文档:
使用 WebFetch 工具,prompt:「提取这篇文章/页面的全部正文内容和关键信息,包括标题、核心论点、代码示例、数据等。返回完整的 Markdown 格式内容。」
本地 Markdown:
使用 Read 工具读取文件。
基于抓取的内容,使用下方提示词生成文章。必须先给出文章让用户扫一眼,不要直接发布。
你是小红书 AI 科技博主,粉丝 5 万。基于下面的素材写一篇小红书文章。
**硬性风格要求:**
- 标题 ≤20 字,制造悬念/共鸣/反常识,用下面 5 种之一:
1. 数字清单型:"3个让程序员疯狂的..."
2. 反差反常识:"这个AI工具可能改变..."
3. 情绪共鸣+利益承诺:"终于有人把...讲清楚了"
4. 悬念发现型:"发现一个宝藏项目..."
5. 保姆级直接给:"手把手教你..."
- 正文 150-300 字,STAR 框架:
S 情境:制造共鸣痛点
T 任务:引出这个工具/方法
A 行动:怎么用、核心功能
R 结果:能获得什么效果
- 每个段落配 1 个相关 emoji 开头
- 口语化,大量"我""你",短句(≤20 字)
- 禁止:AI 书面语、"首先/其次/最后"、"此外/总而言之"、"显著地"、过于完美的表达
- 结尾引导互动(评论/点赞/收藏)
**输出格式(严格遵守,用 --- 分隔):**
标题:<≤20字>
---
正文:
<多段落,每段 ≤3 行,段落间空一行>
---
标签:<3-5个标签空格分隔>
python3 .claude/skills/xhs-auto-publisher/scripts/cover_gen.py \
--title "$TITLE" \
--subtitle "$SUBTITLE" \
--output /tmp/xhs_cover.png
若无 subtitle,用 repo 的 description 或网页标题。 封面参数:1080×1440 (3:4),渐变背景 + 大字标题,字体清晰醒目。
python3 .claude/skills/redbook-skills/scripts/publish_pipeline.py --headless \
--reuse-existing-tab \
--title "解析后的标题" \
--content "解析后的正文" \
--images "/tmp/xhs_cover.png" \
--comment "📂 源码/原文链接:$SOURCE_URL" \
--comment-pin
正文最后一行如果包含 # 前缀词,publish_pipeline.py 会自动提取为话题标签。
关键参数说明:
| 参数 | 说明 |
|---|---|
--reuse-existing-tab | 复用已有浏览器标签,不重复打开 |
--comment | 发布后用 feed_id/xsec_token 直接添加评论(无需搜索) |
--comment-pin | 评论后尝试置顶 |
评论和置顶机制:
发布后 _click_publish 返回 {feed_id, xsec_token, note_url},评论和置顶操作使用这两个 token 无需搜索,避免了新笔记索引延迟(2-5 分钟)的问题。
⚠️ 已知限制:置顶功能仅在小红书 App 端可用。 网页版评论菜单(comment-menu > delete-dropdown)只有「删除评论」选项,没有「置顶」。--comment-pin 在网页版会尝试置顶但会返回 pin_option_not_in_menu 警告,不影响评论发布主流程。
发布完成后输出:
评论失败为非关键步骤,输出 Warning 不中断流程。
| 场景 | 处理 |
|---|---|
| 未登录 | 启动 headed Chrome → 等用户扫码 → 重试 |
| Chrome 未启动 | 运行 chrome_launcher.py --headless |
| 发布失败 | 检查标题是否超 20 字 → 截断重试 |
| 评论输入框未找到 | 已修复:自动先点击 .engage-bar .input-box 激活编辑器再填充 |
| 图片下载失败 | 改用 GitHub og:image 或手动截图 |
| GitHub API 限流 | 等 60s 或用 WebFetch 抓页面 |
| 抓取内容过短 | 提示用户内容不足以生成文章 |
| 评论失败 | 非关键步骤,输出 Warning 继续;可用 cdp_publish.py post-comment-to-feed 手动重试 |
| 置顶失败 | 网页版正常现象,笔记链接+评论仍生效;可用小红书 App 手动置顶评论 |
| 脚本路径报错 | 始终 cd /path/to/redbook 再执行,或使用绝对路径 |
XHS 网页版评论输入框(#content-textarea)需要先点击 .engage-bar .input-box 激活才能填充内容。_fill_comment_content 方法已加入激活步骤:
.engage-bar .input-box 并点击 → 隐藏 placeholder 层、显示 contenteditable 编辑器#content-textarea 或 p.content-input[contenteditable='true']小红书网页版评论菜单结构:
<div class="comment-menu">
<div class="delete-dropdown">
<svg class="reds-icon more"><use xlink:href="#more"></use></svg>
</div>
</div>
展开后仅包含「删除评论」选项。pin_own_comment 方法已适配 SVG 图标按钮(无文本的「...」菜单),但网页版不提供置顶选项。如需置顶评论,请在手机 App 端手动操作。
用户输入:https://github.com/gsd-build/get-shit-done.git
执行序列:
check-login ✓curl api.github.com/repos/gsd-build/get-shit-done → 获取元数据curl api.github.com/repos/gsd-build/get-shit-done/readme → 获取 READMEcover_gen.py --title "GSD" --subtitle "AI 项目管理系统,58K star" → 封面 /tmp/xhs_cover.pngpublish_pipeline.py --headless --reuse-existing-tab --title "..." --content "..." --images /tmp/xhs_cover.png --comment "📂 源码:https://github.com/gsd-build/get-shit-done" --comment-pinSOC 직업 분류 기준