dsh-llm-adapters
Verifieddsh-llm-adapters · v1.2.4 · MIT · Web UI
DeepSeek Harness adapters for Loomy, SenseTime Raccoon and Trae. Sign in through the provider’s own web page (WeChat QR for Loomy and Raccoon, a dedicated browser window for Trae), or reuse a signed-in local Trae client for the mainland check-in, then use
Install
dsh plugin add dsh-llm-adapters Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Readme
dsh-llm-adapters
把 Loomy(讯飞)、商汤小浣熊、Trae 与 华为云 CodeArts 接进 DeepSeek Harness(DSH)。
- 默认在网页里登录,不用装客户端:Loomy、小浣熊点「打开扫码登录」用微信扫码; Trae 点「打开浏览器登录」在独立浏览器窗口里登录官网;CodeArts 点「打开浏览器登录」在华为云 完成一次 OAuth 授权。插件自己接回结果,不读日常浏览器的 cookie,也不接收密码。
- Trae 可选复用本机客户端:本机安装了 Trae 且已登录时,Trae 卡片会多出「复用客户端登录态」; 插件只读客户端的登录态,不修改也不退出客户端。签到只在用这种方式登录时显示。
- Trae 两种区域:国内版(trae.cn)与国际版(trae.ai)各自保存账号,同一张卡片切换。
- 额度可见:Loomy 显示可用 / 永久 / 每日积分;小浣熊显示剩余积分;Trae 国内版与 CodeArts
显示「已用 / 总额」进度条与资源包,国际版显示套餐与美元用量(如
$0.00 / $1.00)及重置时间。 进度条只画在能同时拿到总额和已用额度的供应商上,只有剩余额度的供应商仍显示数字,不会凭空补 一个分母。 - 四套设置页:每个供应商独立的模型开关、上下文窗口与登录卡片。
非官方插件。四家都是网页 / 客户端私有接口,不是官方开放 API;上游升级后协议可能变化。
为什么需要它
四家都没有面向个人用户的开放 API。网页版登录后的会话不能直接当模型网关凭据;桌面客户端的 登录态通常锁在客户端自己的文件里,Trae 是唯一提供显式、只读复用的例外(见下文)。
插件因此在宿主侧完成登录:Loomy 与小浣熊起一个本地登录页,页面上是真正的微信登录二维码;
Trae 则启动一个独立配置目录的浏览器窗口,让用户在官网正常登录,再通过调试协议读回
cookie 与 localStorage 里的设备指纹。全程由宿主轮询,不依赖浏览器回调,也不接收密码。
拿到凭据后,模型调用沿用各家的网页网关协议;插件负责把 DSH 的消息、图片、工具调用与思考流
翻译成对应格式。
Trae 的网页登录把设备指纹(x-device-id / x-machine-id)和短期 JWT 一起保存在插件
自己的账号文件里(仅当前用户可读),用于在 JWT 到期前自动续期。若本机 Trae 客户端已登录,
插件也可以只读解析客户端自己的加密登录态,复用它的 JWT、客户端设备号与 machine id;这条路径
不会回写客户端,也不会退出客户端。两种来源的令牌都只存在插件自己的账号文件里。
CodeArts 走华为云 OAuth:浏览器里授权后,宿主拿到 AK/SK 与 STS 安全令牌,之后每个请求都用
SDK-HMAC-SHA256 签名调用网关。它同样不读本机 CodeArts IDE 的任何文件,也不需要安装 IDE。
安装
插件 → 添加插件,填 dsh-llm-adapters 并安装(npm);也可以从
github:k1-h2/dsh-llm-adapters 或本地目录安装。装完按提示重启 DSH。
登录
设置 → Loomy 或 设置 → 商汤小浣熊 → 点「打开扫码登录」。浏览器会打开一个本地 登录页,用微信扫码并在手机上确认即可;成功后账号、额度与模型列表随即刷新。
设置 → Trae → 先选区域(国内版 / 国际版),然后二选一:
- 点「打开浏览器登录」:插件会启动一个独立且持久的浏览器配置目录(不影响你自己的浏览器), 在其中登录 Trae 官网;登录成功后窗口自动关闭,账号、额度与模型列表随即刷新。之后约 8 小时 到期的 JWT 会用这次登录的网页会话自动续期。
- 若本机已安装并登录 Trae 客户端,点「复用客户端登录态」:插件只读客户端自己的登录态,直接 复用其 JWT、客户端设备号与 machine id。客户端退出登录或令牌过期后,先在客户端重新登录,再点 一次「重新读取客户端登录态」即可。国内版的签到按钮只在这个方式下出现。
设置 → 华为云 CodeArts → 点「打开浏览器登录」,在华为云页面完成授权。授权后浏览器回到 本机,宿主接回凭据,页面无需复制任何内容。
- Loomy:首次使用的微信账号会被要求在该登录页里绑定手机号(短信验证码),这是讯飞
账号侧的要求;绑定完成后才会下发
session。 - 小浣熊:二维码由官方服务端一次性签发,扫码确认后自动接回,没有额外表单;过期或已用过 的码会明确提示,重新点一次即可换新码。
- Trae:两种登录方式。网页登录使用插件自己的持久配置目录,再次登录会复用同一设备指纹;
网页会话约 14 天,期间 8 小时的 JWT 会自动续期,只有网页会话失效才需要重新登录。复用本机
客户端登录态则直接读取客户端已保存的 JWT、客户端设备号与 machine id,不回写、不退出客户端;
客户端自己续期,插件里的令牌过期后重新复用即可。区域在卡片上切换,两个区域的账号互不影响,
切换回来仍是原账号。国际版若提示
account is at risk,请用 Log in 登录已有账号(与你在 Edge 里能正常登录的 Google/GitHub 账号一致),不要用新邮箱注册;独立配置首次登录会被 Trae 视为新设备。 - CodeArts:授权页是华为云自己的 OAuth portal,回调地址是
127.0.0.1上的临时端口; 凭据只在宿主侧保存,浏览器拿不到。STS 令牌两小时有效,到期自动续期;续期令牌失效(登录 起 30 天)后重新点一次登录即可。 - 登录页由插件在本机临时提供,关闭窗口不会中断宿主侧的轮询;但重新打开需要点「重新打开 登录页」。弹窗被浏览器拦截时也用这个链接。
排障与端口、凭据位置见 常见问题。
设置页
- 登录卡:显示账号、到期时间、登录方式与额度;未登录时可发起登录,登录中可取消,也可退出登录。
Trae 的卡片顶部是区域切换(国内版 / 国际版),并提供网页登录与复用本机客户端两种方式;
Trae 国内版(仅客户端登录态)与 CodeArts 有「签到领积分」按钮;签到状态按
「今日已签到」(账号)与「本机今日已签到」(设备)分别显示。小浣熊只检测、不领取:插件读积分
流水里的
daily_grant(只认今天的记录),到账时显示具体到账时间,按钮是「检测今日积分」;积分由 服务端在当天首次打开网页时发放,领取请走「打开网页签到」(该链接无论是否到账都始终保留)。 - Trae 本机客户端登录:检测到本机安装了 Trae CN / 国际版客户端时,登录卡会显示客户端账号与
「复用客户端登录态」。插件只读
User/globalStorage/storage.json里的加密登录态并在本机解密, 不修改客户端,也不把令牌返回给页面;网页登录与客户端登录可以随时切换,退出插件登录不会退出 客户端。签到按钮只出现在客户端登录态下。 Trae 国内版与 CodeArts 的资源包默认只显示一行 摘要(包数、合计额度、最近到期),点「详细信息」才展开每个包的已用 / 总额与到期时间,展开区限高可滚动。 这两家的额度区顶部是「已用 / 总额」进度条;CodeArts 的账号名取自登录令牌里的用户信息,老账号 不需要重新登录,读状态时当场解出来。Trae 国际版读取官网「Dollar Usage」同一份数据,显示$已用 / $总额、套餐、试用到期与额度重置时间。 - 模型清单:来自账号实时目录,名称会归一化(
GLM-5-3→GLM 5.3,倍率括号移除), 其余括号内容转为标签;逐个启用 / 关闭,并可指定上下文窗口。Trae 会显示目录里的倍率 (如x0.06),上下文下拉同时提供默认窗口、500K 与上游声明的 Max 档(如 1M),同一标签的 窗口只出现一次;CodeArts 同样显示倍率(如0.18x,随峰谷时段变化),窗口取自 IDE 配置里的 实测值。CodeArts 的思考档位保留原来的On/Off,其余档位取 OpenRouter 实时表与网关可 接受取值的交集;Off仍直接关闭思考,On不额外发送参数。切换模型时一律默认最强的档位。 四个供应商共用同一套 能力规则:OpenRouter 的实时表优先,匹配不到回退各自目录,两边都没有就全部开放; 所以 DeepSeek V4.1 Flash 的菜单是None/Low/High/Max(默认Max),xhigh保持小写。Trae 只列出客户端当前主通道(solo_work_*)里有可调用 config 的模型(实网 21 个):旧chat_v3/solo_coder通道的老模型、Qwen3.8-Flash / Kimi-K2.8-Preview 这类只在 客户端 TraeCode 通道可用的模型、以及内部custom_model_*/ 子代理配置都不会出现;两条不同 id 归一成同一显示名时只保留更宽的一行,不在名称里拼接括号。 - OpenRouter 模型同步:插件页可设置自动同步间隔(关闭 / 15 分钟 / 1 小时 / 6 小时 / 24 小时), 也可点「立即同步」。快照保存在本机,下载并解析完整成功后才原子替换;失败时继续使用上次成功 的数据,刷新模型列表不会清空它。一次网络抖动或上游 429/5xx 会自动重试一次,客户端标识也随 请求发送,避免被 CDN 当作匿名脚本限流。
- 小浣熊每日积分(只检测):卡片上的按钮是「检测今日积分」,只读今日流水并把到账时间显示出来。
插件不替你领取——积分由服务端在当天首次打开网页时发放,要领取请点「打开网页签到」。既没有自动
监测项(定时轮询每个间隔都要花一次真实请求),也不会把网页访问调用(
setting_info)当成副作用发出去。 - CodeArts 的模型清单:合并两个端点(免费额度模型与常规模型),窗口表里没有的模型回退到
当前目录最小的真实窗口;签到只在积分计费账户上可用。所有模型都接收图片:
kimi-k2.6-vl与Qwen3-VL-235B直接读图,其余模型(含 DeepSeek、GLM、openpangu)先用 VL 模型转述成文字再回答; 转述结果按图片内容缓存,同一张图只在第一次多花一次对话。模型清单里的「读图」只标注这两个原生 多模态模型,转述能力写在列表下方的一句提示里。 - CodeArts 的会话预算:体验版按账号只允许 3 个并发会话,一个会话在请求结束后仍占位约 60 秒。
网关按
x-ot-session-id这个头区分会话(不是chat-id/session-id),插件因此用一个从账号身份 派生的固定值:所有轮次共用一个会话,连续对话不会被自己的历史请求挤掉名额。真被别处占满时(例如同时 开着码道 IDE),3 次退避重试后给出可读提示。 - 高级设置:分组名称、强制识图 / 纯文本模型、模型别名、默认输出上限。
- 供应商开关:在插件管理页关闭某个供应商后,它的设置页、模型分组与 provider 路由一起移除。
再次打开页面时先显示上次快照,账号与模型在后台刷新。
用 YAML 配置
设置页之外,也可以直接写进 profile 的 cordis.patch.yml:
- id: llm-adapters
name: dsh-llm-adapters
config:
loomyEnabled: true
raccoonEnabled: true
traeEnabled: true
traeRegion: cn
codeartsEnabled: true
loomyDisplayName: Loomy
raccoonDisplayName: 商汤小浣熊
traeDisplayName: Trae
codeartsDisplayName: 华为云 CodeArts
loomyDisabledModels: []
raccoonDisabledModels: []
traeDisabledModels: []
codeartsDisabledModels: []
loomyModelContextWindows: {}
raccoonModelContextWindows: {}
traeModelContextWindows: {}
codeartsModelContextWindows: {}
defaultMaxTokens: 32000
每个 provider 的模型开关、窗口与别名是分开的字段;超时、缓存等运行参数共享。
traeRegion 只接受 cn(国内版)或 global(国际版),其他值按国内版处理。
更多
免责声明
本项目仅供个人学习和研究使用,仅驱动使用者自己的账号在本机调用。上游条款由你遵守;因使用 本项目产生的账号限制、额度变化、登录态被刷新或服务中断等后果,由使用者自行承担。本项目与 讯飞、商汤科技、字节跳动、华为均无关联,相关名称仅用于描述兼容关系。
许可
MIT。