DSH Plugins Marketplace

DSH Plugins

Plugins

/

Terminal & Clients

/

dsh-ccswitch-importer-plus

d

dsh-ccswitch-importer-plus

Manifest valid

Import CC Switch Codex, Claude and OpenCode providers into DeepSeek Harness and configure per-model reasoning depth.

UI (client)hasBundlePatch

DSH CCSwitch 导入器(社区增强版)

将 CCSwitch 里的 Codex、Claude、Claude Desktop 与 OpenCode provider 导入 DeepSeek Harness,并在同一个「设置 -> 模型」页面管理每个模型的推理深度。

English README

衍生作品说明:本插件是 wtiaw/dsh-ccswitch-importer(Apache-2.0)的衍生版,由第三方维护,不是原作者的官方版本。上游版本面向 DSH 0.1.x;本版本针对 DSH 0.2.0-rc.2 重写了 Host/Client 接线,并修复了批量导入、凭据脱敏、多语言等问题。npm 包名为 dsh-ccswitch-importer-plus,插件 ID 与 loader ID 与包名一致。完整变更清单见与上游的差异。

功能

  • 只读扫描 ~/.cc-switch/cc-switch.db,识别自定义 Codex、Claude、Claude Desktop 与 OpenCode provider;官方和默认 profile 会跳过。
  • 将 endpoint、协议、模型 ID 和 API key 导入 DSH 的 llm-pi-ai 设置。
  • API key 只在 Host 进程中读取,并通过 DSH credentials 服务保存为 apiKeyEnv 引用;扫描和导入响应不包含 key。
  • 从 Codex TOML 顶层 model_reasoning_effort 预填模型推理配置,同时允许之后在 DSH 中修改。
  • none 映射为关闭;已知模型使用保守目录;未知模型只生成导入值对应的单个等级;非法值安全关闭并给出警告。
  • 重新导入不会覆盖已有的推理等级、route 默认值、headers、容量字段或未出现在 CCSwitch 的额外模型。
  • 原生 Models 页面、CCSwitch 导入区和模型推理编辑器共存于同一个 Models 页面。
  • CCSwitch 导入区、模型推理面板和每个模型卡片都支持收纳折叠,折叠偏好会保存在当前浏览器。

CCSwitch 是只读导入源。首次导入后,DSH 设置和 credentials 服务成为配置事实来源;不会写回 CCSwitch 数据库。

安装

从 GitHub 安装:

dsh plugin --profile desktop add github:2995288295/dsh-ccswitch-importer-plus

从本地源码安装:

dsh plugin --profile desktop add ./dsh-ccswitch-importer-plus

安装或更新后刷新 DSH Web 页面,打开 设置 -> 模型。

使用

  1. 在 Models 页面打开「CCSwitch 导入」并点击「扫描」。
  2. 选择需要导入的 provider,点击「导入选中」。
  3. 检查导入结果和 provider 模型列表。
  4. 在同页的模型推理区域确认已预填的等级;第三方网关需要自定义 wire value 时直接编辑并保存。
  5. 使用各面板标题栏或模型卡片右侧的箭头收纳/展开内容;折叠偏好会自动记住。
  6. 在输入框模型选择器中使用保存后的推理等级。

导入会在设置 revision 冲突时停止并恢复本次写入的 credential;已有 credential 会恢复原值。

推理目录

当前保守目录包含:

  • GPT-5.6 系列:off: none、low、medium、high、xhigh、max。
  • OpenAI o-series(o1、o3、o4-mini 及变体):off: null、low、medium、high。

目录只是默认值,保存后的 DSH 字段由用户控制。

DSH Community Market 目录

本插件按 目录适配器指南(路径 A:标准来源) 提供可接入 DSH Community Market 的标准目录。仓库内包含:

  • scripts/build-catalog.mjs —— 从 package.json 元数据生成 catalog-source manifest 与 /v1/plugins 条目页;
  • scripts/deploy-catalog.sh —— 一键部署到 Cloudflare Pages(含 JSON Content-Type 重写规则);
  • test/catalog.test.mjs —— 用官方 Schema 校验生成结果并断言元数据一致;
  • docs/catalog.md —— 部署方式、Content-Type 要求与来源登记说明。

同时,本插件仓库已添加 GitHub topic dsh-plugin,会被 dshfind 目录来源按 topic 自动收录。

生成与部署:

DSH_CATALOG_ORIGIN=https://catalog.example.com npm run build:catalog

安全边界与限制

  • Host 路由只接受 loopback、same-origin 请求;API key 不进入浏览器、日志、摘要或错误文本。
  • 读取需要 Node.js 22.19 或更高版本,以支持只读 SQLite API。
  • 插件只处理 CCSwitch 的自定义 Codex / Claude / Claude Desktop / OpenCode provider 和当前数据库字段;「测试连接」先请求 {baseURL}/models(免费、不发推理请求),只有当上游不提供模型列表(401/403/404/405/501)时,才对该 provider 真正使用的端点补发一次 1 token 的最小请求,用于区分「中转站不暴露 /models」与「凭据确实无效」。它不写入任何设置,失败时会把上游自己的错误原文(脱敏后)一并显示。
  • 未知模型和不合法等级默认关闭,避免向网关发送未确认的 reasoning 参数。

与上游的差异

相对 wtiaw/dsh-ccswitch-importer(0.1.3,2026-09-24,面向 DSH 0.1.x),本版本的主要改动:

针对 DSH 0.2.0-rc.2 的兼容性重写

  • peer 依赖改为 ^0.2.0-rc.2,移除 0.2.0 已废弃的 @deepseek-ai/dsh-client-runtime 注入。
  • 适配 0.2.0 的 { ok, value } 远端信封与 settings.describe() 命名空间视图。
  • 导入源从 Codex 扩展到 Codex、Claude、Claude Desktop 与 OpenCode。
  • 新增模型目录回退、模型探测(probe)与 loopback 错误透出。
  • 插件挂载到原生「模型」页面底部的 footer 槽位,与原生 UI 共存。

缺陷修复

  • 批量导入此前只成功第一条:现在每次写入成功后重新读取 settings revision,作为下一条的并发前置条件。
  • 凭据脱敏从「按 sk- 形状匹配」改为「按已知密钥的值脱敏」,导入响应与 stderr 都不再回显 API key。
  • POST /import 现在强制要求同源 Origin 头;超长请求体会销毁连接而不是静默忽略。
  • 保存推理等级期间若又产生新改动,状态显示为「已保存(有未保存修改)」而不是「已保存」。
  • 空扫描结果现在区分「未安装 CCSwitch / 无 profile / 数据库不可读 / Node 版本过低」,并回显探测路径。
  • node:sqlite 改为懒加载,Node 版本不足时给出可读提示,而不是整个插件加载失败。
  • 界面文案全部走 zh/en 语言目录,不再硬编码中文。

0.2.0-rc.3 界面可用性修复

  • 被阻止的行现在直接说明原因:服务端为每种原因附带机器可读的 blockedCode(未知值一律回退为 blocked),界面按 zh/en 目录本地化呈现,并把 app type、npm 适配器这类可变部分通过 blockedDetail 一并显示。
  • 导入后的自动刷新不再清空导入结果;结果项显示 provider 名称而不是内部 ID,失败项标红,并新增「清除」入口。
  • 首次进入设置页不再闪现「没有可读取的 CCSwitch provider」;「扫描中」与「导入中」不再共用同一个按钮文案。
  • 推理面板:保存后再修改,徽章立刻变为「有未保存的改动」,而不是继续显示「已保存」;无改动时保存按钮禁用,避免空写一次设置;「重新载入」在会丢弃本地修改时先确认;等级行汇总新增「已自定义 N 项」标记,折叠状态下也能看出哪些模型改过 wire 值。

0.2.0-rc.4 测试连接

  • 每个可导入的行现在都有一个「测试连接」按钮:新增的 POST /api/dsh-ccswitch/probe 只请求 {baseURL}/models,把结果显示在行内——连通 · N 个模型 · Nms,或具体失败原因(HTTP 401、超时、网络错误、缺少凭据),在需要做判断的地方直接给出结论。
  • 探测在结构上就是只读的:这条路由不碰 settings,也不执行导入。有一条测试断言导入路径被调用 0 次。
  • 按钮放在徽章旁边,而不是塞进行 <label> 里,所以点击按钮不再连带切换复选框;没有凭据或 base URL 的行不显示按钮;单次请求最多探测 50 行。
  • 结果在两端都做归一化(未知原因一律按网络失败处理,计数与耗时都做夹取),重扫后消失的行会连带丢弃它的探测结果;服务端继续按密钥值脱敏,错误响应里不会回显 key。

0.2.0-rc.5 探测更可信

  • 失败信息不再只有一个状态码:探测会把上游自己的错误原文取出来(脱敏、压成一行、截断 200 字符)附在行内,例如 失败 · HTTP 401 · Invalid token (request id: …),而不是让用户对着一个 HTTP 401 猜。
  • /models 被中转站挡住时不再是假失败:当它是 401/403/404/405/501 时,会按该 provider 的协议(openai-completions → /chat/completions、openai-responses → /responses、anthropic-messages → /messages)补发一次带上 max_tokens: 1 的最小真实请求。只要这次成功,行内显示 连通 · 最小请求 · Nms,明确说明是通过哪种方式验证的。
  • 这次补发只发生在免费检查答不上来的时候,且上游不可达(超时/网络错误)或该 provider 没有已知模型 ID 时不会发第二次请求;导入路径的模型加宽仍然只走 /models,因此不会因为探测而多花钱。
  • 新增宿主半未加载的识别:如果探测请求本身返回 401/404(宿主还没加载新路由,页面却已经是新的客户端 bundle),行内会提示「宿主未加载该接口,重启 DSH 后重试」,而不是把它误读成上游故障。

0.2.0-rc.6 修复「测试连接」被同源围栏拦下

  • 修掉一个我自己引入的缺陷:写操作原本必须有 Origin 头,但浏览器在同源 POST 上是允许不发 Origin 的(这个界面就是这样),于是每次点击都只得到 forbidden: missing Origin on a state-changing request,看起来就像探测接口坏了。现在改为接受三种等价证明:Origin 与 Host 一致、Sec-Fetch-Site: same-origin(浏览器设置,脚本无法伪造)、或客户端自己带的 x-dsh-ccswitch-origin 标记头。
  • 这三种证明跨站页面都给不出来:自定义头会触发 CORS 预检,而这条路由不响应预检;Sec-Fetch-Site 由浏览器填写。因此围栏没有被削弱,只是不再误伤同源页面。
  • 被拒绝时响应体现在会附带 saw: { origin, site, marker },直接说明这次请求到底带了什么,避免再对着一个 forbidden 猜。
  • 同样的修复也覆盖了 /import:它此前有完全一样的问题。

上游版权与许可证原样保留在 LICENSE;改动声明见 NOTICE,且每个被改动的源文件头部都带改动提示。

开发与验证

要求 Node.js 22.19 或更高版本:

npm install
npm test
npm run pack:check

npm run build 生成 DSH Host bundle 和带有 window.__ModuleLoader__.load 注册的 Client bundle。发布包只包含 dist、patch、README、NOTICE 和许可证,不包含源码与测试。

Comments

Loading…

From the same category

dsh-TUI

by ccch1mneyyy

DSH 官方公众号收录的 TUI 补位插件:Claude Code 风,鲸鱼顶栏/实时状态/流式思考/双击 Esc 回滚/上下文进度+TPS。npm 一键装。 DSH official WeChat featured TUI plugin — Claude Code style: whale bar, live status, streaming thoughts, double-Esc rol

Terminal & ClientsManifest valid

★ 4.3k

↓ 10.9k/wk

MIT

TypeScript

Oct 11, 2026

dsh plugin --profile terminal add @deepseek-harness-tui/dsh-tui

by strukto-ai

The World's First Virtual Terminal for AI Agents

Terminal & ClientsManifest valid

★ 3.7k

↓ 355/wk

Apache-2.0

TypeScript

Oct 11, 2026

dsh plugin --profile agent add @struktoai/mirage-dsh

by bowenliang123

The best DeepSeek Harness plugin for context insight and management, with context dashboard / browser / sidebar and context command, for context statistics, composition, breakdown, evolution details,

Tools & CapabilitiesTerminal & ClientsUI & ExperienceManifest valid

★ 2k

↓ 34.4k/wk

Apache-2.0

TypeScript

Oct 11, 2026

dsh plugin --profile web add dsh-context

by huiliyi37

官方 DeepSeek Harness 的交互式终端 UI 插件:自研 ANSI 极简交互渲染、流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断、memory记忆,很丝滑的开发体验。

Terminal & ClientsManifest valid

★ 287

↓ 462/wk

Apache-2.0

TypeScript

Sep 30, 2026

dsh plugin --profile terminal add @huiliyi37/dsh-tianshu-tui

by Hilbert-beinghappy

面向 DeepSeek Harness 的 Claude Code 风格终端界面,支持 Windows、macOS 与 Linux,兼容透明终端、VS Code 主题和自定义配色。

Terminal & ClientsManifest valid

★ 197

↓ 108/wk

MIT

TypeScript

Oct 1, 2026

dsh plugin --profile web add seektty

by T-Auto

deepseek-harness Plugin Access and Implementation Standards / deepseek-harness交互生态插件规范与实施标准

Terminal & Clients

★ 83

MIT

JavaScript

Oct 10, 2026

Index only — not installable