xiaohongshu-publisher by iamzifei/red-publisher-skill
npx skills add https://github.com/iamzifei/red-publisher-skill --skill xiaohongshu-publisher使用 agent-browser 的 CDP(Chrome DevTools Protocol)模式,将图片和笔记发布到小红书创作者平台。
此技能使用 CDP 模式 - 连接到用户已登录的现有浏览器实例。这种方法:
--cdp 标志的简单命令行界面此技能默认始终将笔记保存为草稿。绝不会自动发布。
仅当用户明确要求立即发布,并使用以下短语时,才点击"发布"按钮:
如果不确定,始终保存为草稿,让用户在发布前进行审核。
在使用此技能之前,用户必须启用远程调试启动 Chrome:
macOS:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
或在 ~/.zshrc 或 ~/.bashrc 中创建别名:
alias chrome-debug='/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222'
然后只需运行:chrome-debug
在 Chrome 浏览器(调试端口已启用)中,导航至:
https://creator.xiaohongshu.com/publish/publish
使用小红书 App 扫码登录。这只需要做一次 - 会话会在浏览器中保持。
注意:登录后,您可以将浏览器窗口最小化到 Dock。浏览器必须保持运行(不能关闭)才能使 CDP 工作,但您无需看到它。
pip install Pillow pyobjc-framework-Cocoa
所有命令都使用 --cdp 9222 标志连接到现有的 Chrome 浏览器:
# 导航
npx agent-browser --cdp 9222 open <url> # 导航到 URL
npx agent-browser --cdp 9222 snapshot -i # 获取带有元素引用的页面快照
# 元素交互
npx agent-browser --cdp 9222 click @e5 # 通过引用点击元素
npx agent-browser --cdp 9222 fill @e2 "text" # 填充输入字段
npx agent-browser --cdp 9222 type @e3 "text" # 在元素中输入文本
npx agent-browser --cdp 9222 upload @e4 "/path/to/file.jpg" # 上传文件
# 键盘与等待
npx agent-browser --cdp 9222 press Enter # 按键
npx agent-browser --cdp 9222 wait 2000 # 等待毫秒数
npx agent-browser --cdp 9222 wait --text "发布" # 等待文本出现
# 截图
npx agent-browser --cdp 9222 screenshot # 截图
重要提示:
snapshot -i 的输出。在交互前始终获取快照。--cdp 9222 标志连接到浏览器的调试端口,而不是启动新浏览器。close 命令,因为它会关闭用户的浏览器!位于 ~/.claude/skills/xiaohongshu-publisher/scripts/:
解析 Markdown 并提取小红书笔记的结构化数据:
python parse_note.py <markdown_file> [--output json]
返回包含以下内容的 JSON:title, content, images(路径列表), tags
将图像复制到系统剪贴板以便粘贴:
python copy_to_clipboard.py image /path/to/image.jpg [--quality 80]
关键:首先验证 CDP 浏览器正在运行且已连接。
检查浏览器是否可访问:
npx agent-browser --cdp 9222 snapshot -i
如果需要,提供启动命令:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
导航到创作者页面(如果尚未在此页面):
npx agent-browser --cdp 9222 open "https://creator.xiaohongshu.com/publish/publish"
获取快照以检查登录状态:
npx agent-browser --cdp 9222 snapshot -i
如果需要登录:
如果用户提供了 markdown 文件,则解析它:
python ~/.claude/skills/xiaohongshu-publisher/scripts/parse_note.py /path/to/note.md
输出 JSON:
{
"title": "Note Title",
"content": "Note description/content text...",
"images": ["/path/to/img1.jpg", "/path/to/img2.jpg"],
"tags": ["tag1", "tag2"]
}
获取快照以获取当前元素引用:
npx agent-browser --cdp 9222 snapshot -i
找到上传输入元素(寻找文件输入或"上传图片"区域)
上传图片:
npx agent-browser --cdp 9222 upload @e<ref> "/path/to/image1.jpg"
# 多张图片(逗号分隔)
npx agent-browser --cdp 9222 upload @e<ref> "/path/to/img1.jpg,/path/to/img2.jpg,/path/to/img3.jpg"
4. 等待上传完成:
npx agent-browser --cdp 9222 wait 3000
5. 上传完成后获取新快照
从快照中找到标题输入字段(占位符通常包含"标题")
填写标题:
npx agent-browser --cdp 9222 fill @e<title_ref> "Your Note Title"
找到内容/描述字段(占位符通常包含"描述"或"正文")
填写内容:
npx agent-browser --cdp 9222 fill @e<content_ref> "Your note content here..."
如果提供了标签:
从快照中找到标签输入区域
添加每个标签:
npx agent-browser --cdp 9222 click @e<add_tag_ref> npx agent-browser --cdp 9222 fill @e<tag_input_ref> "tag1" npx agent-browser --cdp 9222 press Enter
从快照中找到"存草稿"按钮
点击草稿按钮:
npx agent-browser --cdp 9222 click @e<draft_button_ref>
验证成功 - 获取快照或等待确认
仅当用户说"直接发布"、"立即发布"或"publish now"时:
从快照中找到"发布"按钮
点击发布按钮:
npx agent-browser --cdp 9222 click @e<publish_button_ref>
如有疑问,始终保存为草稿。
获取最终快照以验证成功:
npx agent-browser --cdp 9222 snapshot -i
向用户报告:
用户:"发布这些图片到小红书: /path/to/photo1.jpg, /path/to/photo2.jpg, 标题是'周末好去处'"
# 1. 验证连接并检查登录状态
npx agent-browser --cdp 9222 snapshot -i
# 2. 导航到发布页面(如果需要)
npx agent-browser --cdp 9222 open "https://creator.xiaohongshu.com/publish/publish"
# 3. 获取快照,验证"上传图片"可见
npx agent-browser --cdp 9222 snapshot -i
# 4. 上传图片
npx agent-browser --cdp 9222 upload @e<ref> "/path/to/photo1.jpg,/path/to/photo2.jpg"
npx agent-browser --cdp 9222 wait 3000
# 5. 获取新快照,填写标题
npx agent-browser --cdp 9222 snapshot -i
npx agent-browser --cdp 9222 fill @e<title_ref> "周末好去处"
# 6. 保存为草稿
npx agent-browser --cdp 9222 click @e<draft_ref>
用户:"把这个 markdown 发到小红书: /path/to/note.md"
# 1. 解析 markdown
python ~/.claude/skills/xiaohongshu-publisher/scripts/parse_note.py /path/to/note.md
# 2. 从 JSON 输出中提取:title, content, images, tags
# 3. 验证连接
npx agent-browser --cdp 9222 snapshot -i
# 4. 上传解析结果中的所有图片
npx agent-browser --cdp 9222 upload @e<ref> "/path/to/img1.jpg,/path/to/img2.jpg"
# 5. 填写标题和内容
npx agent-browser --cdp 9222 fill @e<title_ref> "parsed title"
npx agent-browser --cdp 9222 fill @e<content_ref> "parsed content"
# 6. 如果存在则添加标签
npx agent-browser --cdp 9222 fill @e<tag_ref> "tag1"
npx agent-browser --cdp 9222 press Enter
# 7. 保存为草稿
npx agent-browser --cdp 9222 click @e<draft_ref>
用户:"直接发布这些图到小红书,不用草稿"
# [与上面相同,直到第 6 步]
# 找到并点击"发布"按钮(不是 存草稿)
npx agent-browser --cdp 9222 click @e<publish_ref>
如果 snapshot 连接失败:
验证 Chrome 是否正在使用调试端口运行:
lsof -i :9222
如果未运行,启动 Chrome:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
检查端口冲突 - 可能有其他进程正在使用 9222
如果之前已登录但现在看到登录页面:
告诉用户在浏览器中重新登录:"您的登录状态已过期,请在浏览器中重新扫码登录"
等待用户确认
获取新快照进行验证
检查图像文件是否存在且格式有效(jpg, png, gif, webp)
检查文件大小(小红书有限制)
尝试一次上传一张
截图查看实际错误:
npx agent-browser --cdp 9222 screenshot error.png
--cdp 9222| 类型 | 详情 |
|---|---|
| 图片 | JPG, PNG, GIF, WebP(1-18 张图片) |
| 标题 | 建议最多约 20 个字符 |
| 内容 | 最多约 1000 个字符 |
| 标签 | 建议最多 5 个标签 |
每周安装量
100
仓库
GitHub 星标数
7
首次出现
2026年2月13日
安全审计
安装于
gemini-cli97
github-copilot97
codex97
opencode97
kimi-cli96
amp96
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
44,900 周安装