🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Claude 账号登录 rn7s2/dsh-claude-oauth

DeepSeek Harness
rn7s27 天前有提交已提供中文文档扫描:含敏感能力

用 Claude 账号登录并注册模型供路由调用

29.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add rn7s2/dsh-claude-oauth
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 7 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
  • 执行外部命令来自配置/变量
    lib/index.js:115
    const child = spawn(command[0], command[1], { detached: true, stdio: 'ignore' });
  • 发起网络请求
    lib/client.js:673
    const response = await fetch(API_PATH, {
  • 写入本地文件
    lib/files.js:30
    await mkdir(dir, { recursive: true, mode: 0o700 });
  • 写入本地文件
    lib/files.js:32
    await chmod(dir, 0o700);
  • 读取本地文件
    lib/files.js:46
    text = await readFile(path, 'utf8');
  • 写入本地文件
    lib/files.js:57
    await mkdir(directory, { recursive: true, mode: 0o700 });
  • 写入本地文件
    lib/files.js:60
    await writeFile(temporary, `${JSON.stringify(value)}\n`, { mode, flag: 'w' });
  • 写入本地文件
    lib/files.js:61
    await chmod(temporary, mode);
  • 写入本地文件
    lib/files.js:62
    await rename(temporary, path);
  • 删除本地文件
    lib/files.js:64
    await rm(temporary, { force: true });
  • 删除本地文件
    lib/files.js:71
    await rm(path, { force: true });
  • 读取本地文件
    lib/files.js:77
    return (await stat(path)).mtimeMs;
  • 删除本地文件
    lib/files.js:107
    await unlink(lockPath).catch(() => {});
  • 删除本地文件
    lib/files.js:120
    await unlink(lockPath).catch(() => {});
  • 发起网络请求
    lib/adapter.js:1595
    : (...args) => globalThis.fetch(...args),
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

给 DeepSeek Harness 用的插件,支持 Claude OAuth 登录和 Claude 模型注册

README

由 DeepSeek 最新模型翻译生成
dsh-claude-oauth 一个自包含的 DeepSeek Harness 插件。它用 Claude 账号登录(Claude Pro/Max OAuth),把 Claude 模型注册成 Harness 的服务商路由。这是 Evo lisp 扩展 020-claude-oauth-provider.lisp 的 Harness 移植版,OAuth 流程做了加固,请求结构也更贴近 Claude Code。 没有设置表单要填,也没有后台流量。唯一的界面是 Settings → Claude 里的一小块: - Sign in —— 打开 Claude 官方 OAuth 页面(授权码 + PKCE,回环回调);Host 也会打开系统浏览器。 - Sign out —— 删除本地会话;已注册的模型随之消失。 - Refresh models —— 手动请求 GET /v1/models,注册账号能用的模型。退出登录时禁用。登录成功后会自动跑一次初始刷新;后台不做任何刷新。注册好的目录以可滚动的只读表格展示(模型 id、上下文窗口、最大输出、输入类型、推理强度)。 - Network route —— 显示 Harness fetch 调度器访问 api.anthropic.com / platform.claude.com 时实际走哪个出站代理;直连时给出警告。
展开完整文档(README 剩余 1 节)
dsh-claude-oauth

一个自包含的 DeepSeek Harness 插件。它用 Claude 账号登录(Claude Pro/Max OAuth),把 Claude 模型注册成 Harness 的服务商路由。这是 Evo lisp 扩展 020-claude-oauth-provider.lisp 的 Harness 移植版,OAuth 流程做了加固,请求结构也更贴近 Claude Code。

没有设置表单要填,也没有后台流量。唯一的界面是 Settings → Claude 里的一小块:

- Sign in —— 打开 Claude 官方 OAuth 页面(授权码 + PKCE,回环回调);Host 也会打开系统浏览器。
- Sign out —— 删除本地会话;已注册的模型随之消失。
- Refresh models —— 手动请求 GET /v1/models,注册账号能用的模型。退出登录时禁用。登录成功后会自动跑一次初始刷新;后台不做任何刷新。注册好的目录以可滚动的只读表格展示(模型 id、上下文窗口、最大输出、输入类型、推理强度)。
- Network route —— 显示 Harness fetch 调度器访问 api.anthropic.com / platform.claude.com 时实际走哪个出站代理;直连时给出警告。

要求

- DeepSeek Harness,带 llm 服务和 Web GUI(设置路由走 Harness 浏览器连接,因此有鉴权、同源)。
- Node 22.21+ / 24(Harness 运行时已自带)。
- 无 npm 依赖;无构建步骤。

安装

把已发布的 bundle 装进 Desktop 配置档:

dsh plugin --profile desktop add github:rn7s2/dsh-claude-oauth

命令会安装并选中该 bundle,它的补丁插入一行 Host(claude-oauth)。有 HMR 时插件立即生效;否则重启 Harness。设置区块在页面重载后出现,它的展示元数据本身已本地化(locale/en.json、locale/zh.json)。

卸载

dsh plugin --profile desktop remove dsh-claude-oauth

私有数据目录会保留;想手动忘掉账号,删掉 ~/.dsh/claude-oauth/。

工作原理

登录

1. PKCE S256(verifier 用 32 个随机字节,另有一个独立的 32 字节 state)。
2. 在 127.0.0.1 和 [::1] 上开双栈回环监听(53692 端口空闲就用它,否则由系统分配一个回环端口),重定向 URI 为 http://localhost:<port>/callback。
3. 回调处理器只接受预期 Host 上的 GET /callback,以常量时间校验 state,把 error / error_description 暴露出来,并保持服务不退出,免得 favicon/preconnect 请求抢走回调;120 秒后超时。
4. 授权码在 https://platform.claude.com/v1/oauth/token 换取,带 anthropic-beta: oauth-2025-04-20 和 claude-cli/… (external, cli) User-Agent —— lisp 扩展唯一缺失的协议环节。
5. token 以原子方式写入 ~/.dsh/claude-oauth/token.json(权限 0600,目录 0700)。refresh token 在独占锁下轮换,使用前会重新读取,因此两个进程不会把一次性 refresh token 花两次。

请求

服务商路由是 claude-oauth(显示名 Claude)。聊天请求发往 https://api.anthropic.com/v1/messages,携带:

- Authorization: Bearer <access token>、 anthropic-version: 2023-06-01、 anthropic-beta: oauth-2025-04-20,claude-code-20250219;
- user-agent: claude-cli/2.1.284 (external, sdk-cli)、x-app: cli,以及取自 Harness 会话的 x-claude-code-session-id;
- Claude Code 的身份系统块,后面跟 x-anthropic-billing-header: … 归属行和 Harness 系统提示词 —— 仅此路由会屏蔽 Harness 自带的固定开场白 You are an AI agent powered by DeepSeek Harness.(已存会话和其他服务商不受影响);
- 工具声明采用 Claude Code 的规范大小写(Read、Bash、 TodoWrite、…),流式工具调用会映射回 Harness 声明的确切名称,执行不受影响;
- 对支持的模型启用自适应思考(thinking: {type: 'adaptive'} + output_config.effort);
- 显式提示词缓存断点,让重复前缀按 Anthropic 的缓存价格计费,而不是按完整输入价格。

提示词缓存基于前缀,需要主动开启。请求携带三个 cache_control 标记 —— 最后一个系统块(它把前面的 Claude Code 身份块一并缓存)、最后一个工具声明、以及对话前缀的最后一个块 ——全部使用扩展的一小时临时 TTL
({"type": "ephemeral", "ttl": "1h"})。一小时 TTL 在 Claude API 文档中
无需 beta 头即可使用,对思考密集、多步骤的任务是正确选择:缓存条目从写入请求开始计时,否则单次长时间思考轮次就可能让五分钟条目在下一步之前过期。身份块、计费行、系统提示词和工具列表在每一轮都以相同字节顺序发出,因此持续对话能命中缓存;三个标记仍在 API 四个断点的上限之内。
图片也可缓存:断点可以落在图片块上,或落在包含图片的 tool_result 上,适配器会以确定性方式重新编码每个附件,让重复轮次的哈希保持一致。向提示词添加或移除图片时,Anthropic 会让消息缓存失效,所以首次引入图片的那一轮会重写该条目;如果 harness 启用持久化图片卸载,也会付出一次这样的失效代价。

助手思考签名保存在 Harness 重放信封中并会重放,因此多轮工具使用能保持推理连续性。

目录

在任何刷新之前,插件公布 lisp 扩展的静态模型集(1M 上下文、128K 输出、自适应思考、视觉)。登录后,插件拉取一次 /v1/models,用账号的实时目录替换它,再合并一张带版本号的能力表(上下文/输出/视觉/自适应思考)。上游出现、但能力表里没有的模型,仍按列表上报的元数据注册;这类模型不给推理菜单,而不是给一个错的。

数据与隐私

只写入 ~/.dsh/claude-oauth/:

| 文件 | 权限 | 内容 |
| token.json | 0600 | access/refresh token、过期时间 |
| account.json | 0600 | 缓存的邮箱/套餐,用于 Account 行 |
| models.json | 0600 | 最近一次 /v1/models 目录 |
| token.lock | 0600 | 刷新时的临时锁 |

插件从不读写 ~/.claude/(不与 Claude Code 凭据互通),除登录后拉取一次外从不获取配置档,从不记录 token,也从不从设置路由返回 token 内容。该路由经 DSH 的 /api 桥接提供,桥接会施加 Host/Origin 信任围栏和属主浏览器认证;处理函数还额外要求 POST、application/json、请求体 ≤ 8 KiB,且 action 已知。

限制

- 一次只能挂一个 Claude 账号。
- 没有后台刷新:模型只在登录或手动刷新后变化。
- 较旧的 budget-thinking Claude 模型不提供推理菜单(适配器只编码自适应思考,不去猜预算)。
- 这条路由上只屏蔽固定的 Harness 身份开场白;人设、指令、工具描述、环境提示词段落仍按 Harness 组装的原样发送。
- 设置页需要 Web GUI 传输;file:// 外壳没有同源 /api 可拉取。

测试

node --test test/

所有套件都离线运行:token 和 Messages 端点用回环 mock 服务器,DSH_HOME 用临时目录,不产生真实 Claude 流量。

目录结构

lib/index.js Host plugin: state, settings route, login/logout, catalog
lib/tokens.js token file, lock, refresh
lib/oauth.js PKCE login flow, loopback callback, code exchange
lib/adapter.js Anthropic Messages adapter and Claude Code request shaping
lib/catalog.js /v1/models refresh, account profile, persistence
lib/client.js settings.section React component (browser bundle)
预览分享卡片长什么样 ↓rn7s2/dsh-claude-oauth
分享 · DeepSeek Harness Hub
rn7s2/dsh-claude-oauth

用 Claude 账号登录并注册模型供路由调用

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部