前言¶
DeepSeek Harness(DSH)官方桌面版的设置页已经覆盖账号、模型、插件、子智能体等常见项,但在插件市场里浏览仓库、拉取 GitHub 资源、或余额不足要充值时,仍有几处没有统一入口:英文 README 不便快速判断插件用途、直连 GitHub 容易慢或失败、市场列表与翻译缓存无法从界面清理、充值页需要自行查找。社区插件 dsh-desktop-settings(维护者 VCPr0j3k7,分类:客户端)以独立 bundle 装入 profile,不修改官方代码,专门补齐上述四块,并附带连通性自测与侧边栏充值入口。
下面介绍它是什么、能做什么,以及如何安装与验证。
这是什么¶
dsh-desktop-settings 是为 DSH 官方桌面版准备的设置补充插件:在宿主侧注册 HTTP API,在客户端侧通过 @deepseek-ai/dsh-client-ui-slots 挂载「桌面设置补充」分区与「API 充值」入口。配置写入 <DSH_HOME>/dsh-extras.json,与插件市场相关模块共用同一份文件。
它刻意不提供「应用名称」「DSH 数据目录(DSH_HOME)」「从其他 DSH 目录沿用配置」——官方桌面版不隔离 ~/.dsh,这三节在 README 中说明没有存在前提。
- 仓库:github.com/VCPr0j3k7/dsh-desktop-settings
- 社区目录页:skillhub.cn/plugins/VCPr0j3k7/dsh-desktop-settings
- 许可证:MIT(package.json 版本 0.1.0)
环境要求¶
| 项 | 要求 |
|---|---|
| Node.js | ^22.19.0 \|\| >=24 |
| DeepSeek Harness | 官方桌面版(宿主依赖其 process.argv 布局与 profile 结构) |
宿主半边依赖 ctx.webServer;客户端半边依赖官方客户端模块加载器与 UI 槽位。
核心功能¶
README 翻译(DeepL)¶
- 开关默认开启。仅对「基本不含中文」的文本调用 DeepL:CJK 字符少于 30 个且占比低于 8% 时才请求,中文 README 不消耗配额。
- 关键词提取在本地完成,与翻译开关无关,离线可用。
- 翻译结果按仓库磁盘缓存,重复打开不重复计费。
- 设置页可执行连通性自测:
POST /settings/test-translation翻译固定样句;456 表示配额用尽,403 表示密钥无效或 Free / Pro 端点选错。 - DeepL Free 密钥以
:fx结尾,须使用api-free.deepl.com;认证头为Authorization: DeepL-Auth-Key <key>。
GitHub 加速代理¶
- 默认关闭,代理地址留空;插件不预置任何代理,关闭时与未安装该能力时行为一致。
- 须同时打开开关并填写地址;只开开关不填地址时静默回落官方地址。
- 支持 http/https,对未写协议、多余斜杠、子路径等做归一化;将
api.github.com、raw.githubusercontent.com等上游映射到自建反向代理的路径前缀(如/api、/raw等),令牌与请求方法原样透传。 - 302 由插件手动跟随(最多 6 跳),避免 fetch 自动跟到直连 GitHub。
- 连通性自测:
POST /settings/test-github-proxy探针根路径与一条真实 raw 请求,两者都须通过。 - 可选
githubToken:留空为匿名 API 额度;填入个人访问令牌可提高 API 限额。令牌不写入日志、不随插件分发。
清理缓存¶
POST /market/clear 会删除:
<DSH_HOME>/plugin-data/market-cache.json(市场列表缓存)<DSH_HOME>/plugin-data/market-downloads(下载残留)<DSH_HOME>/plugin-data/translate-cache/(翻译缓存)
单项删除失败会被跳过,不会导致整次操作失败。
API 充值¶
GET /recharge/status返回充值页、用量页地址、API Key 来源与数据目录;只探测密钥是否存在(环境变量DEEPSEEK_API_KEY或<DSH_HOME>/.credentials.yaml),不回传密钥本体。POST /recharge/open用系统浏览器打开https://platform.deepseek.com/top_up(仅允许 http/https)。- 侧边栏「API 充值」图标点击后打开浏览器,主面板切到充值页。
配置文件¶
设置统一写在 <DSH_HOME>/dsh-extras.json。主要字段(缺失项回落默认值,未知字段原样保留):
| 字段 | 默认值 | 说明 |
|---|---|---|
appName |
"DeepSeek Harness" |
显示名 |
githubProxy.enabled |
false |
是否启用 GitHub 代理 |
githubProxy.baseUrl |
"" |
代理基址 |
githubToken |
"" |
可选 GitHub API 令牌 |
translate.enabled |
true |
是否启用 README 翻译 |
translate.endpoint |
https://api-free.deepl.com/v2/translate |
DeepL 端点 |
translate.apiKey |
"" |
DeepL API Key |
translate.targetLang |
"ZH" |
目标语言(DeepL 大写代码) |
translate.characterCount |
0 |
本地累计已译字符数 |
translate.maxCharacters |
4000 |
单个 README 最多翻译字符数 |
读取不做缓存,改文件后下次请求即生效。首次运行时若文件不存在,会尝试从 %APPDATA% 下旧桌面配置迁移 translate 与 githubProxy。
安装与启用¶
用官方桌面版随包的 pnpm 装进目标 profile(路径按本机替换):
# 用官方桌面版随包的 pnpm 装进 profile
pnpm add "file:<插件目录绝对路径>"
# 或者直接从 GitHub 装
pnpm add "github:VCPr0j3k7/dsh-desktop-settings"
Windows 示例:
PNPM="D:/DeepSeek Harness/resources/runtime/pnpm/bin/pnpm.cjs"
NODE="D:/DeepSeek Harness/resources/runtime/primary-runtime/dependencies/node/bin/node.exe"
PROFILE="C:/Users/<用户名>/.dsh/profiles/desktop"
cd "$PROFILE"
"$NODE" "$PNPM" add "file:C:/path/to/dsh-desktop-settings"
关键步骤: pnpm add 只会写入 dependencies。还必须在 profile 的 package.json 里把包名加入 dsh.profile.bundles,否则插件不会加载,且过程无报错、界面也无提示:
{
"dsh": {
"profile": {
"bundles": [
"dsh-desktop-settings"
]
}
}
}
官方 CLI 的 dsh plugin add 会自动登记 bundles;手动 pnpm 时需自行补齐。装完后必须重启 DeepSeek Harness(宿主只在启动时装配插件树)。
验证是否生效:
- 重启后,设置页出现「桌面设置补充」,侧边栏出现「API 充值」;
- 开发者工具控制台应出现
[dsh-desktop-settings] client factory 已执行与[dsh-desktop-settings] 宿主基址 = …。仅有第一行而无第二行,表示客户端未连上宿主。
卸载:在 profile 目录执行 pnpm remove dsh-desktop-settings,并从 dsh.profile.bundles 删除对应条目后重启。临时停用只需从 bundles 移除条目并重启。
典型用法¶
- 配置 DeepL 并自测:在「桌面设置补充」中填写
translate.apiKey与端点(Free 用api-free.deepl.com),保存后使用界面上的翻译连通性测试(对应 APIPOST /settings/test-translation)。 - 启用自建 GitHub 反向代理:填写
githubProxy.baseUrl,打开githubProxy.enabled,运行 GitHub 代理自测(POST /settings/test-github-proxy)。需要更高 API 限额时再填githubToken。 - 市场列表或 README 翻译异常:在设置中使用清理缓存(
POST /market/clear),再刷新插件市场。 - 余额不足:点击侧边栏「API 充值」,或在充值分区打开 DeepSeek 开放平台充值页。
宿主 API 前缀为 /dsh-desktop-settings/api(如 GET /config、POST /config 深合并写入)。客户端首次请求会依次尝试相对路径与 http://dsh.internal,以 GET /info 返回的 data.plugin 是否为本插件 id 判定可用基址。
适用场景与注意¶
适合谁: 日常使用 DSH 官方桌面版、经常在插件市场看英文 README、需要从 GitHub 拉插件或资源、希望在一处管理 DeepL 与代理并清理市场缓存的开发者。
权限与安全: 插件在当前 DSH 进程权限下运行,可读写 <DSH_HOME> 下配置与缓存、代发 DeepL 与 GitHub 请求。安装前应阅读源码与 MIT 许可证,自行保管 DeepL 与 GitHub 令牌;代理地址须为本人可控服务,插件不会把流量静默导向第三方预设节点。
生态说明: DSH 采用「一切皆插件」思路;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。本插件为社区维护的客户端类 bundle,星标与版本以仓库与目录页为准。
已知架构限制: 进度通知采用 GET /events?since= 轮询而非 SSE;/settings/inspect-homes 与 /settings/import-from 在桌面版场景下按设计返回「不适用」。
结尾¶
dsh-desktop-settings 把桌面版设置里缺的四项——DeepL README 翻译、自建 GitHub 代理、市场/翻译缓存清理、开放平台充值入口——收进同一套 UI 与 dsh-extras.json,并以 bundle 方式挂载,不动官方树。若你已在用桌面 profile,按 README 用 pnpm 安装、登记 bundles 并重启即可验证。
- 目录页:https://www.skillhub.cn/plugins/VCPr0j3k7/dsh-desktop-settings
- GitHub:https://github.com/VCPr0j3k7/dsh-desktop-settings