AI-powered Xiaohongshu/Rednote content creation and publishing tool with PyQt desktop UI, FastAPI service, login-state reuse, preview publish, and automated browser workflows.
See the code本次整合中文文案二次润色、13 款精选模板、多页图文排版和发布流程修复。预发布版用于验证新版功能,完整真实发布流程与各平台安装包仍需验收。
Web 服务默认仅本机访问,Docker 端口也绑定本机。远程访问必须设置 XHS_WEB_API_TOKEN 并通过 HTTPS 使用 Authorization: Bearer <token>;配置令牌后,本机 API 请求同样需要令牌。Web 页面可在“服务访问令牌”中填写,仅在当前页面内存中使用。使用反向代理或隧道时也必须设置令牌,不要依赖代理转发的客户端地址。
海报初稿现在按素材安排阅读页,不再默认拆成“痛点、亮点、适合人群”。封面优先写具体用途;正文保留原稿的操作、限制和后续计划。上传竖版截图后,图文版式会放大截图,保留完整界面。生成结果仍需要检查,模型可能误写功能或效果。
这是一个在电脑上写小红书笔记的工具。输入主题生成初稿,再改正文、选封面、做内容图,都可以在同一个界面里完成。模型和文案模板可以自己配置。默认文案按素材写,不强制凑字数或加收藏引导;测评需要实际体验记录。模型不可用时只预览原文。
生成初稿后,默认再用完整的 humanizer-chinese 规则单独改一遍正文,然后按阅读顺序生成内容图。普通笔记和海报共用这个步骤。在「后台配置 → AI模型配置」可以关闭,也可以贴一段自己的文字作为参考语气。这一步会多调用一次模型;格式或基础事实检查不通过时再试一次,仍不通过就提示并保留初稿。用法、规则来源和试写结果见中文文案说明。这些检查只能拦住部分问题,生成稿仍需要核对。
封面中心可以添加封面图片和正文配图。正文图片按段落顺序排列,可拖动调整,也能留空;长文续页不重复配图。竖版截图会放大展示并保留完整界面,文字过长时接着分页。产品介绍会保留素材中明确提供的产品名,模型初稿仍需检查。
封面中心现在保留 13 款模板,新加了「奶油杂志」「柠檬清单」「薄荷纸雕」。奶油款给产品截图留出大块位置,柠檬款适合写步骤和清单,薄荷款用绿色纸雕配粗体标题。原来的橙白立体、大截图图文也可以直接在列表里选,点「应用到首页」后生成。

颜色重复、版式用途相近的 17 款旧模板从列表里撤下。原文件仍保留,旧稿可以继续使用;打开封面中心时,旧选择会切到保留的相近模板,配图设置保留。自己导入的模板不受这次整理影响。
封面和内容页用自己的文字重新排版,长文接着分页。可以换成自己的封面图片和正文截图,图片保持比例,续页不重复配图。这里的文案是人工整理的办公小镇示例,配图来自已有 APP 演示素材,没有重新执行截图里的任务。具体选择和素材来源见模板说明。
它也能帮你填写发布页面,支持定时任务和本机 Web/API。发布这块还有几个没修好的问题,建议先拿来写稿和预览,最后到小红书确认发布。详情见使用限制与已知问题。
正文配图、产品名保留及最新生成效果见本次改动与实测。
这次还用同一份素材实测了文案和海报生成,原始输出、人工审稿和排版对比放在生成质量检查记录。自动初稿仍需审阅。
下面是 2026-10-11 本地版本的界面,编辑区放的是“办公小镇”的介绍稿,用来展示排版,没有提交到小红书。
左边放素材、改正文,右边翻看封面和内容图。

在封面中心选择版式,预览中的示例文字会在生成时换成自己的内容。

下面用“办公小镇”做例子,轮播当前保留的 13 款模板,每张停留约 3 秒。

下面的七张图用办公小镇做例子:手机回复、集中看任务、问管家、持续跟进、查记录和连接方式。文案经过人工整理,图片由当前生成器排版,使用已有的 APP 演示截图及局部截图。持续跟进按试用功能介绍。

🤖 AI智能生成
|
🚀 自动化发布
|
👥 用户管理
|
🛡️ 本地存储与日志
|
手机用办公小镇(agentBridge)接着给 Mac 上的 Codex 发消息,让它写稿、改稿、保存草稿。小红书工具和 Codex 都在 Mac 上运行,手机不用直接连接小红书服务。
目前建议先在手机看文案,图片另行查看,再到小红书页面核对账号并确认发布。手机授权自动发布也有下面的已知风险,接口返回成功不代表笔记通过了审核。
普通管家聊天目前只查任务,实际操作由 Codex 完成。这条手机到发布的完整流程还没做完实机验收,手机聊天也没有专门的草稿和图片预览页面。
配置方法与 Codex 操作说明 · 了解办公小镇 · 看 App 操作视频
用这套工具发笔记,仍然可能被限流、禁言或封号。
目前建议这样用:
小红书已有关于 AI 托管账号的公告(IT之家全文转述),也明确提醒不要用 AI 编造体验或伪造实景,见薯管家公告。本机运行、换成手机操作,或让 Codex 来调用,都不能据此认为发布方式已获平台认可。
原评估版本:dc766ff。下面 6 项发布流程修复纳入 v2.0.0-rc.2,另补充 Web 访问保护。
| 问题 | 进度 | 现在的处理方式 |
|---|---|---|
| 结果不确定时仍重试 | 已修复 | 失败后进入待核验,暂停后续定时任务,不再 10 分钟后重发。核验后需重新安排任务。 |
| Web 发布没有排队和去重 | 已修复 | 发布逐个执行,重复稿件和相同内容的请求会被拦住。排队期间改稿、图片失效或登录会话变化,也会停止发送。当前只支持单个 Web worker。 |
| 发布状态判断不准 | 已修复 | “审核中”记录为审核中,成功提示只记为已提交。页面跳转和“发布中”不会当成完成,仍需到平台确认审核结果。 |
| 弹窗会被自动确认 | 已修复 | 发现发布弹窗就停下,交给用户处理。发布按钮尝试点击后,超时也不会换个按钮再点。 |
| 生成失败后还会发模板稿 | 已修复 | 热点文案生成失败就暂停,不再套固定内容继续发。提交后也不会按热点间隔自动滚动发布下一条。 |
| 重启后任务可能卡住 | 已修复 | 中断的定时任务和 Web 发布任务改为待核验,不会直接重发。任务记录改为先写临时文件再替换,写入失败不会启动发送。 |
| Web 接口调用者验证 | 已增加 | 默认仅本机访问;远程调用必须设置访问令牌。配置令牌后所有 API 请求均需 Bearer 认证;浏览器跨来源请求被拒绝。 |
| 部分旧测试不匹配当前接口 | 部分处理 | 已替换失效的内容测试并隔离运行数据;192 项维护中的离线测试通过。完整非浏览器测试仍有 17 项失败,详见版本说明。 |
这些修复没有解决内容真实性和平台规则的问题。真实经历、事实来源、图片和 AI 声明仍需要你在发布前核对;真实页面的完整发布流程还要验收。
Issue #29有人反馈“被检测了”。缺少完整处罚通知、使用版本和发布日志,还不能确定具体原因,更不能据此承诺修完就不会受处罚。
📦 xhs_ai_publisher/
├── 📂 assets/ # 🧩 内置系统模板预览(可选)
├── 📂 templates/ # 🧩 文案/封面模板(可自行扩展)
├── 🧰 install.sh # 📦 一键安装(macOS/Linux)
├── 🧰 install.bat # 📦 一键安装(Windows)
├── 📂 src/ # 🔧 源代码目录
│ ├── 📂 core/ # ⚡ 核心功能模块
│ │ ├── 📂 models/ # 🗄️ 数据模型
│ │ ├── 📂 services/ # 🔧 业务服务层
│ │ ├── 📂 pages/ # 🎨 界面页面
│ │ ├── 📂 processor/ # 🧩 内容/图片处理
│ │ ├── 📂 scheduler/ # ⏰ 定时任务(到点自动发布)
│ │ └── 📂 ai_integration/ # 🤖 AI适配(实验)
│ ├── 📂 web/ # 🌐 Web接口
│ │ ├── 📂 templates/ # 📄 HTML模板
│ │ └── 📂 static/ # 🎨 静态资源
│ └── 📂 logger/ # 📝 日志系统
├── 📂 images/ # 🖼️ 文档/界面截图资源
├── 📂 docs/ # 📚 文档
├── 📂 tests/ # 🧪 测试目录
├── 📂 venv/ # 🐍 本地虚拟环境(已在 .gitignore,不会上传 GitHub)
├── 🐍 main.py # 🚀 主程序入口
├── 🚀 启动程序.sh # ▶️ 启动脚本(macOS/Linux)
├── 🚀 启动程序.bat # ▶️ 启动脚本(Windows)
├── ⚙️ .env.example # 🔑 环境变量示例(不要提交真实 .env)
├── 📋 requirements.txt # 📦 依赖包列表
└── 📖 readme.md # 📚 项目说明
| 组件 | 版本要求 | 说明 |
|---|---|---|
| 🐍 Python | 3.10–3.12 | 推荐使用 Python 3.11/3.12 |
| 🌐 Chrome | 最新版 | 用于浏览器自动化 |
| 💾 内存 | 4GB+ | 推荐8GB以上 |
| 💿 磁盘 | 2GB+ | 用于存储依赖和数据 |
Windows 建议使用 Python 3.11/3.12(64 位);Python 3.13 或 32 位 Python 常见会导致 PyQt5 安装失败。
| 操作系统 | 安装脚本 | 启动脚本 |
|---|---|---|
| macOS / Linux | ./install.sh | ./启动程序.sh |
| Windows | install.bat | 启动程序.bat |
# macOS/Linux
chmod +x install.sh 启动程序.sh
./install.sh
./启动程序.sh
./启动程序.sh会优先使用venv/bin/python;若虚拟环境解释器缺失、软链失效或环境损坏,会自动回退到系统python3/python,不会写死机器路径。
:: Windows
install.bat
启动程序.bat
默认会检测 Playwright 浏览器并在缺失时自动安装;可用参数:
- 强制安装:
./install.sh --with-browser/install.bat --with-browser- 跳过浏览器:
./install.sh --skip-browser/install.bat --skip-browser- Windows 双击
启动程序.bat/install.bat失败时,现在会保留报错窗口,方便定位问题
参考 xiaohongshu-mcp、xhs-toolkit 这类项目的思路,当前仓库也支持:
本地获取登录态:
python scripts/xhs_login_cli.py --phone 13800138000 --country-code +86
说明:
storage_state + cookies~/.xhs_system/(或 XHS_DATA_DIR 指定目录)storage_state/cookies 失效时,登录流程会自动尝试扫描系统 Chrome 的多个 Profile,识别可用的小红书登录态并导入;可用 XHS_AUTO_IMPORT_SYSTEM_CHROME_STATE=false 关闭XHS_ENABLE_STEALTH_SCRIPT=trueXHS_ENABLE_FORCE_DOM_ACTIONS=true 时才启用桌面版
PyQt不适合直接做容器 GUI 部署;容器里推荐运行FastAPI + Playwright服务模式。
docker compose build
docker compose up -d
默认暴露:
http://localhost:8000http://localhost:8000/healthzhttp://localhost:8000/readyz服务优化说明:
XHS_WEB_EAGER_BROWSER=true容器部署建议流程:
python scripts/xhs_login_cli.py ... 获取登录态/data(本仓库默认映射 ./docker-data:/data)注意:
127.0.0.1:8000:8000。Docker 网络内的调用也需要设置 XHS_WEB_API_TOKEN;远程访问、反向代理或隧道必须使用令牌和 HTTPS。小红书登录状态不能代替服务访问认证。docker-compose.yml 中启用了 XHS_HEADLESS=truedocker compose ps 可直接看到健康状态;健康检查依赖 /healthz# 1️⃣ 创建虚拟环境
python -m venv venv
# 2️⃣ 激活虚拟环境(macOS/Linux)
source venv/bin/activate
# 3️⃣ 安装依赖
pip install -r requirements.txt
# 4️⃣ (可选)安装 Playwright Chromium
PLAYWRIGHT_BROWSERS_PATH="$HOME/.xhs_system/ms-playwright" python -m playwright install chromium
# 5️⃣ 启动程序(首次启动会自动初始化数据库)
./启动程序.sh
./启动程序.sh会自动检测可用 Python;如果本地venv/bin/python已损坏,也会回退到系统 Python 启动,并提示你后续可用./install.sh修复环境。
提示:
~/.xhs_system/(数据库、日志、浏览器缓存等)XHS_DATA_DIR=/your/path 改为自定义目录(Docker/服务模式推荐)常见问题:
sudo python -m playwright install-deps chromium(或对应发行版命令)qt.qpa.fonts ... Microsoft YaHei:Qt 的字体告警,可忽略;当前版本已改为自动选择系统可用字体flowchart LR
A[🚀 启动程序] --> B[📱 登录账户]
B --> C[✍️ 输入主题]
C --> D[🤖 AI生成内容]
D --> E[👀 预览效果]
E --> F[📤 一键发布]
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#e8f5e8
style D fill:#fff3e0
style E fill:#fce4ec
style F fill:#e0f2f1
🚀 启动程序
./启动程序.sh 或 python main.py👥 用户管理(可选)
🌐 浏览器环境(可选)
📊 数据中心(可选)
🖼️ 封面模板(可选)
📱 账户登录
🔗 网页链接导入(可选)
✍️ 内容创作
🖼️ 图片处理
👀 预览发布
~/.xhs_system/keys.enc(settings.json 不再明文保存)kimi-k3;会员套餐选择「Kimi Code(会员套餐)」和 k3-256k。两种 Key、地址和额度分开使用。Kimi Code 可复用本机 Claude Code 中同一服务地址的凭据,程序使用自己的客户端标识。templates/prompts/~/.xhs_system/system_templates,便于跨平台使用)~/.xhs_system/generated_imgs/,可在首页「📥 下载图片」导出.env 配置模型(可选,推荐 OpenAI-compatible)
.env已在.gitignore,不会推送到 GitHub;请勿把真实 key 写进.env.example。
cp .env.example .env
说明:
.env 作为兜底.env,将 XHS_LLM_OVERRIDE=trueXHS_LLM_BASE_URL 可填 base_url(如 .../v1、.../api/paas/v4)或完整的 .../chat/completions(程序会自动补全)以智谱 GLM-5 为例(OpenAI-compatible):
XHS_LLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4
XHS_LLM_MODEL=glm-5
XHS_LLM_API_KEY=你的key
# 可选:强制使用环境变量(即使 UI 已配置)
XHS_LLM_OVERRIDE=true
# 可选:GLM-5 建议给大一点
XHS_LLM_TIMEOUT=120
XHS_LLM_MAX_TOKENS=3200
图片排版风格(可选):
XHS_IMG_SHOW_TAGS=false
XHS_IMG_SHOW_CONTENT_CARD=false
XHS_IMG_BOXED_LIST_CARDS=false
~/.xhs_system/settings.json:应用配置(手机号/标题/模型/模板等)~/.xhs_system/keys.enc:模型 API Key 加密存储~/.xhs_system/xhs_data.db:本地数据库(用户/浏览器环境等)~/.xhs_system/generated_imgs/:生成图片缓存~/.xhs_system/ms-playwright/:Playwright 浏览器缓存目录~/.xhs_system/logs/:运行日志~/.xhs_system/hotspots_cache.json:热点缓存~/.xhs_system/schedule_tasks.json:定时发布任务🎉 我们欢迎所有形式的贡献!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)
🐱 微信群 扫码加入讨论 |
📱 公众号 获取最新动态 |
本项目采用 Apache 2.0 许可证 - 查看 LICENSE 文件了解详情
🌟 为小红书内容创作者精心打造 | Built with ❤️ for Xiaohongshu content creators
⭐ 如果这个项目对您有帮助,请给我们一个星标!
AI-powered Xiaohongshu/Rednote content creation and publishing tool with PyQt desktop UI, FastAPI service, login-state reuse, preview publish, and automated browser workflows.
See the code本次整合中文文案二次润色、13 款精选模板、多页图文排版和发布流程修复。预发布版用于验证新版功能,完整真实发布流程与各平台安装包仍需验收。
Web 服务默认仅本机访问,Docker 端口也绑定本机。远程访问必须设置 XHS_WEB_API_TOKEN 并通过 HTTPS 使用 Authorization: Bearer <token>;配置令牌后,本机 API 请求同样需要令牌。Web 页面可在“服务访问令牌”中填写,仅在当前页面内存中使用。使用反向代理或隧道时也必须设置令牌,不要依赖代理转发的客户端地址。
海报初稿现在按素材安排阅读页,不再默认拆成“痛点、亮点、适合人群”。封面优先写具体用途;正文保留原稿的操作、限制和后续计划。上传竖版截图后,图文版式会放大截图,保留完整界面。生成结果仍需要检查,模型可能误写功能或效果。
这是一个在电脑上写小红书笔记的工具。输入主题生成初稿,再改正文、选封面、做内容图,都可以在同一个界面里完成。模型和文案模板可以自己配置。默认文案按素材写,不强制凑字数或加收藏引导;测评需要实际体验记录。模型不可用时只预览原文。
生成初稿后,默认再用完整的 humanizer-chinese 规则单独改一遍正文,然后按阅读顺序生成内容图。普通笔记和海报共用这个步骤。在「后台配置 → AI模型配置」可以关闭,也可以贴一段自己的文字作为参考语气。这一步会多调用一次模型;格式或基础事实检查不通过时再试一次,仍不通过就提示并保留初稿。用法、规则来源和试写结果见中文文案说明。这些检查只能拦住部分问题,生成稿仍需要核对。
封面中心可以添加封面图片和正文配图。正文图片按段落顺序排列,可拖动调整,也能留空;长文续页不重复配图。竖版截图会放大展示并保留完整界面,文字过长时接着分页。产品介绍会保留素材中明确提供的产品名,模型初稿仍需检查。
封面中心现在保留 13 款模板,新加了「奶油杂志」「柠檬清单」「薄荷纸雕」。奶油款给产品截图留出大块位置,柠檬款适合写步骤和清单,薄荷款用绿色纸雕配粗体标题。原来的橙白立体、大截图图文也可以直接在列表里选,点「应用到首页」后生成。

颜色重复、版式用途相近的 17 款旧模板从列表里撤下。原文件仍保留,旧稿可以继续使用;打开封面中心时,旧选择会切到保留的相近模板,配图设置保留。自己导入的模板不受这次整理影响。
封面和内容页用自己的文字重新排版,长文接着分页。可以换成自己的封面图片和正文截图,图片保持比例,续页不重复配图。这里的文案是人工整理的办公小镇示例,配图来自已有 APP 演示素材,没有重新执行截图里的任务。具体选择和素材来源见模板说明。
它也能帮你填写发布页面,支持定时任务和本机 Web/API。发布这块还有几个没修好的问题,建议先拿来写稿和预览,最后到小红书确认发布。详情见使用限制与已知问题。
正文配图、产品名保留及最新生成效果见本次改动与实测。
这次还用同一份素材实测了文案和海报生成,原始输出、人工审稿和排版对比放在生成质量检查记录。自动初稿仍需审阅。
下面是 2026-10-11 本地版本的界面,编辑区放的是“办公小镇”的介绍稿,用来展示排版,没有提交到小红书。
左边放素材、改正文,右边翻看封面和内容图。

在封面中心选择版式,预览中的示例文字会在生成时换成自己的内容。

下面用“办公小镇”做例子,轮播当前保留的 13 款模板,每张停留约 3 秒。

下面的七张图用办公小镇做例子:手机回复、集中看任务、问管家、持续跟进、查记录和连接方式。文案经过人工整理,图片由当前生成器排版,使用已有的 APP 演示截图及局部截图。持续跟进按试用功能介绍。

🤖 AI智能生成
|
🚀 自动化发布
|
👥 用户管理
|
🛡️ 本地存储与日志
|
手机用办公小镇(agentBridge)接着给 Mac 上的 Codex 发消息,让它写稿、改稿、保存草稿。小红书工具和 Codex 都在 Mac 上运行,手机不用直接连接小红书服务。
目前建议先在手机看文案,图片另行查看,再到小红书页面核对账号并确认发布。手机授权自动发布也有下面的已知风险,接口返回成功不代表笔记通过了审核。
普通管家聊天目前只查任务,实际操作由 Codex 完成。这条手机到发布的完整流程还没做完实机验收,手机聊天也没有专门的草稿和图片预览页面。
配置方法与 Codex 操作说明 · 了解办公小镇 · 看 App 操作视频
用这套工具发笔记,仍然可能被限流、禁言或封号。
目前建议这样用:
小红书已有关于 AI 托管账号的公告(IT之家全文转述),也明确提醒不要用 AI 编造体验或伪造实景,见薯管家公告。本机运行、换成手机操作,或让 Codex 来调用,都不能据此认为发布方式已获平台认可。
原评估版本:dc766ff。下面 6 项发布流程修复纳入 v2.0.0-rc.2,另补充 Web 访问保护。
| 问题 | 进度 | 现在的处理方式 |
|---|---|---|
| 结果不确定时仍重试 | 已修复 | 失败后进入待核验,暂停后续定时任务,不再 10 分钟后重发。核验后需重新安排任务。 |
| Web 发布没有排队和去重 | 已修复 | 发布逐个执行,重复稿件和相同内容的请求会被拦住。排队期间改稿、图片失效或登录会话变化,也会停止发送。当前只支持单个 Web worker。 |
| 发布状态判断不准 | 已修复 | “审核中”记录为审核中,成功提示只记为已提交。页面跳转和“发布中”不会当成完成,仍需到平台确认审核结果。 |
| 弹窗会被自动确认 | 已修复 | 发现发布弹窗就停下,交给用户处理。发布按钮尝试点击后,超时也不会换个按钮再点。 |
| 生成失败后还会发模板稿 | 已修复 | 热点文案生成失败就暂停,不再套固定内容继续发。提交后也不会按热点间隔自动滚动发布下一条。 |
| 重启后任务可能卡住 | 已修复 | 中断的定时任务和 Web 发布任务改为待核验,不会直接重发。任务记录改为先写临时文件再替换,写入失败不会启动发送。 |
| Web 接口调用者验证 | 已增加 | 默认仅本机访问;远程调用必须设置访问令牌。配置令牌后所有 API 请求均需 Bearer 认证;浏览器跨来源请求被拒绝。 |
| 部分旧测试不匹配当前接口 | 部分处理 | 已替换失效的内容测试并隔离运行数据;192 项维护中的离线测试通过。完整非浏览器测试仍有 17 项失败,详见版本说明。 |
这些修复没有解决内容真实性和平台规则的问题。真实经历、事实来源、图片和 AI 声明仍需要你在发布前核对;真实页面的完整发布流程还要验收。
Issue #29有人反馈“被检测了”。缺少完整处罚通知、使用版本和发布日志,还不能确定具体原因,更不能据此承诺修完就不会受处罚。
📦 xhs_ai_publisher/
├── 📂 assets/ # 🧩 内置系统模板预览(可选)
├── 📂 templates/ # 🧩 文案/封面模板(可自行扩展)
├── 🧰 install.sh # 📦 一键安装(macOS/Linux)
├── 🧰 install.bat # 📦 一键安装(Windows)
├── 📂 src/ # 🔧 源代码目录
│ ├── 📂 core/ # ⚡ 核心功能模块
│ │ ├── 📂 models/ # 🗄️ 数据模型
│ │ ├── 📂 services/ # 🔧 业务服务层
│ │ ├── 📂 pages/ # 🎨 界面页面
│ │ ├── 📂 processor/ # 🧩 内容/图片处理
│ │ ├── 📂 scheduler/ # ⏰ 定时任务(到点自动发布)
│ │ └── 📂 ai_integration/ # 🤖 AI适配(实验)
│ ├── 📂 web/ # 🌐 Web接口
│ │ ├── 📂 templates/ # 📄 HTML模板
│ │ └── 📂 static/ # 🎨 静态资源
│ └── 📂 logger/ # 📝 日志系统
├── 📂 images/ # 🖼️ 文档/界面截图资源
├── 📂 docs/ # 📚 文档
├── 📂 tests/ # 🧪 测试目录
├── 📂 venv/ # 🐍 本地虚拟环境(已在 .gitignore,不会上传 GitHub)
├── 🐍 main.py # 🚀 主程序入口
├── 🚀 启动程序.sh # ▶️ 启动脚本(macOS/Linux)
├── 🚀 启动程序.bat # ▶️ 启动脚本(Windows)
├── ⚙️ .env.example # 🔑 环境变量示例(不要提交真实 .env)
├── 📋 requirements.txt # 📦 依赖包列表
└── 📖 readme.md # 📚 项目说明
| 组件 | 版本要求 | 说明 |
|---|---|---|
| 🐍 Python | 3.10–3.12 | 推荐使用 Python 3.11/3.12 |
| 🌐 Chrome | 最新版 | 用于浏览器自动化 |
| 💾 内存 | 4GB+ | 推荐8GB以上 |
| 💿 磁盘 | 2GB+ | 用于存储依赖和数据 |
Windows 建议使用 Python 3.11/3.12(64 位);Python 3.13 或 32 位 Python 常见会导致 PyQt5 安装失败。
| 操作系统 | 安装脚本 | 启动脚本 |
|---|---|---|
| macOS / Linux | ./install.sh | ./启动程序.sh |
| Windows | install.bat | 启动程序.bat |
# macOS/Linux
chmod +x install.sh 启动程序.sh
./install.sh
./启动程序.sh
./启动程序.sh会优先使用venv/bin/python;若虚拟环境解释器缺失、软链失效或环境损坏,会自动回退到系统python3/python,不会写死机器路径。
:: Windows
install.bat
启动程序.bat
默认会检测 Playwright 浏览器并在缺失时自动安装;可用参数:
- 强制安装:
./install.sh --with-browser/install.bat --with-browser- 跳过浏览器:
./install.sh --skip-browser/install.bat --skip-browser- Windows 双击
启动程序.bat/install.bat失败时,现在会保留报错窗口,方便定位问题
参考 xiaohongshu-mcp、xhs-toolkit 这类项目的思路,当前仓库也支持:
本地获取登录态:
python scripts/xhs_login_cli.py --phone 13800138000 --country-code +86
说明:
storage_state + cookies~/.xhs_system/(或 XHS_DATA_DIR 指定目录)storage_state/cookies 失效时,登录流程会自动尝试扫描系统 Chrome 的多个 Profile,识别可用的小红书登录态并导入;可用 XHS_AUTO_IMPORT_SYSTEM_CHROME_STATE=false 关闭XHS_ENABLE_STEALTH_SCRIPT=trueXHS_ENABLE_FORCE_DOM_ACTIONS=true 时才启用桌面版
PyQt不适合直接做容器 GUI 部署;容器里推荐运行FastAPI + Playwright服务模式。
docker compose build
docker compose up -d
默认暴露:
http://localhost:8000http://localhost:8000/healthzhttp://localhost:8000/readyz服务优化说明:
XHS_WEB_EAGER_BROWSER=true容器部署建议流程:
python scripts/xhs_login_cli.py ... 获取登录态/data(本仓库默认映射 ./docker-data:/data)注意:
127.0.0.1:8000:8000。Docker 网络内的调用也需要设置 XHS_WEB_API_TOKEN;远程访问、反向代理或隧道必须使用令牌和 HTTPS。小红书登录状态不能代替服务访问认证。docker-compose.yml 中启用了 XHS_HEADLESS=truedocker compose ps 可直接看到健康状态;健康检查依赖 /healthz# 1️⃣ 创建虚拟环境
python -m venv venv
# 2️⃣ 激活虚拟环境(macOS/Linux)
source venv/bin/activate
# 3️⃣ 安装依赖
pip install -r requirements.txt
# 4️⃣ (可选)安装 Playwright Chromium
PLAYWRIGHT_BROWSERS_PATH="$HOME/.xhs_system/ms-playwright" python -m playwright install chromium
# 5️⃣ 启动程序(首次启动会自动初始化数据库)
./启动程序.sh
./启动程序.sh会自动检测可用 Python;如果本地venv/bin/python已损坏,也会回退到系统 Python 启动,并提示你后续可用./install.sh修复环境。
提示:
~/.xhs_system/(数据库、日志、浏览器缓存等)XHS_DATA_DIR=/your/path 改为自定义目录(Docker/服务模式推荐)常见问题:
sudo python -m playwright install-deps chromium(或对应发行版命令)qt.qpa.fonts ... Microsoft YaHei:Qt 的字体告警,可忽略;当前版本已改为自动选择系统可用字体flowchart LR
A[🚀 启动程序] --> B[📱 登录账户]
B --> C[✍️ 输入主题]
C --> D[🤖 AI生成内容]
D --> E[👀 预览效果]
E --> F[📤 一键发布]
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#e8f5e8
style D fill:#fff3e0
style E fill:#fce4ec
style F fill:#e0f2f1
🚀 启动程序
./启动程序.sh 或 python main.py👥 用户管理(可选)
🌐 浏览器环境(可选)
📊 数据中心(可选)
🖼️ 封面模板(可选)
📱 账户登录
🔗 网页链接导入(可选)
✍️ 内容创作
🖼️ 图片处理
👀 预览发布
~/.xhs_system/keys.enc(settings.json 不再明文保存)kimi-k3;会员套餐选择「Kimi Code(会员套餐)」和 k3-256k。两种 Key、地址和额度分开使用。Kimi Code 可复用本机 Claude Code 中同一服务地址的凭据,程序使用自己的客户端标识。templates/prompts/~/.xhs_system/system_templates,便于跨平台使用)~/.xhs_system/generated_imgs/,可在首页「📥 下载图片」导出.env 配置模型(可选,推荐 OpenAI-compatible)
.env已在.gitignore,不会推送到 GitHub;请勿把真实 key 写进.env.example。
cp .env.example .env
说明:
.env 作为兜底.env,将 XHS_LLM_OVERRIDE=trueXHS_LLM_BASE_URL 可填 base_url(如 .../v1、.../api/paas/v4)或完整的 .../chat/completions(程序会自动补全)以智谱 GLM-5 为例(OpenAI-compatible):
XHS_LLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4
XHS_LLM_MODEL=glm-5
XHS_LLM_API_KEY=你的key
# 可选:强制使用环境变量(即使 UI 已配置)
XHS_LLM_OVERRIDE=true
# 可选:GLM-5 建议给大一点
XHS_LLM_TIMEOUT=120
XHS_LLM_MAX_TOKENS=3200
图片排版风格(可选):
XHS_IMG_SHOW_TAGS=false
XHS_IMG_SHOW_CONTENT_CARD=false
XHS_IMG_BOXED_LIST_CARDS=false
~/.xhs_system/settings.json:应用配置(手机号/标题/模型/模板等)~/.xhs_system/keys.enc:模型 API Key 加密存储~/.xhs_system/xhs_data.db:本地数据库(用户/浏览器环境等)~/.xhs_system/generated_imgs/:生成图片缓存~/.xhs_system/ms-playwright/:Playwright 浏览器缓存目录~/.xhs_system/logs/:运行日志~/.xhs_system/hotspots_cache.json:热点缓存~/.xhs_system/schedule_tasks.json:定时发布任务🎉 我们欢迎所有形式的贡献!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)
🐱 微信群 扫码加入讨论 |
📱 公众号 获取最新动态 |
本项目采用 Apache 2.0 许可证 - 查看 LICENSE 文件了解详情
🌟 为小红书内容创作者精心打造 | Built with ❤️ for Xiaohongshu content creators
⭐ 如果这个项目对您有帮助,请给我们一个星标!