zgrajdnhj7806-svg/dsh-deepseek-web0

dsh-deepseek-web

DSH 插件:把 chat.deepseek.com 网页端接进来。模型工具(提问 / 从第 xx 行看到 xx 行分析)、运行时技能 deepseek-web,以及 DSH 设置里的登录面板(一键拉起 Edge 抓取 token)。

包名
dsh-deepseek-web
版本
0.1.0
许可证
MIT
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zgrajdnhj7806-svg/dsh-deepseek-web

dsh-deepseek-web

你自己账号的 DeepSeek 网页版(chat.deepseek.com)接进 DeepSeek Harness (dsh) 的插件:

模型可以直接调用网页端提问 / 按行区间(第 xx 行到 xx 行)分析文件,DSH 设置页里带一个一键登录面板,免 API Key、免客户端回环。

纯 Node 实现:PoW 用 Node 内置 WebAssembly 跑官方 sha3_wasm_bg.wasm,登录用 Edge/CDP 自动抓取,零 Python/Playwright 依赖。

特性

类型名字说明
模型工具deepseek_web_analyze_lines读文件第 start_lineend_line 行,交给网页端模型分析;提示词带行号,回答可引用行号
模型工具deepseek_web_ask直接提问;支持深度思考 / 联网搜索 / 新会话 / 多轮
模型工具deepseek_web_status登录状态、token 摘要、凭据来源、账号 id
运行时技能deepseek-web告诉模型什么时候该用网页端模型、怎么用行区间分析
设置分区设置 → DeepSeek 网页版登录状态 + 一键登录 / 导入 / 手工粘贴 / 测试 / 退出 + 插件设置

三个工具都是串行的:DeepSeek 免费账号同一时刻只允许一路流式请求。

⚠️ 账号安全(务必先读)

本项目直接调用你本人账号的 DeepSeek 网页版(chat.deepseek.com),行为与你在浏览器里手动提问完全一样。请务必遵守:

  1. 只支持单线程,不支持并发/并行提问。插件刻意把所有调用做成全串行: 三个工具共用同一条流式通道,同一时刻只会有一个网页端请求在线。请不要自行并发调用、 「多开」多个实例,或绕过插件并行发请求——免费账号同一时刻只允许一路流式,并发必失败。
  2. 不高频轰炸。请保持接近真人提问的节奏(一次一问、串行推进)。高频、批量、自动化轰炸 会触发 DeepSeek 的风控,可能导致账号被限流、临时冻结甚至封禁,后果由使用者自负
  3. 仅限个人学习与自动化。请遵守 DeepSeek 服务条款,不要用于违反条款的任何用途; 发给网页端的内容会离开本机,敏感代码与凭据不要发送。

一句话:当单线程用,别当 API 用。

环境要求

  • Node.js >= 20(DeepSeek 官方推荐 >= 22.19 或 >= 24)
  • 已安装并初始化 dsh(npm install -g @deepseek-ai/dsh官方快速开始

一条命令安装

Windows(PowerShell)

irm https://raw.githubusercontent.com/zgrajdnhj7806-svg/dsh-deepseek-web/main/scripts/install.ps1 | iex

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/zgrajdnhj7806-svg/dsh-deepseek-web/main/scripts/install.sh | bash

脚本会做两件事:

  1. dsh plugin --profile web add github:zgrajdnhj7806-svg/dsh-deepseek-web(把插件作为依赖装进 web profile);
  2. dsh-deepseek-web 追加到 profile 的 dsh.profile.bundles 列表(dsh 按层栈加载插件的那一步)。

装完重启 dsh 即生效:

dsh web

手动安装(等价步骤,不想跑脚本时用)

dsh plugin --profile web add github:zgrajdnhj7806-svg/dsh-deepseek-web
# 编辑 ~/.dsh/profiles/web/package.json:在 dsh.profile.bundles 数组里追加 "dsh-deepseek-web"

另一个形态:v1.0/(MCP 服务版)

v1.0/ 是同一套网页端协议的另一份独立实现:一个纯 stdio 的 MCP 服务器,不依赖 dsh 的插件体系, 任何支持 MCP 的客户端都能接入;只想把它当「网页端模型代理」用时选这个。

环境要求:Node.js >= 18(PoW 用 Node 内置 WebAssembly 直跑官方 sha3_wasm_bg.wasm,依旧零 Python / 零代理)

cd v1.0
npm install        # 只装 @modelcontextprotocol/sdk

保留仓库目录结构v1.0/src/pow.mjs 在本目录找不到 wasm 时会向上找 assets/sha3_wasm_bg.wasm[.b64]。 只把 v1.0/ 单独拷走的话,要么连 assets/ 一起拷,要么把 sha3_wasm_bg.wasm(或 .wasm.b64)放进 v1.0/src/

注册:把 v1.0/cordis.patch.yml 里的 - insert: 段合并进 /profiles/web/cordis.patch.yml 的顶层数组,并把 args 里的 `` 换成 v1.0/ 的绝对路径:

- insert:
    - id: mcp-deepseek-web
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        transport: stdio
        serverName: deepseek-web
        command: node
        args:
          - '/src/index.mjs'
        env:
          DEEPSEEK_WEB_TOKEN: ''
          DEEPSEEK_WEB_COOKIE: ''
          # DWH_ROOT: ''
          # DEEPSEEK_WEB_CREDENTIALS: ''

环境变量(env 段)

变量必填说明
DEEPSEEK_WEB_TOKEN是*网页端 userToken(F12 → /api/v0/chat/completionAuthorization: Bearer 后面的值)
DEEPSEEK_WEB_COOKIE同一次请求的 Cookie
DEEPSEEK_WEB_CREDENTIALS指向 { "token": …, "cookie": … } 的 JSON 文件
DWH_ROOTSfs_* 工具的允许根目录,逗号 / 分号分隔可配多个
DWH_ROOT单个默认根目录;与 DWH_ROOTS 都没有时用用户主目录

*凭据取用优先级:DEEPSEEK_WEB_TOKEN 环境变量 → DEEPSEEK_WEB_CREDENTIALS 指向的文件 → v1.0/credentials.json

自带 7 个工具

工具说明
web_analyze_range把内容交给网页端模型分析:给 file + start_line/end_line 读文件区间,或直接给 code;支持 summary/analyze/explain/critique/implement、多轮 conversation_idsearch=true 联网、save_result 存档
critique_workspace对工作区做对抗式审查(挑刺 / 找漏洞)
fs_list列目录(限定在允许根内,防越界)
fs_read读文件(同上)
fs_grep内容检索(同上)
web_conversation_list列出当前会话池里的网页端对话
web_conversation_clearconversation_id 删单条,或 all=true 清空会话池

直接跑(调试用)

node v1.0/src/index.mjs        # 按 MCP stdio 协议收发,ready 行打到 stderr

「⚠️ 账号安全」对 v1.0/ 同样适用:单线程、全串行,不要并发调用,不要高频轰炸

登录(三条路,从省事到兜底)

  1. 一键登录(打开 Edge) —— 设置页按钮。插件拉起本机 Edge(独立 profile,存在 $DSH_HOME/cache/dsh-deepseek-web/browser_profile),你在窗口里登录一次,插件用 CDP 读 localStorage.userToken 与 cookie 并保存,之后长期免登录。
  2. 从 credentials.json 导入 —— 兼容其他工具导出的登录缓存({ "token": …, "cookie": … });放到插件同级的 credentials.json,首次使用会自动只读迁移。
  3. 手工粘贴 token —— 浏览器 F12 → 网络 → /api/v0/chat/completion 请求头,复制 Authorization: Bearer 后面的值。

登录态默认写进 DSH 凭据服务$DSH_HOME/.credentials.yaml,目录 0700 / 文件 0600,记录键 deepseek-web/login);凭据服务不可用时回退到 $DSH_HOME/cache/dsh-deepseek-web/credentials.json(0600)。token/cookie 不会写进 settings.yaml,也不会出现在任何发往浏览器的响应里(界面只显示摘要)。

设置项(settings.yamldeepseek-web 段)

默认说明
enabledtrue关掉后不注册工具与技能(设置页仍可用,方便修好再开)
autoLogintrue是否允许一键登录拉起浏览器
browserPath''Edge/Chrome 路径,留空自动探测
loginTimeoutMs300000等待用户完成登录的最长时间
credentialsPath''待导入的 credentials.json;留空用插件同级的 ../credentials.json
wasmPath''PoW WASM 路径(支持 .wasm 或同路径 .wasm.b64),留空用插件内置
defaultThinking / defaultSearchfalsedeepseek_web_ask 的默认开关
timeoutMs180000单次网页端请求超时
maxLines400行区间分析一次最多多少行(超了直接拒绝,避免把整文件塞进去)
maxChars60000行区间分析一次最多多少字符
conversationsPerSession4每个 DSH 会话最多缓存多少个网页端会话

自测与独立 CLI

插件带一个脱离 DSH 的独立 CLI bin/dsweb.mjs,以及宿主侧集成自测:

node _selftest.mjs            # 12 项:注册、凭据、路由围栏、真实行区间分析
node bin/dsweb.mjs --check
node bin/dsweb.mjs --file lib/pow.js --lines 30-52 --instruction "只关注内存安全"

文件结构

dsh-deepseek-web/
├── lib/
│   ├── index.js       插件入口:设置命名空间 + 工具 + 技能 + 路由
│   ├── config.js      schemastery 配置 schema 与默认值
│   ├── service.js     业务层(配置 + 凭据 + 客户端 + 会话池)
│   ├── tools.js       三个模型工具(defineTool)
│   ├── skill.js       运行时技能描述符
│   ├── web.js         宿主 HTTP 路由(同源围栏 + ok/error 信封)
│   ├── client.js      浏览器半边(设置分区,classic script 工厂)
│   ├── client-core.js DeepSeek 网页端客户端(PoW + SSE + 多轮)
│   ├── pow.js         Node 版 WASM PoW 解题器(.wasm / .wasm.b64 均可)
│   ├── analyze.js     行区间抽取 + 分析提示词组装
│   ├── login.js       Edge + CDP 一键登录
│   └── state.js       凭据存取(凭据服务 / 0600 文件 / 只读导入)
├── assets/sha3_wasm_bg.wasm.b64  官方 PoW 模块的 base64 文本(运行时自动解码)
├── assets/skill/SKILL.md         技能正文
├── bin/dsweb.mjs                 独立 CLI(--check / --prompt / --file --lines)
├── cordis.patch.yml              bundle patch 行
├── scripts/                      install.sh / install.ps1 一键安装
└── v1.0/                         独立的 MCP 服务版(package.json + src/index.mjs + src/pow.mjs + cordis.patch.yml)

已知限制

  • 账号安全:网页端账号同一时刻只允许一路流式,插件全串行、单线程;请勿并发调用或高频轰炸(详见上方「⚠️ 账号安全」)。
  • token 会过期(几天到几周),过期后 deepseek_web_status / 报错信息会提示重新登录。
  • 只有一层技能目录 / 行区间上限 maxLines,超限直接拒绝而不是截断——拆小区间更准。
  • 一键登录会弹出一个可见浏览器窗口(这是设计如此:需要你手动过验证码/2FA)。
  • 仅用于个人学习与自动化,请遵守 DeepSeek 服务条款;发给网页端的内容会离开本机。

许可

MIT © 2026 zgrajdnhj7806-svg

assets/sha3_wasm_bg.wasm.b64 是 chat.deepseek.com 网页端公开资源(DeepSeekHashV1 PoW 模块)的 base64 文本,版权归 DeepSeek 所有,仅随本插件分发用于协议兼容,请勿用于违反条款的用途。