xhs-automation-publisher
Run authorized Xiaohongshu browser workflows for login checks, creator preview fill, publish blockers, final posting, search, export, or approved engagement. Prefer native signed-in Chrome; keep Python/CDP for deterministic batch fallback.
适合你,如果你需要批量管理小红书账号的内容发布与互动。
npx oh-my-skill add dirtytrii/codex-skills/xhs-automation-publishercurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- dirtytrii/codex-skills/xhs-automation-publishernpx oh-my-skill verify dirtytrii/codex-skills/xhs-automation-publisher怎么用
商店整理自技能原文 · 版本 f142db6 · 表述以原文为准装上后,Claude 可以控制浏览器自动完成小红书登录检查、创作者中心填写、发布前预览、最终发布、搜索、数据导出等操作。
当你明确要求进行浏览器自动化操作,如登录诊断、发布调试、内容导出或授权发布时触发。
技能原文 SKILL.md
XHS Automation Publisher
This skill vendors white0dew/XiaohongshuSkills as a deterministic Xiaohongshu batch/export fallback. Interactive logged-in work should first load $browser-automation-router and use the Codex Chrome extension when available. The vendored Python + Chrome DevTools Protocol (CDP) commands remain useful for repeatable preview filling, creator data export, and explicit batch contracts.
Use With The Local Role System
- Use
$xhs-publish-assistantfirst when the user only needs copy-ready title/body/tags/image directory output. - Use
$xhs-automation-publisherwhen the user explicitly needs browser automation, login diagnosis, creator-center filling, auto-publish blocker debugging, content-data export, search/detail collection, or authorized final posting. - Keep
内容主编as coordinator for content strategy and publish authorization.小红书executes this skill only after scope and account boundary are clear.
Hard Gates
- Default to preview/fill, not final posting. Prefer the native Chrome surface for an interactive reviewable fill; use
publish_pipeline.py --previeworcdp_publish.py fillwhen a deterministic script fallback is required. publish_pipeline.pydefaults to clicking publish when--previewis absent. Treat that as high risk.- Do not run
click-publish,publish,post-comment-to-feed,respond-comment,note-upvote,note-unvote,note-bookmark,note-unbookmark,remove-account,re-login, orswitch-accountwithout a fresh explicit user approval for that exact action. - Do not store cookies, account tokens, login QR payloads, real account names, or Chrome profile paths in this repo.
- Do not use this skill for scraping or interaction at scale. Respect platform rules, rate limits, and account risk.
- Stop before final publish if the target account, media list, title, body, tags, or publish time is uncertain.
Surface Selection
- Use the Codex Chrome extension for an existing signed-in profile, visible creator-center review, one-off form filling, and user-observed troubleshooting.
- Use the in-app Browser only when its separate login state is acceptable; it does not inherit the user's Chrome profile.
- Use the vendored Python/CDP commands for batch export, a stable command contract, unattended repeatability, or an explicit fallback when native plugins are unavailable.
- Do not launch or copy a local Chrome profile merely to bypass a missing native plugin. Do not commit profile paths or login state.
Safe Default Flow
- Confirm target account, desired mode, media files, and whether final posting is authorized.
- For interactive work, verify the native Chrome surface and active account. For a script fallback, check/login only when requested:
python scripts/cdp_publish.py check-login python scripts/cdp_publish.py login
- Fill creator-center form for human review:
python scripts/publish_pipeline.py --preview --title-file title.txt --content-file content.txt --images image1.png
- Only after explicit approval, run a publish command without
--previewor runclick-publish. - Return exact commands, status markers, account boundary, and any manual actions left.
Useful Commands
python scripts/chrome_launcher.py python scripts/chrome_launcher.py --restart python scripts/cdp_publish.py list-accounts python scripts/cdp_publish.py search-feeds --keyword "选题关键词" python scripts/cdp_publish.py content-data --csv-file "content_data.csv"
The scripts require Python 3.10+, Google Chrome, and dependencies from requirements.txt.
Failure Handling
- Not logged in: switch to headed login and ask the user to scan QR code.
- Selector/page failure: inspect
scripts/cdp_publish.pySELECTORS, upload waits, editor fill, and publish-button logic. - Media path failure: use absolute paths; for WSL/remote CDP path mismatch, consider
--skip-file-check. - Comment/engagement uncertainty: do not guess target IDs or tokens; ask for the exact note/comment target.