dsh-deepseek-web-embed
Manifest validEmbed chat.deepseek.com exactly as-is into DeepSeek Harness: local loopback reverse proxy + standalone-site iframe. Log in once and chat directly in the interface—no need to open a browser.
dsh-deepseek-web-embed · DeepSeek 网页版
把 chat.deepseek.com 原样嵌进 DeepSeek Harness 的 Web 界面:侧边栏点一下,主区域就是官网页面,登录一次长期有效,不必再切浏览器标签。
安装
GUI → 设置 → 插件 → 添加插件,粘贴下面任意一个 spec:
| 渠道 | spec |
|---|---|
| GitHub(推荐,跟 main 走) | github:howIdobetter/dsh-deepseek-web-embed |
| npm | dsh-deepseek-web-embed |
| 本地目录 | /absolute/path/to/dsh-deepseek-web |
装完刷新一次 Web 界面,左侧图标栏出现 DeepSeek。命令行等价形式:dsh plugin --profile <name> add <spec>。
为什么不直接 iframe
官网响应头带 content-security-policy: frame-ancestors 'none',普通 iframe 会被浏览器直接拒;它的接口又是绝对路径 /api/v0/...,就算绕过框架限制,接口请求也会打到 Harness 自己的域名上。所以插件在 本机回环 起了一个反向代理(默认 localhost:45789,同时监听 127.0.0.1 与 [::1]),让整站在独立站点上跑起来:
| 卡点 | 处理 |
|---|---|
frame-ancestors 'none' | 文档由代理重发,去掉 CSP / XFO 头 |
接口 /api/v0/* | 同源命中代理,原样流式转发到 chat.deepseek.com(含 SSE、上传、PoW 校验头) |
静态资源在 fe-static.deepseek.com,CORS 只给 deepseek 域 | HTML 与 bundle 的 publicPath 都改写到本机 /__cdn/,脚本变同源加载,顺带去掉 crossorigin / integrity |
| 接口对匿名请求回 429(WAF) | 转发页面自己发出的 authorization,WAF 放行(实测:带 token 200、不带 429) |
| Cookie 串味 | 站点 cookie 只留在代理侧 jar,不回传浏览器;也绝不把 Harness 自己的 cookie 发出去 |
| 存储隔离 | 代理用 localhost,界面在 127.0.0.1 → 不同站点,localStorage 互不相干 |
| 进程隔离 | 站点不同 → Chromium 给 iframe 单独渲染进程;它崩只黑一块,不拖垮 Harness |
| 浏览器状态污染 | 响应头走白名单,绝不透传 strict-transport-security(会把 loopback 钉成强制 HTTPS)或 alt-svc |
| 代理自身异常 | 全链路 try/catch、clientError/upgrade 兜底、请求体有上限缓冲,异常只回 500 |
使用
- 点侧边栏 DeepSeek,先看到一张启动卡片(此时还没加载官网),点「进入 DeepSeek」。
- 首次在里面登录(手机号 / 邮箱)。之后每次打开都是登录态。
- 登录被验证码卡住时用「导入登录态」:
- 浏览器打开 chat.deepseek.com(保持已登录)→ F12 → Console →
copy(localStorage.userToken) - 回到面板 → 右上角
⋯→ 导入登录态 → 粘贴 → 写入并重载
- 浏览器打开 chat.deepseek.com(保持已登录)→ F12 → Console →
聊天、深度思考、联网搜索、文件上传、会话历史、分享链接都是官网原样行为——插件不重写任何请求体。
界面
只有一条 2.4rem 的细头栏(名称 + 两个图标按钮),下面是满铺的官网页面;按下 ⋯ 才展开「复制地址 / 导入登录态」。所有颜色、圆角、字号都取 Harness 的主题 token,跟随明暗、皮肤与缩放。
配置
cordis.patch.yml 里的 port 是首选端口(被占用时自动向上找 24 个)。端口固定有意义:官网登录态存在这个站点 origin 的 localStorage 里,换端口等于换设备。
端点
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/dsh-deepseek-web/endpoint | 回报代理地址与端口(走 connection 的信任围栏) |
| POST | /api/dsh-deepseek-web/session | 写入导入的登录态(一次性,下次文档加载时注入) |
代理自身另有 GET /__dsw/health 与 GET /__dsw/log(本机诊断)。
已知边界
- 只绑本机回环(
127.0.0.1+[::1]),不对外网开放。 - 语音朗读的
wss://…/api/v0/chat/tts/未代理(返回 501),其它功能不依赖它。 - 站点的图形验证码(shumei / hcaptcha / Turnstile)按域名发放令牌,代理域下可能被拒;登录态导入是兜底路径。
- 每次请求都记在
~/.dsh/deepseek-web/requests.log(含失败响应体),排查问题时看它。
目录
dsh-deepseek-web/
├── index.js # Host:回环反代(HTML 改写、API 透传、cookie jar、诊断日志)
├── client.js # 浏览器:侧边栏图标 + 细头栏 + 整页 iframe + 导入登录态弹窗
├── cordis.patch.yml # bundle 行(port)
├── locale/{zh,en}.json # 插件管理器里的标题与描述
└── icon.svg
License
MIT © 2026 howIdobetter
Comments
Loading…
Similar plugins
by realguan
在 DeepSeek Harness (dsh) 桌面端内嵌 chat.deepseek.com:双入口聊天面板(中央主面板 + 右侧栏标签页)、多桌面宿主自适应驱动、持久登录会话,零运行时依赖。
★ 4
MIT
JavaScript
Oct 17, 2026
dsh plugin --profile web add dsh-deepseek-chat-embedby zerorigin-studio
Web chat entry for DeepSeek Harness: a sidebar button opening chat.deepseek.com in a dedicated desktop window under dsh-desktop, with in-webview fallback for plain web environments.
★ 6
↓ 146/wk
MIT
JavaScript
Sep 23, 2026
dsh plugin --profile web add @zerorigin-studio/dsh-deepseek-chatby naiIong
Embed chat.deepseek.com web chat in DSH and transfer the conversation into a workspace session for DeepSeek Harness.
★ 0
Apache-2.0
JavaScript
Oct 18, 2026
dsh plugin --profile web add dsh-webchat-bridgeby FrostLeafKEE
Switch between DeepSeek web chat and workspaces in DeepSeek Harness. Web history sidebar and one-click conversation import. / 网页聊天、历史侧栏与工作区一键导入。
★ 10
MIT
TypeScript
Oct 12, 2026
dsh plugin --profile web add dsh-chat-bridgeby exoticknight
One-click native conversations with independent workspaces for DeepSeek Harness
★ 1
Apache-2.0
JavaScript
Oct 6, 2026
dsh plugin --profile web add dsh-just-chatby gulagala001
DeepSeek 网页聊天、临时侧栏聊天、API 开放平台与 DSH 会话迁移。
★ 3
MIT
JavaScript
Oct 24, 2026
dsh plugin --profile web add dsh-deepseek-workbench