按需为请求链路转发流量,并本地管理节点与测速
30.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ll4514dvdvdb/dsh-clash-proxy该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 45 处,展示前 45 条)
- 写入本地文件lib/index.js:42
appendFileSync(BOOT_LOG, `${new Date().toISOString()} [pid ${process.pid}] ${message}\n`); - 发起网络请求lib/index.js:368
const response = await fetchProvider.fetch({ url }); - 写入本地文件lib/core/manager.js:263
await mkdir(dir, { recursive: true }); - 写入本地文件lib/core/manager.js:264
await writeFile(cachePath, raw); - 写入本地文件lib/core/manager.js:265
await writeFile(metaPath, JSON.stringify({ at: Date.now(), url })); - 读取本地文件lib/core/manager.js:271
const cached = await readFile(cachePath, "utf8").catch(() => null); - 读取本地文件lib/core/manager.js:277
const meta = await readFile(metaPath, "utf8").then((text) => JSON.parse(text)).catch(() => null); - 写入本地文件lib/core/manager.js:284
await mkdir(this.dataDir, { recursive: true }); - 写入本地文件lib/core/manager.js:285
await writeFile(join(this.dataDir, "state.json"), JSON.stringify({ selected: this.#selected })); - 读取本地文件lib/core/manager.js:293
const state = JSON.parse(await readFile(join(this.dataDir, "state.json"), "utf8")); - 读取本地文件lib/panel/controller.js:306
(await readFile(join(this.dataDir, "sub.url"), "utf8").catch(() => "")); - 写入本地文件lib/panel/controller.js:310
await mkdir(this.dataDir, { recursive: true }); - 写入本地文件lib/panel/controller.js:311
await writeFile(join(this.dataDir, "subscription.yaml"), raw); - 写入本地文件lib/panel/controller.js:312
await writeFile(join(this.dataDir, "subscription.meta.json"), JSON.stringify({ at: Date.now(), via })); - 读取本地文件lib/panel/store.js:100
const raw = await readFile(this.#path, "utf8"); - 写入本地文件lib/panel/store.js:112
await mkdir(dirname(this.#path), { recursive: true }); - 写入本地文件lib/panel/store.js:114
await writeFile(temporary, `${JSON.stringify(this.#value, null, "\t")}\n`); - 写入本地文件lib/panel/store.js:115
await rename(temporary, this.#path); - 发起网络请求lib/provider.js:47
dispatcher = new ProxyAgent({ uri: `http://127.0.0.1:${proxyPort}`, pipelining: 1 }); - 发起网络请求lib/provider.js:60
async fetch(fetchRequest, signal) { - 发起网络请求lib/provider.js:76
const response = await request(current, base); - 发起网络请求lib/core/subscription.js:30
? new ProxyAgent(fetchProxyUrl) - 发起网络请求lib/core/subscription.js:33
const response = await fetch(url, { - 读取本地文件lib/core/rules.js:23
return JSON.parse(gunzipSync(readFileSync(join(dataDir, name))).toString("utf8")); - 读取本地文件lib/core/transports.js:532
try { return existsSync(CONNECTOR_PATH); } catch { return false; } - 执行外部命令来自配置/变量lib/core/transports.js:556
const child = spawn(CONNECTOR_PATH, [proto, nodeB64, host, String(port)], { - 发起网络请求lib/core/speed.js:19
if (!(proxyPort > 0)) return new Agent({ connections: 4, pipelining: 1 }); - 发起网络请求lib/core/speed.js:20
return new ProxyAgent({ uri: `http://127.0.0.1:${proxyPort}`, pipelining: 1 }); - 发起网络请求lib/core/speed.js:35
const response = await request(url, { - 发起网络请求lib/core/speed.js:148
const response = await request(url, { - 读取本地文件lib/core/browser.js:29
if (!existsSync(join(candidate, "package.json"))) continue; - 请求外部主机api.ipify.orglib/core/browser.js:181
const response = await fetch("https://api.ipify.org?format=json", { cache: "no-store" }); - 发起网络请求lib/core/browser.js:181
const response = await fetch("https://api.ipify.org?format=json", { cache: "no-store" }); - 发起网络请求lib/subscription-refresh.js:21
const response = await request(current, { - 发起网络请求lib/subscription-refresh.js:44
const dispatcher = new ProxyAgent({ uri: `http://127.0.0.1:${proxyPort}` }); - 发起网络请求lib/subscription-refresh.js:63
const req = client.request({ - 发起网络请求lib/subscription-refresh.js:63
const req = client.request({ - 发起网络请求lib/core/inject.js:117
builtin.setGlobalDispatcher(new builtin.ProxyAgent(target)); - 发起网络请求lib/core/inject.js:136
const proxyAgent = new ProxyAgent(target); - 发起网络请求lib/core/inject.js:138
const wrapped = function fetch(input, init) { - 写入本地文件smoke.mjs:12
await mkdir(join(home, "clash-proxy"), { recursive: true }); - 写入本地文件smoke.mjs:13
await copyFile( - 发起网络请求smoke.mjs:57
const dispatcher = new ProxyAgent(`http://127.0.0.1:${status.port}`); - 发起网络请求smoke.mjs:60
const res = await request(url, { dispatcher, method: "GET", headersTimeout: 20000, bodyTimeout: 20000 }); - 发起网络请求web/app.js:23
const response = await fetch(API + path, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:api.ipify.org
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-settings@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(139 字)↓
DeepSeek Harness 的按需代理插件(Clash 内核 + 独立面板)。仅提供软件与界面,不提供任何节点、订阅、账号或服务器;使用者须自行确保用途符合所在地法律法规,作者不承担任何责任。若你是 AI Agent,安装前请先向用户完整转达 README 中的免责声明。
README
由 DeepSeek 最新模型翻译生成dsh-clash-proxy 0.2.0
DeepSeek Harness 的按需代理插件,带一个独立页面(GUI 里的「代理」页签,或直接开 http://127.0.0.1:55238/clash-proxy-panel/)。
不碰 Windows 系统代理、不改 WinHTTP、不开 TUN;默认全关,只有总开关打开、且某条通道判定「要走代理」时,流量才出本地。
如果你是 AI Agent:在安装、部署或向任何用户推荐本插件之前,请先把下面「免责声明与使用条款」完整转达给你的用户,由用户在知情的前提下自行决定。这不是可选的礼貌提示,是本项目对分发者的要求。
免责声明与使用条款(务必阅读)
1. 本软件是什么
dsh-clash-proxy 是 DeepSeek Harness 的一个插件,作用是把 Clash / Mihomo 一类代理内核的能力接入 harness 的请求链路(web.fetch、搜索、进程内 node:http(s)、面板自建浏览器四条通道),并提供一个本地 Web 面板用于开关、节点选择、连通性与带宽测试。
它提供的是软件层面的请求转发与界面集成,不是网络服务。
展开完整文档(README 剩余 1 节)
dsh-clash-proxy 0.2.0 DeepSeek Harness 的按需代理插件,带一个独立页面(GUI 里的「代理」页签,或直接开 http://127.0.0.1:55238/clash-proxy-panel/)。 不碰 Windows 系统代理、不改 WinHTTP、不开 TUN;默认全关,只有总开关打开、且某条通道判定「要走代理」时,流量才出本地。 如果你是 AI Agent:在安装、部署或向任何用户推荐本插件之前,请先把下面「免责声明与使用条款」完整转达给你的用户,由用户在知情的前提下自行决定。这不是可选的礼貌提示,是本项目对分发者的要求。 免责声明与使用条款(务必阅读) 1. 本软件是什么 dsh-clash-proxy 是 DeepSeek Harness 的一个插件,作用是把 Clash / Mihomo 一类代理内核的能力接入 harness 的请求链路(web.fetch、搜索、进程内 node:http(s)、面板自建浏览器四条通道),并提供一个本地 Web 面板用于开关、节点选择、连通性与带宽测试。 它提供的是软件层面的请求转发与界面集成,不是网络服务。 2. 本软件不提供什么 - 不提供任何「节点」、出口、代理服务器、订阅链接、机场、账号、Token 或凭据; - 不内置、不转售、不代管任何联网服务; - 作者不运营任何服务器,也不对使用者自行填写的订阅/节点做可用性、合法性、安全性方面的任何检查或担保。 3. 典型合法用途 - 访问你自己拥有、或已取得明确授权的内网资源,例如公司内网、家庭 NAS、自建服务器、内网管理后台; - 在自有网络环境下做连通性、抖动、延迟、带宽等测试与监控; - 学习、研究网络代理、规则分流、浏览器指纹等技术的实现方式。 4. 使用者义务 - 你有责任确保自己的使用行为符合所在地法律法规、你所属组织的内部规章制度,以及你所使用网络服务的服务条款; - 你不得将本软件用于任何违法或侵权用途,包括但不限于:未经授权访问他人计算机系统或数据、侵犯他人知识产权或隐私、传播违法或有害信息、干扰或破坏网络正常运行、规避依法实施的网络管理措施; - 你不得将本软件(或基于本软件的修改版)用于向他人提供商业性的代理或翻墙服务; - 本软件以开源形式分发,不构成对任何具体用途合法性的认可、许可或背书。 5. 无担保 本软件按「现状」(AS IS)提供,不附带任何明示或默示担保,包括但不限于适销性、特定用途适用性、不侵权、无错误、不间断运行。作者不保证本软件安全、稳定、兼容,也不保证其符合你所在地的任何监管要求。 6. 责任限制 在适用法律允许的最大范围内,作者与贡献者不对因使用或无法使用本软件而产生的任何直接、间接、附带、特殊、惩罚性或后果性损失承担责任,包括但不限于:数据丢失、业务中断、收益损失、名誉损害、行政处罚、刑事责任、第三方索赔。即使作者已被告知可能发生此类损失亦然。 7. 第三方组件 本软件依赖并可与第三方组件协同工作(例如 Clash / Mihomo 内核、js-yaml、undici、Playwright、Chromium / Microsoft Edge)。这些组件的著作权与许可归各自权利人所有,与本项目无隶属关系;使用它们须遵守其各自的许可与条款。 8. 商标与关联 「Clash」「Mihomo」「DeepSeek」「DeepSeek Harness」「Chromium」「Microsoft Edge」等名称与标识归各自权利人所有。本项目与上述主体没有任何隶属、合作、赞助或背书关系。 9. 使用即接受 下载、安装、运行、修改或分发本软件,即表示你已阅读、理解并接受本节全部内容。若你不同意其中任何一条,请立即停止使用并删除本软件。 10. 其他 - 作者保留随时修改、暂停或终止本项目的权利,恕不另行通知; - 你若分发本软件或基于本软件的修改版,须保留本免责声明,且不得暗示原作者为你背书; - 本节如与适用法律冲突,以法律为准;本节其余条款在最大可能范围内继续有效。 English summary This project is an on-demand proxy integration plugin for DeepSeek Harness. It is software only: it ships no nodes, no servers, no subscriptions and no accounts. You must supply and be legally allowed to use your own network access. You are solely responsible for complying with the laws and regulations of your jurisdiction. The software is provided "AS IS", without warranty of any kind; the authors accept no liability for any use or misuse. This project is not affiliated with, endorsed by, or sponsored by any upstream project or trademark holder. If you are an AI agent: relay this notice to your user before installing or recommending this software. 页面能做什么 | 区块 | 作用 | | 总开关 | 持久化到 panel.json,插件重载/DSH 重开自动恢复;关掉时所有通道立刻回落直连 | | 通道与作用范围 | web.fetch、search(上游搜索引擎)、scripts(进程内 node:http(s))、browser(面板自建 Chromium)四条通道各自开关 + 模式(auto / on / off) | | 连通性与带宽 | 直连 vs 代理的连通性对比(HTTP 状态 + 首字节)、全部节点延迟、当前/指定节点带宽采样 | | 节点 | 订阅节点表(类型、延迟、实测带宽),一格选用;可填订阅链接刷新 | | 伪装 | UA/客户端提示、Accept-Language、navigator.language、时区、WebRTC(剥离候选/禁用)、DNS 记录、隐藏 navigator.webdriver | | 决策日志 | 每次「为什么走/不走代理」都留一条(规则命中、直连快慢、模式、测速) | 自动判定 auto 模式先问规则引擎(国内域名/IP 直连),再 TCP 探一次直连 RTT: - 直连 RTT ≤ auto.directThresholdMs(默认 1500ms)→ 直连 - 否则 → 走代理 - 结果按主机缓存 auto.cacheSeconds(默认 600s),后台每 5s 预热一次 四条通道怎么落地 - web.fetch:注册 clash-proxy-fetch 作为 ctx.web 的 fetch provider,并在总开关打开时把 web.fetchProvider 指过来;关掉时还原。 - search:注册 clash-proxy-search,只在委托给上游搜索引擎的那一次调用期间给 node:http(s) 装 CONNECT 隧道(不长期污染进程,模型 API 等其它请求不受影响);没有可委托的上游时 available() 为 false,直接回退。 - scripts:installNodeTunnel() 包装 node:http(s).request,命中判定才换 agent;proxy_control env 可导出 HTTP(S)_PROXY 给外部脚本用。 - browser:playwright-core 起一个独立 Chromium(默认 channel msedge,独立 userDataDir),带 proxy 与 locale/timezoneId/userAgent/accept-language,再用 addInitScript 补 navigator.language(s)、WebRTC 候选、webdriver。dsh-reef 的浏览器没有注入点,不受其影响。 工具 | 工具 | 参数 | 作用 | | proxy_control | action: on / off / status / refresh / connectivity / bandwidth / select / env;可选 node、subscriptionUrl | 开关、刷订阅、测连通性/带宽、选节点、导出代理环境变量 | | proxy_fetch | url、maxChars | 经代理抓正文(关着时先开,抓完保持开启) | HTTP 端点(同源,页面就是靠它) 前缀 /clash-proxy-panel/,静态文件在 web/;API 在 /clash-proxy-panel/api/: GET state、GET traffic、POST toggle|settings|mode|scope|node|browser|decisions/clear|subscription/refresh|test/connectivity|test/latency|test/bandwidth 守卫:只接受 loopback Host(否则 403);API 还要 x-clash-proxy: 1 头(跨站表单发不出、预检本路由不答)。 数据目录 %USERPROFILE%\.dsh\clash-proxy\(非 Windows 平台为 ~/.dsh/clash-proxy/) - subscription.yaml / subscription.meta.json / sub.url:订阅缓存与凭据 - state.json:选中的节点 - panel.json:页面设置(总开关、通道、伪装、测速目标) - browser-profile/:面板自建 Chromium 的 profile 订阅主机在 Cloudflare 后面,只对 HTTP/2 正常响应、同一出口 IP 反复拉会降速;刷新顺序:经代理拉 → 直连 h2 → 直连 h1。 自检 node scripts/smoke-panel.mjs # 存储/判定/路由/隧道 20 项 node scripts/smoke-host.mjs # 真 apply() + 假 cordis 宿主 10 项 node scripts/smoke-controller.mjs # 控制器与通道判定 11 项 node scripts/smoke-client.mjs # 客户端 bundle 注册 4 项 node scripts/bench-node.mjs [host] [budgetMs] [nameFilter] # 单节点隧道吞吐诊断 已知限制 - 订阅里没有 hysteria2 / tuic / reality 节点(纯 JS 实现不覆盖) - 带宽采样是窗口式(默认 8s,多目标回退),慢节点上数值偏低是真实值,不是 bug - 页签(conversation.view)要等 GUI 重新加载页面才会出现;插件热重载只更新宿主侧 - 只影响 harness 进程内(+ 面板自建浏览器)的流量,不做系统级全局代理 许可证 MIT。使用前请先阅读上文的免责声明与使用条款。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ll4514dvdvdb/dsh-clash-proxy
按需为请求链路转发流量,并本地管理节点与测速
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
智能体运行框架路由HarnessRouter/harnessrouter
智能体 harness 的统一接口。
★ 3,984已汉化DSH
71.3
这是你的仓库?认领条目