xiumi-assistant:讓 DSH 的 AI 在可見瀏覽器裏操作秀米排版

前言

秀米沒有公開 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 窗口。

典型流程

拿到新項目跑一遍,順序是:

  1. 打開 DSH 設置 → 秀米助手,填秀米賬號(手機號或郵箱)和密碼,點「保存賬號與主題」
  2. 點「打開瀏覽器」,點「登錄秀米」,插件自動填賬號密碼並提交
  3. 若秀米要求驗證碼,在彈出的窗口裏手動完成
  4. 讓 AI 調 xiumi_guide 讀一遍 R1–R17
  5. 調 xiumi_compose 或 xiumi_write / xiumi_edit 產出正文與樣式
  6. 調 xiumi_review 打分,把分數和修改建議給用戶
  7. 保存並確認 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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜