跳到主内容

dsh-web-network 使用指南

webdsh 浏览器侧的 Network 设置面板子插件:在 Settings 里插入一个面板,让用户选择/测试/关闭 CORS 代理,代理只在直接请求被浏览器拒收后兜底使用。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

webdsh

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add github:futrime/webdsh#path:packages/dsh-web-network

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • ⚡ Nothing to run. No server, no install, no local Node — the harness boots in the page.
  • 🖥️ Real Node, real Python. npm install and pip install both work, and the terminal and the agent share one container.
  • 🧩 Real plugins. Install from npm, a tarball, GitHub, or a path — from the browser.
  • 📦 Real dsh. The published @deepseek-ai/* packages, unmodified: 114 of 129 rows compose exactly as dsh web composes them.
  • 🔒 Yours. Files, sessions and keys live in your browser's storage. Nothing is uploaded.

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

安装后从哪里打开 Network 面板?

进入 webdsh 的 Settings,Network 一节排在 Models(10)与 Plugins(15)之间(order: 12),标注为 "Network"。代码见 packages/dsh-web-network/src/client.tsx:246-252。

这个面板在改什么?

改的是页面里所有跨域请求的兜底代理:勾选开启 / 输入代理 URL(支持 {url} 与 {encoded} 占位符) / 点 Test 用一次对 api.openai.com 的 GET 探测 / 点 Reset 回到默认。代理本身在 src/net/cors-proxy.ts 里执行,本插件只管设置页。

默认代理是什么?能换吗?

默认是 https://proxy.cors.sh/{url},备选是 https://cors.eu.org/{url}——两个都从该页面实测过能用(带 authorization 头与 JSON body 的 POST 通过,并返回 access-control-allow-origin: *);文本框接受任何带 {url} 或 {encoded} 占位符的前缀代理或 query 参数代理,Reset 按钮一键还原默认。

代理什么时候会被用?所有请求都过它吗?

不是。只有直接 fetch 被浏览器以 TypeError(就是 CORS / DNS / 连接失败那一类)拒收时才走代理,且只对该 origin 兜底一次;一旦该 origin 走代理成功,就被记入 memo,下次直接走代理;若代理本身又失败,memo 会被清除,重新测量。代理本身被排除,不会自递归。代码见 src/net/cors-proxy.ts:14-32 注释、242-290。

WebContainer 里 agent 跑的命令也会过这个代理吗?

不会。WebContainer 的请求从 StackBlitz 的 worker 出去,sw.js 与本代理都碰不到;src/host/jsh-tool.ts 读的是同一份配置,把可用的 host 列出来告诉 model,因此改完面板后需要刷新页面让 shell 工具读到新值。

Test 按钮在测什么?

对一个候选代理做一次 GET https://api.openai.com/v1/models(被测代理在该次请求里被临时加进 excluded,防止它被配置的代理救回来),15 秒超时;返回 401 说明确实到达了 OpenAI(没带 key,预期如此),返回 <400 的状态码也是通的,429 报告为被限流,其余 4xx 报告为代理拒绝,TimeoutError 报告为超时。

面板里那个 "Proxied this session" 列表是什么?

是本次会话里确实经过代理才答到的 origin 列表,每 2 秒从 DSH_WEB_NETWORK.proxied() 拉一次,只有非空时才显示;它就是"代理有没有被真用过"的可信回答,而不是个估算值。

这个面板关掉代理有什么副作用?

关掉后,直接请求被浏览器拒收的 origin(OpenAI、NVIDIA、Cerebras、Vercel AI gateway、codeload.github.com,以及页面默认用的 opencode.ai/zen 免费通道)会一直失败,直到你在 Models 里改用对浏览器开放 CORS 的 provider。提示框就摆在关闭后下面。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 0.1.0-rc.7+(根 package.json 锁定全部 @deepseek-ai/dsh-* 为 0.1.0-rc.7;子包 package.json 未单独声明,见根 package.json:42-217)
  • Node: 运行时无 Node 要求(插件跑在浏览器 webdsh 内);webdsh 仓库构建/启动脚本要求 Node >=22,见根 package.json:8-10

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则