Skip to main content

xhs-cli

xiaohongshu-cli 这是逆向 API 出来的版本。 速度更加快更加稳定。但是风控上应该不如当前这个直接用浏览器操作真实。

中文 | English

PyPI License

小红书命令行工具 — 在终端中搜索笔记、查看主页、点赞、收藏、评论。

推荐项目

功能

  • 搜索 — 按关键词搜索笔记,Rich 表格展示
  • 阅读 — 查看笔记内容、数据、评论
  • 用户资料 — 查看用户信息、笔记、粉丝、关注
  • 推荐 Feed — 获取探索页推荐内容
  • 话题 — 搜索话题标签
  • 互动 — 点赞/取消、收藏/取消、评论、删除笔记
  • 发布 — 发布图文笔记
  • 认证 — 自动提取 Chrome cookie,或 browser-assisted 扫码登录(终端二维码渲染)
  • JSON 输出 — 所有数据命令支持 --json
  • Token 自动缓存 — xsec_token 搜索后自动缓存,后续命令免手动传

命令一览

分类 命令 说明
Auth login, logout, status, whoami 登录、退出、状态检查、查看个人资料
Read search, read, feed, topics 搜索笔记、阅读详情、推荐 Feed、搜索话题
Users user, user-posts, followers, following 查看资料、列出笔记/粉丝/关注
Engage like, unlike, comment, delete 点赞、取消点赞、评论、删除笔记
Favorites favorite, unfavorite, favorites 收藏、取消收藏、查看收藏列表
Post post 发布图文笔记

所有数据命令支持 --json 输出。xsec_token 自动缓存,无需手动传递。

安装

需要 Python 3.8+。

# 推荐:使用 uv
uv tool install xhs-cli

# 或使用 pipx
pipx install xhs-cli
从源码安装(开发用)
git clone git@github.com:jackwener/xhs-cli.git
cd xhs-cli
uv sync

本地一键冒烟测试

在本地已登录(有 ~/.xhs-cli/cookies.json)的情况下,直接运行:

./scripts/smoke_local.sh

可选地传递 pytest 参数(例如只跑某个用例):

./scripts/smoke_local.sh -k whoami

默认只跑无副作用命令(integration and not live_mutation)。如需额外验证 like/favorite/comment/post/delete,显式开启:

XHS_SMOKE_MUTATION=1 ./scripts/smoke_local.sh

可选环境变量:

XHS_SMOKE_COMMENT_TEXT="smoke test comment"
XHS_SMOKE_POST_IMAGES="/abs/a.jpg,/abs/b.jpg"
XHS_SMOKE_POST_TITLE="smoke title"
XHS_SMOKE_POST_CONTENT="smoke content"

使用

登录

# 自动从 Chrome 提取 cookie(推荐)
xhs login

# 强制使用二维码登录(用于排查登录问题)
xhs login --qrcode

# 手动提供 cookie 字符串(至少包含 a1 和 web_session)
xhs login --cookie "a1=xxx; web_session=yyy"

# 快速检查已保存的登录状态(不启动浏览器,不读取浏览器 cookie)
xhs status

# 查看个人资料
xhs whoami
xhs whoami --json

# 退出登录
xhs logout

搜索

xhs search "咖啡"
xhs search "咖啡" --json

阅读笔记

# 查看笔记(xsec_token 从缓存自动解析)
xhs read <note_id>

# 包含评论
xhs read <note_id> --comments

# 手动指定 xsec_token
xhs read <note_id> --xsec-token <token>

用户

# 查看用户资料(使用内部 user_id,非小红书号)
xhs user <user_id>

# 列出用户笔记
xhs user-posts <user_id>

# 粉丝 / 关注
xhs followers <user_id>
xhs following <user_id>

推荐 & 话题

xhs feed
xhs topics "旅行"

互动

# 点赞 / 取消(xsec_token 自动解析)
xhs like <note_id>
xhs like <note_id> --undo

# 收藏 / 取消
xhs favorite <note_id>
xhs favorite <note_id> --undo

# 评论
xhs comment <note_id> "好棒!"

# 删除自己的笔记
xhs delete <note_id>

# 查看收藏列表
xhs favorites
xhs favorites --max 10

发布笔记

xhs post "标题" --image photo1.jpg --image photo2.jpg --content "正文内容"
xhs post "标题" --image photo1.jpg --content "正文内容" --json

其他

xhs --version
xhs -v search "咖啡"   # 调试日志
xhs --help

架构

CLI (click) → XhsClient (camoufox 浏览器)
                  ↓ 导航到真实页面
              window.__INITIAL_STATE__ → 提取结构化数据

使用 camoufox(反指纹 Firefox)像真实用户一样浏览小红书。数据从页面的 window.__INITIAL_STATE__ 中提取,与正常浏览完全一致。

工作原理

  1. 认证 — 优先读取 ~/.xhs-cli/cookies.json;未命中时通过 browser-cookie3 从本地 Chrome 提取 cookie。xhs login --qrcode 使用 browser-assisted 扫码登录,并在终端渲染二维码(▀ ▄ █)。
  2. 登录态校验 — 登录后会校验会话是否为有效非 guest 会话,并做 feed/search 可用性探活;探活失败会提示重新登录。
  3. 浏览 — 使用 camoufox 导航到真实页面,所有流量与正常用户浏览一致。
  4. 数据提取 — 从 window.__INITIAL_STATE__ 提取结构化数据。
  5. Token 缓存 — 搜索/Feed 后 xsec_token 自动缓存到 ~/.xhs-cli/token_cache.json。
  6. 互动操作 — 点赞、收藏、评论通过点击真实 DOM 按钮实现。

作为 AI Agent Skill 使用

xhs-cli 自带 SKILL.md,让 AI Agent 能自动学习并使用本工具。

Claude Code / Antigravity

# 克隆到项目的 skills 目录
mkdir -p .agents/skills
git clone git@github.com:jackwener/xhs-cli.git .agents/skills/xhs-cli

# 或者只复制 SKILL.md
curl -o .agents/skills/xhs-cli/SKILL.md \
  https://raw.githubusercontent.com/jackwener/xhs-cli/main/SKILL.md

添加后,支持 .agents/skills/ 的 AI Agent 会自动发现并使用 xhs-cli 命令。

OpenClaw / ClawHub

官方支持 OpenClaw 和 ClawHub 生态。通过 ClawHub 安装:

clawhub install xiaohongshu-cli

安装后即可在 OpenClaw 中直接使用所有 xhs-cli 命令。

注意事项

  • Cookie 存储在 ~/.xhs-cli/cookies.json,权限 0600。
  • xhs status 只检查本地已保存 cookie,不会触发浏览器 cookie 提取。
  • xhs login --cookie 要求 cookie 至少包含 a1 和 web_session。
  • 登录后会自动做可用性探活;若会话仍为 guest/风控受限,会提示重新登录。
  • xhs post 可能要求额外登录创作平台(https://creator.xiaohongshu.com)。
  • 使用 headless Firefox,不会弹出浏览器窗口。
  • 首次运行需下载 camoufox 浏览器(python -m camoufox fetch)。
  • 用户资料查询需要内部 user_id(十六进制),不是小红书号。

License

Apache License 2.0

Metadata

Release files for xhs-cli 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xhs-cli 0.1.4
File Size Uploaded Provenance
xhs_cli-0.1.4.tar.gz 331.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for xhs-cli 0.1.4
File Interpreter ABI Platform
xhs_cli-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 369.1 kB

Release files / xhs_cli-0.1.4.tar.gz

Download URL xhs_cli-0.1.4.tar.gz
Size 331.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8d28b31468fc722a07a5f74098002f57dc7f50dc2301a14f71a96a2ada456a65
BLAKE2b-256 checksum
How to use checksums
5e5a01ac47e5a9a075bc77105a846273ae3e959b8f0ee2db7b2120e246f42cf4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.

Transparency log

Release files / xhs_cli-0.1.4-py3-none-any.whl

Download URL xhs_cli-0.1.4-py3-none-any.whl
Size 37.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5f940793d49774d60e595c8bfdebd354fb63335d274a82c1b8c02c9f703e3b5
BLAKE2b-256 checksum
How to use checksums
df5dd2899648bd7d819cd22051c51071b2cb705bb68665128b11efe50db91898
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.

Transparency log

Security for xhs-cli 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for xhs_cli-0.1.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page