🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

tr1v3r/dsh-proxy

DeepSeek 客户端兼容 / 相关生态spec-screened扫描:中风险在 GitHub 查看 ↗
⚠ 装前注意

dsh-proxy — DSH 运行时可切换出站代理

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/24 · 已提供中文文档

DeepSeek Harness 的运行时可切换出站代理插件——通过一个设置区段热重载 HTTP(S)/SOCKS5 路由

综合分
35.7
GitHub 分
35.7
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/tr1v3r/dsh-proxy.git
信任档位:已验证本站已于 4 天前真实安装成功(L4 · 真实安装)
是什么
生态插件(可安装,未声明 dsh 能力)
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 1 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/22
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/25(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@tr1v3r/dsh-proxy(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/20 08:40:03

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-proxy — DSH 运行时可切换出站代理

English readme: README.md。

npm
license
DSH Market

演示:切换代理模式即时改写出站路由

@tr1v3r/dsh-proxy 是 DeepSeek Harness 插件,把进程内所有出站请求——
LLM 提供方、web_search / web_fetch、streamable-http MCP——经由
HTTP(S) CONNECT 或 SOCKS5 代理转发,并且支持运行时随时开关、随时换代理:
可以在 Web「设置 → 通用 → 网络代理」中操作,也可以编辑 profile 的
cordis.patch.yml 中的 dsh-proxy 条目(热加载),全程零重启。
上面的动图展示路由引擎,安装后可运行 node scripts/demo.mjs 复现。

工作原理

DSH 与 pi-ai 的请求都走 globalThis.fetch,而它读取的是 undici 的全局
dispatcher 槽位(Symbol.for('undici.globalDispatcher.1'))。本插件接管该槽位:

- http(s):// 代理 → EnvHttpProxyAgent(https 走 CONNECT 隧道)
- socks5:// 代理 → undici 内置 Socks5ProxyAgent(支持 URL 内鉴权;
socks5h:// / socks:// 自动归一;域名在代理端远程解析)
- noProxy 规则 → 两条路径统一走 RoutingDispatcher 分流,HTTP 与 SOCKS
语义完全一致(undici 风格:裸条目匹配主机及点边界子域;host:port 锁定
端口; 全部直连;前导点 / . 前缀视同裸条目等价写法)。manual 模式
下 dispatcher 刻意忽略环境变量里的 NO_PROXY/HTTP_PROXY——导出的 env
只引导子进程,进程内路由完全由 profile 条目配置决定;system 模式则相反,
跟随环境代理——HTTP_PROXY/HTTPS_PROXY/ALL_PROXY/NO_PROXY,环境变量
缺失时再回退到 macOS 系统设置里的网络代理(scutil --proxy)——每次分节
应用时重新探测一次,而非持续轮询)

exportEnv: true(默认)时,切换还会同步导出
HTTP_PROXY/HTTPS_PROXY/ALL_PROXY/NO_PROXY 到 dsh 进程环境——切换后
新拉起的子进程(bash 工具里的 curl/git、stdio MCP server)跟着走同一
代理。启动时由你自己设置的环境变量绝不会被覆盖;禁用/卸载时全部还原。

被替换下来的旧 dispatcher 先优雅关闭、30 秒后强制销毁,确保切换真正切断
旧的 keep-alive 连接。

安装

在目标 profile 目录(~/.config/dsh/profiles//):

1. package.json 加依赖与 bundle(合并进现有 dsh.profile.bundles 列表):

{
"dependencies": {
"@tr1v3r/dsh-proxy": "^0.2.3"
},
"dsh": {
"profile": {
"bundles": ["@deepseek-ai/dsh-base", "@tr1v3r/dsh-proxy"]
}
}
}

2. 安装:

dsh plugin --profile  install --no-frozen-lockfile

3. 重启一次 dsh 挂载插件;此后再无需重启——切换全在 settings 里。

使用

Web 主界面侧栏底部(设置上方)只有「代理状态」图标;悬浮、聚焦或打开菜单可查看
当前选择的模式,并在直连、跟随系统和手动代理之间切换。它与设置页共用同一个配置条目,外部编辑
profile 的 cordis.patch.yml 后也会同步更新;悬浮提示中的手动代理地址会隐藏用户名和密码。
「跟随系统」表示已选择的模式,不保证系统探测到了可用代理;实际出口以 DSH
日志为准。没有有效代理地址时,快捷菜单不会启用手动模式。要编辑地址、直连规则
或子进程开关,请打开「设置 → 通用 → 网络代理」。

Web profile 也可打开「设置 → 通用 → 网络代理」:从下拉列表选择直连、跟随系统或手动代理,
选择后立即生效,无需「应用」按钮。手动模式可填写 HTTP(S)/SOCKS5 URL、直连地址
(每行一个)和子进程环境变量开关;URL 与直连地址失焦后保存,开关切换后立即保存,
无效 URL 不写入文件。图形界面写入同一个 dsh-proxy 配置条目,文件配置仍然完整保留:
直接编辑 profile 的 cordis.patch.yml 会热加载并同步到图形界面;并发修改由修订号保护,
避免覆盖新值。

DSH Web 手动代理设置界面

下拉菜单提供三种出站模式:

网络代理模式菜单:直连、跟随系统、手动代理

也可以在 ~/.config/dsh/profiles//cordis.patch.yml 添加如下条目
(热加载,立即生效);如果文件已有条目,就追加到现有 YAML 列表中;已有
dsh-proxy 条目时直接修改该条目。mode 可在
direct(直连)、system(跟随系统)、manual(手动)间切换:

- id: dsh-proxy
config:
mode: manual                           # direct | system | manual
proxy: socks5://127.0.0.1:1080         # 仅 manual——http://…、https://…、
socks5://user:pass@host:1080、socks5h://…
noProxy:                               # 仅 manual——可选分流规则
- localhost
- .internal.example
- registry.corp:443
exportEnv: true                        # 仅 manual——同步设置子进程的 HTTP(S)_PROXY

| mode | 行为 |
| --- | --- |
| direct | 直连,不走任何代理(等价于旧的 enabled: false)。 |
| system | 跟随主机代理,每次分节应用时探测一次:读取 HTTP_PROXY/HTTPS_PROXY/ALL_PROXY/NO_PROXY 环境变量;环境变量缺失时,在 macOS 上再读取系统设置里的网络代理(scutil --proxy)。是保存时探测、非持续轮询;Windows 注册表、Linux 桌面与 PAC 暂未覆盖。忽略 proxy/noProxy/exportEnv。 |
| manual | 走 proxy URL,可用 noProxy 分流(等价于旧的 enabled: true)。 |

enabled: true/false 仍作为旧写法兼容——未设置 mode 时分别映射到
manual/direct:

- id: dsh-proxy
config:
enabled: true                          # ≡ mode: manual
proxy: http://127.0.0.1:7890

每次保存立即重路由。插件会记录每次切换:

dsh-proxy: routing global fetch via socks5://***@127.0.0.1:1080, noProxy 3 rule(s)
dsh-proxy: following system proxy (http://127.0.0.1:7890, noProxy 3 rule(s))
dsh-proxy: direct (mode: direct)

(日志中代理 URL 的用户名密码会打码。system 模式只读环境/系统代理,
不会回写这些环境变量。)

覆盖范围

| 流量 | 是否代理 |
| --- | --- |
| pi-ai 各提供方(zai-coding-cn、自定义 openai 兼容路由……) | ✅ |
| dsh-llm-deepseek(deepseek-official) | ✅ |
| web_search / web_fetch | ✅ |
| streamable-http MCP server | ✅ |
| stdio MCP、bash 工具子进程(curl、git……) | ✅ 经导出的环境变量,仅对切换后新拉起的进程生效 |
| pi-ai Bedrock 路由 | ⚠️ AWS SDK 自管代理(它会读 HTTPS_PROXY 环境变量) |
| 内置浏览器 host / 浏览器下载 | ❌ 独立进程,请在浏览器侧配置 |

另请注意:切换时已在运行的子进程保留其启动时的环境;undici 的 SOCKS5
agent 上游目前标注 experimental。

开发

npm install
npm test                      # 单测 + 本地 e2e:HTTP 代理、SOCKS5、noProxy、热切换、env
node scripts/boot-probe.mjs   # boot 真实 DSH 插件树,通过 Settings 热切换验证

许可

MIT © tr1v3r

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群