前言¶
DeepSeek Harness(DSH)把能力拆成技能,文件落在 DSH Home 的 skills/<技能名>/SKILL.md。技能一多,靠文件管理器或全文搜索很難快速回答:某個技能適合什麼場景、輸入輸出是什麼、用戶怎麼觸發、模型何時會自動調用。社區目錄頁能發現插件,但日常排查仍需要對着本機目錄逐個打開 Markdown。
下面介紹維護者 young-yyj 的客戶端插件 dsh-skill-browser(倉庫 young-yyj/dsh-skill-browser):在 DSH Web 左側欄增加「技能面板」,只讀掃描 <DSH_HOME>/skills/*/SKILL.md,不改動技能文件,也不讀取項目目錄或當前會話的技能註冊表。
這是什麼¶
DSH Skill Browser 是 DeepSeek Harness 的本地只讀技能瀏覽插件,分類爲客戶端。它在 Web 界面提供與「插件」「上下文洞察」同級的一級側欄入口,面板佔滿中央區域,不綁定具體會話。
插件只提供目錄、詳情與事件流三個 GET 端點;不安裝、啓用、禁用或刪除技能,不修改任何 SKILL.md,不聯網、不調用模型,數據全部來自本機 DSH Home。
核心功能¶
瀏覽與搜索¶
- 按技能名、簡介、適用場景、來源和提供方搜索;在 Web 裏按
/可直接聚焦頂部搜索框。 - 現有 41 個技能使用已審覈的 10 類用途映射;未收錄技能顯示在「其他」,輸入輸出格式標爲待確認。
- 按輸出格式與輸入材料篩選:輸出支持任意/全部匹配,跨組條件同時滿足,可排除中間/預覽產物。
卡片與詳情¶
- 卡片展示「適用於、輸入、可選、輸出」,區分主要交付、按需輸出與中間產物;長描述在卡片內截斷,完整信息在詳情彈窗。
- 頂部概覽條單行展示技能總數、分類數與待補元數據計數;點擊待補元數據可篩出缺審覈標註的技能。
- 點擊卡片打開詳情彈窗,五個頁籤(概覽、觸發方式、輸入、輸出、原文)無內容時自動隱藏;
Esc關閉彈窗並把焦點送回原卡片。 - 原文頁以純文本查看
SKILL.md(frontmatter 默認摺疊),不渲染 Markdown/HTML,避免注入面;支持 YAML 多行簡介、UTF-8 BOM 和 Windows 換行。
體驗與安全邊界¶
- 配色基於 DSH 主題令牌與穩定名稱調色板,同一技能在卡片與詳情中顏色一致,適配深色/淺色主題。
- 通過 SSE 接收目錄變化通知並自動刷新;支持中英文、鍵盤操作、焦點循環與移動端佈局。
- 請求校驗迴環連接、同源與瀏覽器來源;響應字段、正文長度和 SSE 連接數有上限。技能正文僅作爲 React 文本及
<pre>顯示,不執行其中的 HTML 或腳本。
環境要求¶
- Node.js 22 或更高版本(從源碼構建時需要)。
- DeepSeek Harness
>=0.2.1-rc.4 <0.3.0-0;0.2.x 後續版本在兼容範圍內一般無需換插件,0.3 起須重新驗證。 - 推薦安裝路徑已在 Windows 上驗證;使用前可先執行
dsh --version確認落在兼容範圍。
許可證:MIT。
安裝與啓用¶
普通用戶可從 GitHub Release 安裝已構建的 .tgz,無需 Git 或自行編譯。README 以 v0.1.11 爲例,在 PowerShell 中下載到 DSH Home、校驗 SHA256 並安裝:
$ErrorActionPreference = 'Stop'
$version = '0.1.11'
$file = "dsh-skill-browser-$version.tgz"
$baseUrl = "https://github.com/young-yyj/dsh-skill-browser/releases/download/v$version"
$dshRoot = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path ([Environment]::GetFolderPath('UserProfile')) '.dsh' }
$archiveDir = Join-Path $dshRoot 'local-packages/dsh-skill-browser'
New-Item -ItemType Directory -Force -Path $archiveDir | Out-Null
$tarball = Join-Path $archiveDir $file
$checksumFile = Join-Path $archiveDir "SHA256SUMS-$version"
Invoke-WebRequest "$baseUrl/$file" -OutFile $tarball
Invoke-WebRequest "$baseUrl/SHA256SUMS" -OutFile $checksumFile
$checksums = [Text.Encoding]::UTF8.GetString([IO.File]::ReadAllBytes($checksumFile))
$match = [regex]::Match($checksums, '(?m)^([a-fA-F0-9]{64}) ' + [regex]::Escape($file) + '\r?$')
if (!$match.Success) { throw 'Checksum entry missing' }
if ((Get-FileHash -LiteralPath $tarball -Algorithm SHA256).Hash -ne $match.Groups[1].Value) { throw 'SHA256 mismatch; installation stopped' }
dsh plugin --profile web add $tarball --save-exact
if ($LASTEXITCODE -ne 0) { throw 'DSH installation failed' }
停止已運行的 DSH Web 後重新啓動:
dsh web --no-open
啓動後在左側欄點擊「技能面板」。本插件只展示你 DSH Home 中已有的技能 Markdown,不附帶安裝技能文件。
卸載:
dsh plugin --profile web remove dsh-skill-browser
然後重啓 DSH Web;不會刪除 skills/ 下的技能文件。
更新或回退時,改用目標 Release 的安裝命令或對舊 .tgz 重新執行 dsh plugin --profile web add <路徑> --save-exact,並重啓。出現完整性檢查失敗時不要添加安全例外。
典型用法¶
找技能:打開 DSH Web,進入「技能面板」,在頂部搜索框輸入技能名、簡介、場景、來源或提供方。
縮小範圍:在篩選區選擇「想要什麼輸出」(如 PDF、Markdown,可多選並切換任意/全部匹配)、用途分類,或展開「限定輸入材料」;要排查未審覈條目時,點擊概覽條裏的「待補元數據」計數。
看細節:點擊卡片,在彈窗中切換頁籤——概覽看輸入輸出摘要,觸發方式看用戶調用與模型自動調用說明,原文頁查看 SKILL.md 純文本。
無結果時界面會給出帶結果數量的放寬條件建議,可逐項放寬篩選再試。
適用場景與注意¶
適合已經在 DSH Home 裏積累了一批 SKILL.md、需要在 Web 裏對照元數據與觸發方式的使用者與插件作者。不適合期望在面板裏一鍵安裝/刪除技能,或希望渲染技能正文 Markdown/HTML、加載技能目錄內圖片的場景——這些能力有意不提供。
DSH 生態是「一切皆插件」;SkillHub 目錄頁 是社區站點,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行查看倉庫源碼與 MIT 許可證;插件以當前 dsh 進程權限讀取 DSH Home,僅面向本機迴環訪問設計。