小红书社交互动技能。发表评论、回复评论、点赞、关注。当用户要求评论、回复、点赞或关注小红书用户时触发。
66
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Critical
Do not install without reviewing
通过 camoufox-cli 完成(纯浏览器操作技能)——复用 xhs-browse 持久化 session(消费者域 www.xiaohongshu.com,与 xhs-content-ops / viral-chaser / published-track 共用)。同一 session 一个且只有一个持久化实例,fail-first 队列:同 session 已有命令在跑时新命令直接 fail,浏览器操作 skill 串行排队。
关键边界:本技能是纯 camoufox-cli 浏览器操作技能,登录态直接复用 xhs-browse 持久化 session(登录态 + 指纹冻结在 session profile 里)——不开独立临时 session、不 import cookie。每次登录后导出的 cookie + UA 是给其他脚本类技能(xhs-content-ops / viral-chaser / published-track 等)做 raw HTTP 抓取用的,本技能自身不消费 cookie 文件。
走 login-manager skill 流程,复用 xhs-browse 持久化 session(消费者域 www.xiaohongshu.com):
camoufox-cli --session xhs-browse --persistent --headed --json open "https://www.xiaohongshu.com/"
# 告知用户在窗口里手动扫码登录,确认后:
login-manager --platform xhs-browselogin-manager 一条命令闭环导出+验证+落中央存储(供其他脚本类技能消费,非本技能自用)+ close session。
互动操作直接在 xhs-browse 持久化 session 上跑——不开独立 session、不 import cookie(camoufox-cli 浏览器方案严禁 cookies import 造会话)。下文所有 camoufox-cli 命令统一用 --session xhs-browse --persistent,若该 session 正被其他浏览器操作 skill 占用(fail-first 拒绝 → 命令报 session 正忙),等其完成再串行接力,不要自动 close 正在跑的 session。
# 全文下方 $SESSION 一律指 xhs-browse 持久化 session
SESSION="xhs-browse"任务结束后close 该 session——持久化 session 登录态在磁盘 profile,不留进程占内存;后续自己 / 其他浏览器操作技能用 --session <平台 key> --persistent 重起无头即恢复。互动过程中任何时候发现登录已失效则走 login-manager 有头重登流。
所有互动操作需要 feed_id 和 xsec_token,从浏览器地址栏获取(snapshot eval):
笔记 URL 格式:
https://www.xiaohongshu.com/explore/{feed_id}?xsec_token={xsec_token}&xsec_source=pc_feed
示例:
https://www.xiaohongshu.com/explore/64abc123def456?xsec_token=ABxxxxxx&xsec_source=pc_feed
→ feed_id = 64abc123def456
→ xsec_token = ABxxxxxxcamoufox 拿当前 URL:
camoufox-cli --session "$SESSION" --json eval "window.location.href"https://www.xiaohongshu.com/explore/{feed_id}?xsec_token={xsec_token}&xsec_source=pc_feed模式说明:以下每条操作都用
camoufox-cli的snapshot/eval/click/type子命令实现,统一在xhs-browse持久化 session 上跑($SESSION=xhs-browse,见上文「互动流程」段,不开独立 session、不 import cookie)。找不到元素时不要盲试:先
snapshot看 DOM 真实结构,再决定 selector 改写。
1. 导航到 feed 详情页:
camoufox-cli --session "$SESSION" --persistent open <feed_url>
2. 等待 2-3 秒加载(sleep 3),调 snapshot 看 .access-wrapper / .error-wrapper
是否出现 → 出现则笔记不可访问,停止并告知用户
3. 找评论输入框 .content-input,触发 input 事件(用 type 子命令):
camoufox-cli --session "$SESSION" --json type ".content-input" "评论内容"
4. 触发 input 事件(camoufox type 已隐含触发,确认 snapshot 看到值变化)
5. 找发送按钮并 click:
camoufox-cli --session "$SESSION" --json click "<send-btn-selector>"
6. 等待 1-2 秒(sleep 2),调 snapshot 确认评论出现在评论区1. 导航到 feed 详情页(camoufox-cli open)
2. 等待 2-3 秒加载,确认页面可访问
3. 滚动到目标评论:
- 已知 comment_id:eval "document.querySelector('#comment-${comment_id}').scrollIntoView()"
- 已知 user_id:eval "document.querySelector('[data-user-id=\"${user_id}\"]').scrollIntoView()"
- 若需滚动加载更多评论:eval 多次 window.scrollBy(0, 800) + sleep 1
观察 .end-container 出现即到底(最多 7 次)
4. 点击目标评论的回复按钮(.interactions .reply):
camoufox-cli --session "$SESSION" --json click ".interactions .reply"
5. 输入回复内容到 .content-input(camoufox type 子命令)
6. 点击发送按钮(camoufox click)
7. sleep 1-2s,snapshot 确认回复已发出选择器:.like-wrapper(推荐)或 .interact-container .left .like-wrapper
1. 导航到 feed 详情页
2. 等待 2-3 秒加载
3. 检查当前点赞状态(eval):
camoufox-cli --session "$SESSION" --json eval \
"document.querySelector('.like-wrapper').classList.contains('like-active')"
4. 若需点赞,click 点赞按钮(推荐 JS 方式,最稳):
camoufox-cli --session "$SESSION" --json eval \
"document.querySelector('.like-wrapper').click(); 'ok'"
5. sleep 1-2s,eval 验状态:
camoufox-cli --session "$SESSION" --json eval \
"document.querySelector('.like-wrapper').classList.contains('like-active')"
6. 若状态未变化,重试一次;仍失败则报告若
click/eval触发风控:等 60s 后在同一xhs-browse持久化 session 上重试(不开新 session、不 import cookie);仍触发则报告用户该平台当日风控未解,转其他笔记或择日再试。
1. 导航到用户主页:camoufox-cli ... open "https://www.xiaohongshu.com/user/profile/${user_id}"
2. sleep 3 加载
3. 找关注按钮:snapshot 找文本为"关注"的按钮 / eval ".user-actions .follow-btn"
4. click 关注按钮
5. sleep 1-2s,snapshot 确认按钮变为"已关注"1. 导航到用户主页
2. 找"已关注"按钮(同上 selector)
3. click 后确认弹出确认框,click"取消关注"
4. sleep 1-2s,确认按钮变为"关注"/explore/{feed_id} 裸路径,没带 xsec_tokenerror_code=300017 或 300031)2.1w、1.5万、1.2k 等压缩格式而非数字w = 万 = ×10000,万 = ×10000,k = ×1000。例:2.1w = 21000,1.5万 = 15000,1.2k = 1200.end-container 说明到底部;最多滚动 7 次www.xiaohongshu.com 找发布/草稿入口creator.xiaohongshu.comxhs-browse 持久化 session 正被其他浏览器操作技能(xhs-content-ops 等)占用,新命令撞 fail-first 队列xhs-browse 持久化 session 上 --headed open + 用户手动扫码 + 导出 cookie+UA 落中央存储给其他脚本技能用)→ 在同一 session 上重试;不要盲 retry、不要开独立 session import cookie| 情况 | 处理 |
|---|---|
| 页面出现登录墙 | 同上重走 login-manager 登录流 |
| 点赞状态未变化 | 重试一次,仍未变化则报告错误 |
| camoufox click/eval 失败 / 超时 | 改用 eval 走 JS 方式(最稳);再失败 → 等 60s 后在同一 session 上重试(不开新 session、不 import cookie) |
xhs-browse session 正忙(fail-first 拒绝) | 这是预期行为(原则 1),等当前占用方完成再串行接力,不自动 close 正在跑的 session |
| xsec_token 缺失/无效 | 从搜索结果链接中重新获取 signed URL,不要手拼 |
| 安全限制/访问异常 | 停止操作 60 秒后重试,或换笔记操作 |
bcef823
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.