前言¶
秀米没有公开 API,没有开发者文档,想自动化排版只有一条路:控制浏览器。这条路有两个绕不开的坑。
第一个坑是改写 DOM 保存就丢。秀米的编辑器是 Angular 应用,正文存在 scope.cell 模型里,DOM 只是渲染结果。直接给 [contenteditable] 塞 innerHTML,页面看着是好的,一保存就按模型写回旧内容。第二个坑是看不见,无头浏览器跑完只告诉你「成功」,你不知道它到底排成了什么样。
下面介绍的 alk233/xiumi-assistant,思路是用固定 headless=False 的可见 Edge 窗口,并把所有写入改到 Angular 模型上,同时解决这两件事。插件以 Cordis 插件形式交付,Host + Client 双半,暴露 17 个 xiumi_* 工具,零 @deepseek-ai/* 运行时依赖。
这是什么¶
- 名称:xiumi-assistant
- 维护者:alk233
- 版本:0.2.0(MIT)
- 运行平台:Windows + Microsoft Edge
- 来源:非官方第三方插件,与 DeepSeek Harness、秀米、腾讯及微信均无隶属或背书关系
定位一句话:让 DSH 里的 AI 真正会用秀米排版——新建图文、挑模板、插图、设样式、保存,每一步都在人看得见的窗口里发生,随时可以接手。
核心功能¶
- 可见浏览器:固定
headless=False,开在有显示器的那台机器上,随时接管 - Angular 模型写入:正文、样式、背景都写
scope.cell/scope.comp,保存才持久 - 模板库真实组件:标题、分割线、卡片从秀米模板库的免费组件里挑,不是手打符号
- 保存独立读回核验:保存后另开一个页面重新读,比对完整模型哈希,不一致就报
saveVerified: false - 每段独立单元格:每段文本一个 cell,和人工在秀米里排版的结构一致
- 就地编辑:改旧文用
xiumi_edit,不新建,避免在「我的图文」里堆积垃圾稿 - 容量守卫:图库 100 张、图文 30 篇,快满前提醒,不自动删用户内容
- 持续学习:学参考推文的排版规则,记模板库目录结构
17 个工具¶
完整表格下面只列分工,命令级别的参数见仓库 README。
| 工具 | 干什么 |
|---|---|
xiumi_guide |
创作前必调。返回制作指南 + R1–R17 硬规则;不调它,所有产出型工具会被拒绝 |
xiumi_browser |
开/关浏览器、查状态、站内导航(返回/首页/编辑器/列表)、截图 |
xiumi_login |
登录(读本机 config 自动填、等用户扫码)、退出账号 |
xiumi_articles |
图文列表、打开、新建、保存 |
xiumi_write |
往当前稿写正文(纯文本 / 带样式的 HTML) |
xiumi_edit |
就地增删改:inspect / replace_body / set_cell / clear_cell / append_cell |
xiumi_compose |
一次性组合:create(从零)/ layout-only(只排版,一字不改) |
xiumi_review |
给当前稿打分(100 分制 + 五维评分 + 可执行的修改建议),只读不保存 |
xiumi_reference |
按链接学别人的排版,存为可复用的风格档案 |
xiumi_template |
搜秀米模板库、套用模板 |
xiumi_component |
插模板库里的单个组件(标题/分割线/卡片),可批量、可替换占位文字 |
xiumi_catalog |
模板库目录(分类树 + 缓存) |
xiumi_asset |
秀米素材库(形状/插画/图标),只处理免费素材 |
xiumi_upload |
上传本地图片到「我的图库」 |
xiumi_image_insert |
按锚点文字把图库图片插到对应段落后面 |
xiumi_image_manifest |
批量插图:按 manifest 里的锚点一次插多张 |
xiumi_quota |
查容量、清理指定条目(需要 confirm=true,且只删点名的) |
R1–R17 硬性规则¶
这些规则不是建议,而是写进代码的门禁。值得单独提的是其中几条,因为它们直接决定了产出质量与账号安全:
- R1:标题、章节、分割线只能用秀米模板库组件,不许手打符号
- R3:每段文本一个独立 cell
- R4:图片按段落落位,不许全堆到文末
- R8:改旧文用
xiumi_edit就地改,不许新建再复制粘贴 - R9:创作前先调
xiumi_guide,读完规则再动手(60 分钟内有效) - R10:创作完必须保存,并确认保存成功
- R11:创作完必须打分,把分数和修改建议给用户
- R13:账号密码由用户在设置页填,存本机
config.json - R17:未经用户明确同意,不做任何 GitHub 写操作
完整版含每条的用户原始要求与例外条件,在仓库 docs/HARD_RULES.md。
安装与启用¶
先装 Python 依赖。推荐 Python 3.12,插件复用系统已有的 Microsoft Edge,不需要 playwright install:
python -m venv .venv
.venv\Scripts\activate
pip install playwright==1.64.1
再部署到 DSH profile:
# 从 GitHub 安装
npx @deepseek-ai/dsh plugin --profile <profile> add github:alk233/xiumi-assistant
# 本地开发(link 方式)
npx @deepseek-ai/dsh plugin --profile <profile> add "file:/path/to/xiumi-assistant"
# 验证组合配置,应看到 "- id: xiumi-assistant" 行
npx @deepseek-ai/dsh --profile <profile> --dump-config
重启 DSH 后生效。注意用完整的 @deepseek-ai/dsh 包名,不要用 npx dsh plugin——npm 上的 dsh 名字早被无关的 JS shell 包占用,会报 could not determine executable to run。
装完在 DSH 设置页点「打开浏览器」,会弹出一个 Edge 窗口。
典型流程¶
拿到新项目跑一遍,顺序是:
- 打开 DSH 设置 → 秀米助手,填秀米账号(手机号或邮箱)和密码,点「保存账号与主题」
- 点「打开浏览器」,点「登录秀米」,插件自动填账号密码并提交
- 若秀米要求验证码,在弹出的窗口里手动完成
- 让 AI 调
xiumi_guide读一遍 R1–R17 - 调
xiumi_compose或xiumi_write/xiumi_edit产出正文与样式 - 调
xiumi_review打分,把分数和修改建议给用户 - 保存并确认
saveVerified为真
浏览器会一直开着,登录态只在窗口里,不保存、不复用。关掉窗口下次要重新登录。
主题与模板目录¶
设置页提供 13 种版式风格 × 12 个色系的选择,选中组合实时渲染预览。不选具体风格时走自动模式,按标题和正文内容判断,优先级是:风格规则库匹配 → 关键词映射 → 兜底简约 + 朱红;返回值里带 resolvedStyle / resolvedTheme / resolveReason,能看出为什么选了这个。
秀米模板库有 7 组、90 多个分类(随包基线目录是 92 分类),插件把目录结构缓存到 ~/.xiumi-assistant/template-catalog.json,读取优先级是:运行时缓存(30 天内)→ 包内基线 → 现场采集。分类增删或总数变动超过 20% 才整份覆盖并报告 changed/diff,否则只刷新 lastVerifiedAt。缓存只存分类名和模板 id/标题/是否免费,不存账号信息。
架构¶
DSH Agent
│ 工具调用(17 个 xiumi_* 工具)
▼
index.js(Host 半部)
│ 1. 校验硬性规则门禁(未读指南 → 拒绝)
│ 2. 把参数序列化成 JSON 行
▼
bridge.py(Python 常驻,stdin/stdout JSON 行协议)
│ 3. Playwright 驱动可见 Edge
│ 4. 写 Angular cell 模型(不是 DOM)
│ 5. 保存后开独立页面读回模型比对
▼
秀米编辑器(xiumi.us)
Host 半部的 index.js 用 inject = ['tools', 'webServer'] 注册工具和 /__xiumi/* 路由;产出型工具在 execute 开头检查 gate.at,没读过指南或超过 60 分钟直接抛错。Python 解释器按「配置里的 pythonPath → XIUMI_PYTHON → 系统 python/python3」逐级探测,并校验 playwright 版本 ≥ 1.40。
Client 半部的 client.js 用 inject = ['slots'] 注册 settings.section(id: 'xiumi',order: 105),通过同源 fetch 调 /__xiumi/config、/__xiumi/login、/__xiumi/open 等接口。主题表在 theme.js,Host 和 Client 共用同一份定义。
凭据与安全¶
- 账号密码只保存在
~/.xiumi-assistant/config.json,文件权限设为仅当前用户可读写 - 密码不进源码、不进日志、不进工具返回值
- HTTP 接口只接受
127.0.0.1同源请求,响应带no-store - 插件不连任何第三方服务器,所有操作都在本机浏览器里
适用场景与注意¶
适合这类人:要在 DSH 里自动完成秀米图文排版、希望看到每一步实际操作、并且需要保存结果可核验。不适合要批量刷稿、营销推广或商业用途的人——README 明确限定本项目仅供个人学习、技术研究与交流。
先看三条硬限制:
- 只支持 Windows + Microsoft Edge,Playwright 复用系统 Edge
- 秀米前端结构随时可能变更,届时插件可能失效
- 只处理模板库里的免费素材,VIP/付费素材跳过并计数;不发公众号,发布要另走微信公众平台
更重要的是看上游声明。该项目 README 写明:全部代码、文档与测试均由 AI 生成,未经专业软件工程师人工审查,AI 生成内容可能包含逻辑缺陷、安全漏洞或与事实不符的描述;项目按 AS IS 提供,作者及贡献者不承担图文内容丢失、排版错乱、账号被限制等责任;使用风险由使用者自行承担。插件以当前 DSH 进程权限运行,安装前应自己审一遍源码,确认 MIT 许可证与 LICENSE 文件,再决定是否启用。
小结¶
xiumi-assistant 的价值不在「让 AI 能排版」,而在它把秀米自动化里最容易被忽略的两个问题显式处理了:写入走 Angular 模型而不是 DOM,保存后另开页面读回比对。配合可见窗口,出问题时人可以直接接手。前提是环境在 Windows + Edge、使用范围是学习研究,并且接受上游「AI 生成、AS IS、风险自负」的声明。
目录页:https://www.skillhub.cn/plugins/alk233/xiumi-assistant
仓库:https://github.com/alk233/xiumi-assistant