一个 DeepSeek Harness 插件:让 DSH 的 LLM 请求
36.5/100
综合分
2
GitHub 星标
100
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-llm-local-tokennpm 源 · dsh-llm-local-token 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
装得上吗[实装验证]—
曾在 dsh 0.2.1-rc.5 下真实安装成功,但当前 dsh 已更新至 0.2.2-rc.1,本站尚未在新版下复验
L5 · 运行时冒烟等级说明 →数据截至 2026/11/01·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-pi-ai@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
2 张 · 点击查看大图功能亮点
- 作为模型路由
- 自带订阅额度
别再往 DeepSeek Harness 里粘 API key 了——直接复用本地 Codex CLI 和 Claude Code 已持有的 OAuth token 作为模型路由,还自带订阅额度。
最近更新
在 GitHub 查看全部 →v1.6.22026-09-21
· 修复
在 dsh 0.1.5-rc.2 上两条路由都加载失败(“Cannot read properties of undefined (reading 'get')”)。dsh-llm-pi-ai 0.1.5-rc.2 每次加载模型都会读取 profile.modelErrors.get(model)。插件通过 profiles 回调提供的配置档会被原样读取,而我们的配置档缺少新的 modelErrors 映射,配置里声明的服务商会自动生成这个映射,于是主机一升级,Codex 和 Claude 两条路由就在模型选择器里挂了。现在已补上这个字段。不是凭证问题:两个 token 本身一直都没问题。
图片像素预算可能触发 Anthropic 的单边上限。requestImagePixelBudget 从 4M 降到 640k(800²)。预算只限制总像素,所以宽截图仍会算出超过 2000px 的长边,请求带的图片一多就被 400 拒绝。降到 640k 后,比例到 6.25:1 都还在 Anthropic 的 2000px 单边限制内。
Claude Keychain 查找可能落到只有 MCP 的条目上。较新的 Claude Code 版本把只有 MCP 的 OAuth(没有 claudeAiOauth)存在和账号 OAuth 相同的 Claude Code-credentials 服务名下,直接跑 security find-generic-password 可能返回其中任意一个。现在查找会枚举该服务下的同级账号,挑出带 claudeAiOauth 的那个。
另外:历史记录没有真实用量时隐藏趋势条。
完整更新日志:
v1.6.12026-09-08
· 修复
展开路由时,按窗口的条形图不见了。趋势条提交(v1.6.0)替换了一段锚点范围,其中还包含窗口行和额度提示,却只恢复了读取时间提示和趋势,于是展开的路由只画出趋势条,缺了本该垫在下面的 5 小时 / 7 天条形图。
行已恢复,顺序为:窗口 → 额度提示 → 读取时间距今 → 趋势条。
在实时面板中发现(文件解析正常,所以语法检查看不出来)。
完整更新日志:
v1.6.02026-09-08
· 7 天配额趋势
面板现在会为每条展开的路由画一条趋势条:每个自然日一根柱,取当天各窗口的峰值,配色与用量柱同一套色阶。
数据来自定时探测,每次快照都写入 ~/.dsh/usage-history/.jsonl(自动清理,每个服务商一个文件)。通过 GET /llm-local-token/history/ 提供,按需加载——展开路由时,面板才去取它的趋势。
· 配置
| 键 | 默认值 | 含义 |
| --- | --- | --- |
| usageHistoryDays | 7 | 每个服务商的保留天数 |
· 安装 / 升级
dsh plugin --profile web add dsh-llm-local-token
完整更新日志:
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-llm-local-token
一个 DeepSeek Harness 插件:让 DSH 的 LLM 请求直接复用你本机 CLI 已有的 OAuth 登录态,不需要另配 API key,也不用重新登录。只要你登录过 Codex CLI 或 Claude Code,这些订阅就会变成 DSH 里可选的模型路由。
| Provider 路由 | 凭据来源 | 端点 |
| openai-codex | ~/.codex/auth.json(ChatGPT OAuth,与 codex CLI 共用) | https://chatgpt.com/backend-api |
| anthropic | ~/.claude/.credentials.json,否则读 macOS Keychain 的 Claude Code-credentials | https://api.anthropic.com |
插件加载后模型直接出现在模型选择器里。缺少凭据的路由会被跳过,不会导致启动失败。
用量徽标另外还会报告 GLM Coding Plan 的订阅额度。GLM 的调用 DSH 已经通过 pi-ai 自带的 zai-coding-cn 路由提供了,所以本插件只补上额度那一半,不会再注册一条路由——模型选择器里不会多出一个重复的 GLM。详见订阅用量徽标。
展开完整文档(README 剩余 1 节)
dsh-llm-local-token
一个 DeepSeek Harness 插件:让 DSH 的 LLM 请求直接复用你本机 CLI 已有的 OAuth 登录态,不需要另配 API key,也不用重新登录。只要你登录过 Codex CLI 或 Claude Code,这些订阅就会变成 DSH 里可选的模型路由。
| Provider 路由 | 凭据来源 | 端点 |
| openai-codex | ~/.codex/auth.json(ChatGPT OAuth,与 codex CLI 共用) | https://chatgpt.com/backend-api |
| anthropic | ~/.claude/.credentials.json,否则读 macOS Keychain 的 Claude Code-credentials | https://api.anthropic.com |
插件加载后模型直接出现在模型选择器里。缺少凭据的路由会被跳过,不会导致启动失败。
用量徽标另外还会报告 GLM Coding Plan 的订阅额度。GLM 的调用 DSH 已经通过 pi-ai 自带的 zai-coding-cn 路由提供了,所以本插件只补上额度那一半,不会再注册一条路由——模型选择器里不会多出一个重复的 GLM。详见订阅用量徽标。
两份订阅都成了模型选择器里的路由订阅用量:插件能看到的每一份订阅
为什么需要它
DSH 通过凭据服务解析 provider 的 key,而个人版 Codex / Claude 订阅是 OAuth-only 的,根本没有 API key。这个插件在每次请求时从 CLI 维护的文件里解析 token,临近过期自动刷新,然后交给 DSH 自带的 pi-ai 引擎发请求。
登录态从哪来也不用猜:设置 → Models 里有一块授权面板,直接显示每条路由是否已登录、账户与 token 有效期,缺凭据时还能一键调起 CLI 自己的登录流程,不用再开终端。
安装
dsh plugin --profile web add dsh-llm-local-token
或直接从 git 安装
dsh plugin --profile web add https://github.com/tianxia--/dsh-llm-local-token.git
然后重启 dsh——安装就到这里。本包声明了 profile bundle(dsh.bundle.patch → cordis.patch.yml),DSH 会替你插入那条 loader 行,不需要手工编辑 profile 自己的 cordis.patch.yml。
改为手工启用
如果你是把插件源码复制进来用,或者想在自己的补丁层里固定它的 config,那就自己往 ~/.dsh/profiles/web/cordis.patch.yml 追加这一行。profile 自己的补丁层在所有 bundle 层之后生效,所以在这里重述同一个 id 也可以覆盖 bundle 的默认值:
- insert:
- id: llm-local-token
name: dsh-llm-local-token
想设为默认模型:
~/.dsh/settings.yaml
agent-default-model:
provider: openai-codex
model: gpt-5.6-terra
reasoningEffort: medium
在 Models 页授权
打开「设置 → Models」,provider 列表下方、Add model provider 上方会出现一块 本地订阅授权,为两条路由各列一行。
为什么要专门开一块:这两条路由在 pi-ai 的 provider 目录里是「声明了但没人配置」的休眠行,而 Models 页只绘制已配置的行。插件把这块挂在页面末尾那段无条件渲染的扩展位上,再把「Add model provider」按视觉顺序推到它后面。
每行的状态:
| 状态 | 显示内容 |
| 已授权 | Authorized + 账户、token 有效期、凭据来源(~/.codex/auth.json 或 Keychain)。不显示登录按钮 |
| 未授权 | Not authorized + 原因(如 credential file not found)+ 「授权登录」按钮 |
| 授权中 | 「打开授权页」链接 + 「取消」,必要时还有一个授权码输入框 |
点「授权登录」等价于在本机终端跑一次 CLI 自己的登录:
codex login # OpenAI Codex 路由 claude setup-token # Claude 路由
插件起的是同一个命令,拿到它打印的授权页地址后以按钮形式放进卡片;你在浏览器里完成登录后,卡片会在检测到凭据真的发生变化时自动变成已授权——旧 token 本来还有效,所以不能拿它当成功依据。
几个细节:
- Claude 的流程会让人把授权码粘回终端,卡片里备了输入框,粘进去即可;5 分钟没完成会自行超时。
- 授权成功后如果这条路由原本因为缺凭据没有注册(Claude 的常见状态),插件会立即补注册,不需要重启 DSH。
- 已授权后想换账号或刷新 token,跑一次上面的终端命令即可,卡片会自动读到;插件不会替你反复调起登录。
- 凭据始终由 CLI 写入,插件只读不写,与手动登录完全等价。
配置项
全部可选,默认值对应标准 CLI 安装。
| 键 | 默认 | 说明 |
| codexAuthPath | $CODEX_HOME/auth.json,否则 ~/.codex/auth.json | Codex 凭据文件 |
| claudeAuthPath | ~/.claude/.credentials.json | 旧版 Claude Code 凭据文件 |
| claudeKeychainService | Claude Code-credentials | 存放 Claude OAuth 数据的 Keychain 服务名 |
| requireClaude | false | 为 true 时找不到 Claude 凭据就启动失败(而不是跳过) |
| codexTransport | "sse" | Codex 路由的流式通道:sse / websocket / websocket-cached / auto。额度徽标依赖 sse:pi-ai 默认的 auto 会走 WebSocket,而 x-codex- 额度响应头只存在于 SSE 响应上,走 WS 时徽标永远是「暂无数据」。想要 WebSocket 就设成 auto,代价是没有 Codex 额度数据。 |
| usageProbe | true | 是否定时刷新额度(每个 provider 一个最小裸请求)。设 false 则完全被动,只读真实请求。 |
| usageProbeIntervalHours | 4 | 探测间隔小时数。对齐 5 小时窗口(每天重置约五次);设 24 就是每天一次。 |
| usageProbeAtHour | — | 本地时钟小时 0–23,在固定时间每天探测一次。设置后覆盖 usageProbeIntervalHours。 |
| usageProbeStartupDelayMs | 20000 | 启动探测的延迟。固定时间点只在 dsh 恰好运行时才触发,所以启动本身也是一个触发点。 |
| usageProbeCodexModel | gpt-5.6-terra | Codex 探测使用的模型,仅作为拿响应头的载体。 |
| usageProbeAnthropicModel | claude-haiku-4-5-20251001 | Anthropic 探测使用的模型,仅作为拿响应头的载体。 |
| usageHistoryDays | 7 | 每个 provider 保留多少天的快照,供面板趋势条读取。快照存于 ~/.dsh/usage-history/<provider>.jsonl。 |
| glmQuota | true | 是否报告 GLM Coding Plan 额度。无论开关,都不会注册路由 —— DSH 已经自带 GLM 路由。 |
| glmApiKey | — | 直接指定 GLM token,优先级高于所有自动发现的来源。 |
| glmApiKeyEnv | ZAI_CODING_CN_API_KEY | 查找 GLM token 时使用的环境变量名,同时也是 $DSH_HOME/.credentials.yaml 里的 ref 名。 |
| glmBaseDomain | https://open.bigmodel.cn | 额度接口所在域名。国际站是 https://api.z.ai;同一账号下两个域名返回的内容完全一致。 |
| requestImageMaxEdge | 1568 | 发往模型的图片长边上限(像素)。超过的图片按原比例等比缩小(不裁剪、不放大),本来就小的图片原样通过。填写超过 2000 的值会被截到 2000——单次请求图片超过 20 张时,Anthropic 会拒绝任何一边超过 2000px 的图片。 |
订阅用量徽标
Codex 与 Claude 都在响应头里返回额度状态,所以真实请求顺带就能读到。但你从没调用过的那条路由无从上报 ——因此插件还会定时刷新:每个 provider 发一个刻意做到最小的请求(Codex 16 个输入 token、Anthropic 9 个),不带 prompt、skill、工具与历史,也不落存储。输入框工具条上(上下文圆环旁边)会出现一个徽标,点开看明细。
| Provider | 数据来源 | 展示内容 |
| openai-codex | x-codex-primary-、x-codex-secondary-*、x-codex-plan-type、x-codex-credits-balance | 套餐、各窗口已用百分比、重置倒计时、点数余额 |
| anthropic | anthropic-ratelimit-unified-{5h,7d}-{utilization,reset,status} | 5 小时与 7 天窗口的已用百分比、重置倒计时 |
| zai-coding-cn | GET /api/monitor/usage/quota/limit | 套餐等级、5 小时与每周 token 窗口的已用百分比、MCP 工具调用配额 |
GLM 是个例外,而且是刻意为之。DSH 已经通过 pi-ai 内置的 zai-coding-cn 路由提供 GLM 调用,所以本插件只补额度那一半 —— 再注册一条路由只会让模型选择器里多出一个重复的 GLM。它的数字来自订阅自己的额度接口而不是响应头,因此不需要付出任何探测请求的代价。另外 modlens 会把每条 pi-ai 路由都加上 modlens- 前缀再暴露成一个独立条目,徽标会把 modlens-zai-coding-cn 视作同一份订阅。
GLM 的凭据按下面的顺序解析,这个顺序保证数字是诚实的 —— 徽标必须报告真正在扣费的那份订阅:
1. 本插件配置里的 glmApiKey
2. 环境变量 ZAI_CODING_CN_API_KEY
3. $DSH_HOME/.credentials.yaml 里的同名 ref —— DSH 自己调用时用的就是它
4. ~/.zcode/v2/credentials.json 的 oauth:bigmodel:access_token,对应本地 zcode 登录
一个都找不到就跳过 GLM 那一行,和缺少 Codex / Claude 凭据时的处理一致。设 glmQuota: false 可彻底关闭。
低于 60% 显示绿色,低于 85% 琥珀色,更高显示红色。超过一分钟的数值会标注读取时间 —— 5 小时窗口每天重置约五次,一个看起来实时的过期数字比没有数字更糟。浏览器端每 15 秒轮询 GET /llm-local-token/usage,该路由只读内存快照。
徽标只显示当前选中模型所属 provider 的用量:选 Codex 就是 Codex 的窗口,切到 Claude 就换成 Claude 的,不会把两家的数字混在一起。选中的模型由别的 adapter 提供(普通 API key、其他插件)时徽标直接隐藏 —— 那份额度不属于本插件。展开的弹层仍列出所有路由:当前那条排在最前、标注「当前」并默认展开;其余折叠成一行,行内保留前两个窗口的百分比,点击即可展开。切换模型会重新套用这个默认。
当前选中项来自 ctx.modelDirectories;组合里没有该服务时(非 Web)退回旧的「全部路由合并」显示。
环境要求
- Node.js 22.13+(DSH 本身的底线,--use-system-ca 也需要)
- profile 里有 dsh-base(它已自带 dsh-llm-pi-ai 与 @earendil-works/pi-ai)
- 已登录的 CLI:Codex 路由需 codex login;Anthropic 路由需用过 Claude Code
- Claude 的 Keychain 读取仅限 macOS;其它系统只查文件
token 处理
- 每次请求实时读取,不在内存中长期保留
- 剩余有效期不足 5 分钟时自动刷新,并写回 CLI 读取的同一文件,因此不会破坏 CLI 的登录态(单飞机制:并发请求只触发一次刷新)
- 原子写入,权限 0600
- 不打日志、不上传,只发往对应的 provider 端点
故障排查
UNABLE_TO_GET_ISSUER_CERT_LOCALLY
说明你的流量经过 TLS 解密代理(Zscaler、Netskope 等企业 MITM)。即使系统信任其根证书,Node 也不信任。启动 DSH 时二选一:
node --use-system-ca … # 信任系统证书库(Node 22.13+)
NODE_EXTRA_CA_CERTS=/path/to/root-ca.pem dsh … # 或直接指向代理根证书
Provider is not configured: openai-codex
pi-ai 拒绝了 apiKey 覆盖。本插件已为 OAuth-only 的 Codex provider 附加了 api-key 认证方法;若仍报此错,说明 pi-ai 的 resolveProviderAuth 行为有变——请附上 @earendil-works/pi-ai 版本反馈。
模型列表里看不到 Codex / Claude
看启动日志里的 llm-local-token: registered …。如果只列出 openai-codex,说明没找到 Claude 凭据(这台机器没用过 Claude Code 时属正常)。也可以打开「设置 → Models」看授权卡片的状态。
Models 页里没有那块「本地订阅授权」
先硬刷新页面(Cmd+Shift+R)——客户端 bundle 换了 rev,普通刷新可能仍用旧的。仍然没有就查两处:
1. host 侧的授权接口是否在
curl -s localhost:3080/llm-local-token/auth # 换成你 dsh web 实际端口
2. 浏览器控制台:插件发布的插槽键(本机通常是 ["llm-pi-ai", ""]) window.__DSH_LLM_LOCAL_TOKEN__
第一条 404 说明插件没加载或版本早于 1.8.0;第二条取不到说明页面引导阶段没跑到插件。
授权完成后卡片仍显示未授权
卡片只在登录会话存在时轮询,且必须看到凭据变化才判定成功。若你是在终端里手动完成的登录,切回页面时窗口重新获得焦点也会重读一次;极少数情况(没触发焦点)刷新页面即可。
注意事项
- 消耗的是你个人订阅额度(ChatGPT Plus/Pro、Claude Pro/Max),请遵守服务条款,不要用它把一个账号共享给整个团队。
- chatgpt.com/backend-api 是 Codex 客户端自用端点,不是公开 API,可能随时变化;需要稳定性就锁定 pi-ai 版本。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
tianxia--/dsh-llm-local-token
一个 DeepSeek Harness 插件:让 DSH 的 LLM 请求
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 883已汉化DSH
68.9
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 387已汉化DSH
67.8
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 415已汉化DSH
67.7
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。