前言¶
DeepSeek Harness(命令行名 dsh)把模型、工具、會話和界面都做成插件。官方倉庫的口號是「Everything is a Plugin」:換一套視圖,不必去改 Harness 源碼。Web GUI 默認會話頁是「對話」加「軌跡」——對寫代碼、看日誌很合適,但如果你想把同一段會話讀成 Galgame 臺詞,默認佈局就顯得幹。
社區插件 gal-view 做的就是這件事:在會話標籤欄里加一個「GAL視窗」,把當前會話渲染成 16:9 舞臺,帶立繪、對話框、打字機和玩家輸入。它走官方 bundle 格式,裝到 web profile 後重啓即可。下面按目錄頁、GitHub 倉庫 README 和源碼交叉覈對後整理:它是什麼、能做什麼、怎麼裝、怎麼用。
社區插件目錄 deepseek-harness-plugin.com 是獨立站點,用來發現和安裝社區插件,與 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。
這是什麼¶
gal-view(頁面上也寫作 GAL 視窗)是一款界面增強插件,由 GitHub 用戶 Ayase34 維護,倉庫地址是 Ayase34/gal-view。許可證爲 MIT。package.json 裏的版本號是 0.3.3,主要語言是 JavaScript。倉庫創建於 2026-08-14,社區目錄收錄日期爲 2026-08-15。截至 2026-08-17,GitHub 倉庫顯示 75 星;目錄頁當時仍寫 34 星,以倉庫頁面爲準。
它解決的問題很具體:DSH Web GUI 的會話區只有常規對話流。裝上這個插件後,會話標籤頁欄會在「對話」和「軌跡」中間多出一個「GAL視窗」。點開之後,會話主體變成 16:9 Galgame 舞臺:佔位立繪、大對話框、打字機臺詞、底部玩家輸入。內置編輯模式可以拖拽元素、改屬性、調圖層,改完立刻同步迴游戲模式。
插件聲明爲官方 bundle 格式。Node 半邊極簡,場景狀態放在瀏覽器裏,不依賴後端;主體是 client 半邊,通過 conversation.view 槽位註冊 gal 視圖(order 爲 5,落在「對話」的 0 和「軌跡」的 10 之間)。package.json 裏 dsh.client.platform 寫的是 web,所以它作用在 Web GUI,不是終端 TUI。
核心功能¶
遊戲模式:把會話讀成臺詞¶
打開「GAL視窗」後默認是遊戲模式。舞臺默認尺寸是 960×540(16:9)。倉庫自帶的默認預設 gal-scene.json 會在首次打開、本地還沒有存檔場景時自動加載;編輯模式裏的「重置」也會回到這份預設。
遊戲模式裏能直接用到的能力,來自 README 和客戶端源碼:
- 打字機臺詞:助手回覆按頁拆開,逐字打出。設置裏可以選慢 / 正常 / 快三檔速度。點對話框:打字未完成就追平當前頁,已經打完且還有下一頁就翻頁。
- 玩家輸入:底部輸入框走宿主同一套提交管線,回車發送(Shift+Enter 換行)。空會話會先顯示預設歡迎詞,默認是「……測試連接已經建立。」和「這裏是一個用於測試 AI 對話系統的 Galgame 場景。」
- 說話人名牌:玩家行顯示玩家名牌,助手行顯示 AI 名牌,系統行兩邊都隱藏。默認預設裏角色名是 DeepSeek 和霧子,玩家名默認是「你」,都可以改。
- 舞臺功能按鈕:場景裏預置四個透明按鈕——歷史、自動、快進、設置。歷史從右側滑出對話記錄;自動會在當前頁打完後短暫停留再翻下一頁;快進跳過打字;設置裏可以改說話角色、玩家名和打字速度。
- 運行狀態:模型還在跑時,對話框會顯示「思考中」「編寫代碼中」「等待回應」等狀態頁。工具調用和工具結果不會進臺詞,避免把 Galgame 對話框填滿工具噪音。錯誤、命令、對話壓縮會以系統行進入歷史。
- 閱讀進度:當前行、頁碼和打字進度按會話存在瀏覽器裏,切標籤或刷新後不會從頭再打一遍。
會話文本會先去掉 Markdown 標記再進對話框,避免代碼圍欄、加粗符號佔掉臺詞框。
編輯模式:場景就是一份 JSON¶
頂欄可以切到「編輯模式」。場景對象是唯一事實源:遊戲模式讀它渲染,編輯器改它,兩邊即時聯動。元素類型包括背景、角色、對話框、臺詞、說話人、文本、導入圖片、按鈕、透明按鈕。
編輯器提供的操作,倉庫 README 和 Editor.jsx 是對得上的:
- 畫布上拖拽、改位置 / 尺寸 / 旋轉 / 透明度 / 圖層
- 元素樹裏鎖定、隱藏;上移、下移、置頂、置底
- 網格和吸附(默認網格 24px,吸附默認打開)
- 添加、複製(Ctrl+D)、刪除(Delete / Backspace)
- 撤銷 / 重做(Ctrl+Z / Ctrl+Y,歷史棧上限 100 步)
- 導入、導出場景 JSON(Ctrl+S 導出爲
gal-scene.json) - 導入圖片素材、導入字體,再在屬性面板裏應用到元素
- 「重置」回到倉庫默認預設
圖片素材接受 PNG / JPEG / WebP / GIF,單張上限 8MB,存在 IndexedDB。字體接受 TTF / OTF / WOFF / WOFF2,單文件上限 24MB,以 @font-face 註冊。導出場景時,被引用的圖片和字體會內嵌進 JSON,別人導入同一份文件就能還原畫面。
屬性面板還可以改角色名字和顏色、對話框背景(CSS background 值)、文本對齊、透明按鈕綁定的功能(歷史 / 自動 / 快進 / 設置)。說話人名牌可以指定「玩家臺詞時顯示」或「AI 臺詞時顯示」。
開關與本地存檔¶
設置面板「插件」分區下有「GAL 視窗」選項卡,用來啓用或停用會話頁上的標籤。關掉之後標籤消失,場景和設置仍保留,再打開即恢復。
README 寫得很清楚:場景佈局、素材圖片、字體和閱讀進度都保存在當前瀏覽器的 localStorage / IndexedDB 裏。重裝或卸載插件不會丟;清除該站點的瀏覽器數據纔會重置。隱私模式或配額不足時,持久化會靜默失敗,功能仍可在當次會話裏用。
安裝與啓用¶
先確認本機已經能跑 dsh。如果你是從源碼 checkout 運行 Harness(日常命令是 pnpm dsh),先 cd 到 Harness 倉庫根目錄,再把下面的 dsh 全部換成 pnpm dsh。
社區目錄頁給出的安裝命令是:
dsh plugin add github:Ayase34/gal-view
這個插件只作用於 Web GUI。倉庫 README 要求裝到 web profile,並建議釘在 main 分支:
dsh plugin --profile web add github:Ayase34/gal-view#main
#main 表示跟蹤倉庫的 main 分支。需要可復現安裝時,換成具體 commit 哈希。目錄頁的寫法是 dsh plugin add github:Ayase34/gal-view#commit;README 給的示例是 #ae73dca。
裝完必須重啓 web。bundle 層在啓動時合成,不重啓不會加載插件。重啓後打開 Web GUI 的會話頁,標籤欄應出現「GAL視窗」,位置在「對話」和「軌跡」之間。
可選驗證:
dsh --profile web --dump-config
輸出裏如果能看到 # == gal-view 這一層,說明插件已經進入組合。
更新和卸載同樣要走 web profile,並且事後重啓 web:
dsh plugin --profile web update gal-view
dsh plugin --profile web remove gal-view
目錄頁和 README 都提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。
典型用法¶
下面這套步驟可以直接復現,不依賴額外配置文件。
- 按上一節把插件裝進 web profile,重啓 web。
- 打開 DeepSeek Harness Web GUI,進入任意會話。
- 點標籤欄中間的「GAL視窗」。第一次打開且本地沒有存檔時,會加載倉庫默認預設:深色背景、兩名佔位角色、底部對話框。
- 在底部輸入框打一句話,回車發送。玩家臺詞打完後,模型開始思考或寫代碼時,對話框會切到狀態頁;助手正文定稿後再逐字打出。
- 需要回顧全文時點「歷史」;想跳過打字點對話框或「快進」;想改玩家名或打字速度點「設置」。
- 切到「編輯模式」,把立繪拖到合適位置,或用「導入素材」換上自己的 PNG / JPEG。改完立刻切迴游戲模式查看。
- 場景滿意後按 Ctrl+S(或點「導出」),得到
gal-scene.json。換機器或分享給別人時,用編輯器裏的「導入場景」讀回這份文件。 - 不想再看到這個標籤時,到設置 → 插件 → GAL 視窗,關掉「啓用 GAL 視窗」。場景不會被刪。
開發者如果要改倉庫自帶的默認預設,README 寫的流程是:編輯場景 → Ctrl+S 導出 → 用導出的 gal-scene.json 替換倉庫根同名文件 → npm run build:client 並提交。一般使用不需要走這一步。
適用場景與注意事項¶
適合這幾類用法:
- 已經在用 DSH Web GUI,想把會話界面換成 Galgame 閱讀方式,同時保留原來的「對話」「軌跡」標籤。
- 需要自定義立繪、對話框和字體,並且要把場景導出成一份 JSON 帶走。
- 演示或錄屏時,希望會話看起來像視覺小說,而不是普通聊天列表。
使用前注意這幾件事:
- 只覆蓋 Web GUI。
dsh.client.platform是web,終端 TUI 不會出現這個標籤。 - 必須重啓 web。 只執行
dsh plugin add不夠。 - 權限與許可證。 插件以當前 dsh 進程權限運行,安裝時可能執行代碼。倉庫許可證是 MIT,版權頁寫的是 Copyright (c) 2026 Yunicon。安裝前自己看源碼和 LICENSE。
- 數據在瀏覽器裏。 換瀏覽器、清站點數據或換一臺機器,本地場景不會自動跟過來,需要自己導出
gal-scene.json。 - 不是完整 Galgame 引擎。 它把 DSH 會話映射成臺詞和舞臺,不提供分支劇情腳本、CG 回想或獨立存檔槽。工具調用被故意擋在對話框外。
- 默認立繪是佔位。 要像樣的畫面,需要自己導入圖片素材。
- 目錄不是官方商店。 插件來自社區倉庫,目錄站點只負責收錄和給出安裝命令。
小結¶
gal-view 做的事情很窄,也因此好用:不改 Harness 核心,只在 Web 會話頁多掛一個 Galgame 視圖,再配一個能導出 JSON 的場景編輯器。裝到 web profile、重啓、點開「GAL視窗」,就可以把同一段會話從對話流換成舞臺臺詞。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/gal-view/
GitHub:https://github.com/Ayase34/gal-view