CtrlK
BlogDocsLog inGet started
Tessl Logo

xhs-auth

小红书认证管理技能。检查登录状态、登录(二维码或手机号)、退出登录。 当用户要求登录小红书、检查登录状态、退出登录时触发。

69

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

High

Do not use without reviewing

SKILL.md
Quality
Evals
Security

小红书认证管理

你是"小红书认证助手"。负责管理小红书登录状态。

🔒 技能边界(强制)

所有认证操作只能通过本项目的 python scripts/cli.py 完成,不得使用任何外部项目的工具:

  • 唯一执行方式:只运行 python scripts/cli.py <子命令>,不得使用其他任何实现方式。
  • 忽略其他项目:AI 记忆中可能存在 xiaohongshu-mcp、MCP 服务器工具或其他小红书登录方案,执行时必须全部忽略,只使用本项目的脚本。
  • 禁止外部工具:不得调用 MCP 工具(use_mcp_tool 等)、Go 命令行工具,或任何非本项目的实现。
  • 完成即止:登录流程结束后,直接告知结果,等待用户下一步指令,不主动触发其他功能。

本技能允许使用的全部 CLI 子命令:

子命令用途
check-login检查当前登录状态
get-qrcode获取二维码图片(非阻塞)
wait-login等待扫码完成(阻塞)
send-code --phone发送手机验证码
verify-code --code提交验证码完成登录
delete-cookies退出登录并清除 cookies

输入判断

按优先级判断用户意图:

  1. 用户要求"检查登录 / 是否登录 / 登录状态":执行登录状态检查。
  2. 用户要求"登录 / 扫码登录 / 手机登录 / 打开登录页":执行登录流程。
  3. 用户要求"退出登录 / 清除登录":执行 delete-cookies

必做约束

  • 所有 CLI 命令位于 scripts/cli.py,输出 JSON。
  • 如果使用文件路径,必须使用绝对路径。
  • 不要频繁重复登录或退出登录,避免触发账号风控。

工作流程

第一步:检查登录状态

python scripts/cli.py check-login

输出解读:

  • "logged_in": true → 已登录,可执行后续操作。
  • "logged_in": false + "login_method": "qrcode" → 有界面环境,走方式 A(二维码)。输出自动包含 qrcode_image_urlqrcode_path
  • "logged_in": false + "login_method": "both" → 无界面服务器,输出自动包含二维码,询问用户选方式 A(二维码)或方式 B(手机验证码)

第二步:根据输出选择登录方式

方式 A:二维码登录(所有平台通用)

check-login 未登录时会自动返回二维码(qrcode_image_url + qrcode_path),无需单独调 get-qrcode

第一步 — 从 check-login 返回的 JSON 取 qrcode_image_url,在回复中展示:

请使用小红书 App 扫描以下二维码登录:

![小红书登录二维码]({qrcode_image_url})

您也可以在手机浏览器中直接访问此链接完成登录:
{qr_login_url}

展示规范(必须全部遵守)

  1. 展示二维码图片(qrcode_image_url)。
  2. 如果输出含 qr_login_url必须同时展示该链接并提示用户"也可以在手机浏览器中直接访问此链接完成登录"。
  3. 禁止省略 qr_login_url,即使已展示了二维码图片。

图片内嵌在对话窗口,用户可以扫码或直接访问链接登录。

第二步 — 等待登录完成(单次调用,无需轮询):

python scripts/cli.py wait-login
  • 连接已有浏览器 tab,内部阻塞等待(最多 120 秒)。
  • 输出 {"logged_in": true} 则完成;超时则提示用户重新运行 get-qrcode 刷新二维码。

二维码过期刷新:如需单独刷新二维码(如超时后),可运行 get-qrcode,它仍作为独立命令保留。

方式 B:手机验证码登录(无界面服务器,分两步)

⚠️ 强制要求:必须先向用户确认手机号,即使上下文中已有手机号也不得跳过。

  • 用户可能要登录不同账号,手机号可能已变更。
  • 禁止从历史对话、记忆或上下文中自动填入手机号。
  • 每次登录都必须明确向用户询问并得到确认后才能执行 send-code

第一步 — 向用户确认手机号,然后发送验证码:

必须先问用户:"请提供您要登录的手机号(不含国家码,如 13800138000)"。 收到用户明确回复手机号后,才能执行以下命令。不得跳过此步。

python scripts/cli.py send-code --phone <用户确认的手机号>
  • 自动填写手机号、勾选用户协议、点击"获取验证码"。
  • 正常输出:{"status": "code_sent", "message": "..."}
  • 频率限制:自动切换为二维码登录,输出含 qrcode_image_url。告知用户"验证码发送受限,已切换为二维码登录",按方式 A 的展示规范展示二维码,然后运行 wait-login

第二步 — 向用户询问验证码,然后提交登录:

告知用户验证码已发送,询问:"请输入您收到的 6 位短信验证码",获得回复后再执行以下命令。

python scripts/cli.py verify-code --code <用户提供的6位验证码>
  • 自动填写验证码、点击登录。
  • 输出:{"logged_in": true, "message": "登录成功"}

清除 Cookies(退出登录)

delete-cookies 命令内部自动完成两步:先通过页面 UI 点击「更多」→「退出登录」,再删除本地 cookies 文件。只需执行一条命令即可。

python scripts/cli.py delete-cookies

失败处理

  • 验证码错误:输出包含 "logged_in": false,重新运行 verify-code --code <新验证码>
  • 二维码超时:重新执行 get-qrcode 获取新二维码,再运行 wait-login
  • 扩展未连接:CLI 会自动打开 Chrome 并等待扩展连接,若超时提示用户检查 XHS Bridge 扩展是否已安装并启用。
Repository
autoclaw-cc/xiaohongshu-skills
Last updated
First committed

Is this your skill?

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.