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

Codex 命令行桥 snow-The/dsh-busyloop-codex

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

让智能体调用本机 Codex CLI 执行实现与审查任务

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · security
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/20) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量
查看扫描证据(共 12 处,展示前 12 条)
  • 执行外部命令来自配置/变量
    src/index.ts:126
    const out = execFileSync(bin, ['--version'], {
  • 读取本地文件
    src/index.ts:147
    if (existsSync(cfg)) env.configFile = cfg;
  • 读取本地文件
    src/index.ts:151
    if (existsSync(authFile)) {
  • 读取本地文件
    src/index.ts:159
    const { provider: p, envKey } = activeProviderEnvKey(readFileSync(env.configFile, 'utf8'));
  • 读取密钥环境变量
    src/index.ts:176
    if (!env.credentials.ok && process.env.OPENAI_API_KEY) {
  • 执行外部命令来自配置/变量
    src/index.ts:247
    const help = execFileSync(CODEX_BIN, ['exec', '--help'], {
  • 执行外部命令来自配置/变量
    src/index.ts:287
    const child = spawn(CODEX_BIN, args, { cwd: dir, stdio: ['pipe', 'pipe', 'pipe'], shell: IS_WIN });
  • 执行外部命令固定命令
    src/index.ts:294
    spawnSync('taskkill', ['/pid', String(child.pid), '/t', '/f'], { stdio: 'ignore' });
  • 写入本地文件
    src/index.ts:342
    await writeFile(join(tmp, 'prompt.txt'), opts.prompt, 'utf8');
  • 读取本地文件
    src/index.ts:392
    try { last = await readFile(outFile, 'utf8'); } catch { }
  • 删除本地文件递归
    src/index.ts:394
    await rm(tmp, { recursive: true, force: true }).catch(() => {});
  • 读取密钥环境变量
    src/index.ts:525
    `OPENAI_API_KEY: ${process.env.OPENAI_API_KEY ? 'set' : 'not set'} (only one of three possible paths)`,
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-ptc-runtime@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-busyloop-codex — DSH 的 Codex CLI 桥(busyloop 家族 · 范式①) 改名历史:本仓库原名 dsh-codex,2026-08-22 改名加入 busyloop 家族; npm 包名 @snow-the/dsh-busyloop-codex(旧名 @snow-the/dsh-codex@0.1.0 保留不更新)。 家族架构:dsh-busyloop(引擎)→ 范式① dsh-busyloop-codex(CLI 桥,本仓库)/ 范式② dsh-busyloop-codexstyle(自研,规划中)。 把 OpenAI 开源的 Codex 系列接入 DSH(DeepSeek Harness)生态的插件。 让 DSH 智能体调用本机 Codex CLI 执行任务(实现/修复/审查/安全审计)。
展开完整文档(README 剩余 1 节)
dsh-busyloop-codex — DSH 的 Codex CLI 桥(busyloop 家族 · 范式①)

改名历史:本仓库原名 dsh-codex,2026-08-22 改名加入 busyloop 家族;
npm 包名 @snow-the/dsh-busyloop-codex(旧名 @snow-the/dsh-codex@0.1.0 保留不更新)。

家族架构:dsh-busyloop(引擎)→ 范式① dsh-busyloop-codex(CLI 桥,本仓库)/ 范式② dsh-busyloop-codexstyle(自研,规划中)。

把 OpenAI 开源的 Codex 系列接入 DSH(DeepSeek Harness)生态的插件。
让 DSH 智能体调用本机 Codex CLI 执行任务(实现/修复/审查/安全审计)。

工具

| 工具 | 说明 |
| codex_status | 环境检测:codex 二进制 / CODEX_HOME / config / 当前 provider / 凭证走哪条路,缺失时给指引 |
| codex_exec | 在指定目录跑一次 Codex 任务(prompt 经 stdin,结果经 --output-last-message 文件通道读回) |
| HTTP | GET /api/codex/health · GET /api/codex/status(经宿主 ctx.webServer,带 Host/Origin 围栏) |

前置条件

- 安装 Codex CLI:npm install -g @openai/codex(或从 GitHub Releases 下载)
- 三条认证路径,任一条成立即可(旧的 OPENAI_API_KEY 单一门槛已废弃,见下):
1. codex login —— 写 ~/.codex/auth.json(ChatGPT 套餐路线)
2. ~/.codex/config.toml 里当前 provider 的 env_key 指向的环境变量
3. OPENAI_API_KEY(直连 API 路线,优先级最低)

⚠️ wire_api = "chat" 已被 Codex 移除

Codex 已放弃 chat/completions,2026 年 2 月起改为硬错误(官方公告: <https://github.com/openai/codex/discussions/7782>)。自定义 provider 必须写:

[model_providers.<名字>]
wire_api = "responses"

用非 OpenAI 的模型跑 Codex(例如 DeepSeek)

Codex 通过 Responses API 与模型通信,所以 provider 必须实现它 ——「OpenAI 兼容」已经不够了,因为被砍掉的恰好就是那个兼容面。

DeepSeek 原生支持 Responses API,官方有 Codex 接入页(含 Windows 一键脚本、models.json
模型目录、[model_providers.deepseek] 段,并且会先备份 ~/.codex/config.toml 到
~/.codex/backup-deepseek/):

<https://api-docs.deepseek.com/quick_start/agent_integrations/codex>

手改的最小形态:设 model_provider,再给该 provider 段配 base_url / env_key / wire_api = "responses"。配好后 codex_status 应报 credentials: ok -- via env var <名字> (named by provider "<名字>" in config.toml)。

设计来源(codex-zone 研究)

| 模式 | 来源 | 吸收点 |
| spawn codex exec + stdin prompt + 文件通道 | codex-action | runCodexExec 流程、--output-last-message 读回 |
| 认证/执行分离 | codex-action | 密钥只走环境变量,不上 argv |
| spawn 前受保护参数校验 | codex-action | PROTECTED_ARGS 拒绝清单 |
| app-server JSON-RPC 客户端(计划中) | codex-plugin-cc | 后台任务、流式事件、broker 共享 |
| 安全审计方法论(计划中) | codex-security | 威胁模型 + 调查员扇出提示词 |

目录

src/index.ts TS 源(tsc → dist) dist/index.js 编译产物(main) test/ 测试(node --test,27 个:凭证三路径 / 围栏 / fake-codex 全链路)

测试

npm test(node --test,串行)覆盖:

1. 工具注册:codex_status / codex_exec
2. 凭证检测(三路径 + 优先级):provider 的 env_key(旧门槛漏掉的那条)、 auth.json、OPENAI_API_KEY(最低优先级)、三者皆无时列出三条路线;以及「provider 配了但它的 env var 没设」必须点名那个变量
3. CODEX_HOME 语义:它是 codex 目录本身,不是 .codex 的父目录
4. HTTP 围栏:围栏不可达必须 fail-closed(503)、拒绝时按其状态码作答且不泄露路由数据、放行才到路由;方法守卫(405)、404、query string 不破坏匹配
5. exec 全链路(fake codex 二进制,不碰真 CLI、不耗额度):spawn 参数、 stdin prompt 通道、--output-last-message 文件读回、model/reasoningEffort 透传、PROTECTED_ARGS 拒绝(--json/--sandbox/--model 等)、退出码回显、 stderr 回显、超时进程树 kill(taskkill /t)测试通过 CODEX_HOME 指向临时目录来隔离,不会读你真实的 ~/.codex。

平台说明(Windows)

npm 全局安装的 codex 是 codex.cmd shim:无 shell 的 spawn/execFileSync 对
.cmd 直接 ENOENT/EINVAL,插件统一走 shell: true(仅 --version 探测与 exec 调用,参数不经 shell 拼接);超时用 taskkill /pid <pid> /t /f 杀整棵进程树,避免孤儿 node 子进程持有管道导致 close 永不触发。

Roadmap

- [x] 环境检测 + 单次任务执行骨架
- [x] 凭证三路径检测(provider env_key / auth.json / OPENAI_API_KEY)
- [x] HTTP 状态端点(原生 node handler + Host/Origin 围栏;已去 Hono 依赖)
- [ ] app-server JSON-RPC 客户端(codex_task 后台任务 / codex_review / codex_result / codex_cancel)
- [ ] 代码审查工具(codex_review,基于 plugin-cc 的 review 命令)
- [ ] 安全审计工具(codex_security,基于 codex-security 方法论)

构建说明

pnpm install # 首次或 node_modules 异常时
npm run build # tsc 类型检查 + 声明 → esbuild 打包
npm test # node --test,串行

曾经的坑:改名打断 node_modules 里的全部 junction(已修)

本仓库目录 2026-08-22 由 dsh-codex 改名为 dsh-codex.frozen,但 node_modules 里 10 个 pnpm junction 仍指向已不存在的 plugins\dsh-codex\...,全部断链,于是:

- tsc 报 Unable to resolve @typescript/typescript-win32-x64(它用 import.meta.resolve 找平台包,junction 断 = MODULE_NOT_FOUND)
- esbuild 报 Could not resolve "hono"(同理)
- 而 pnpm install 修不好它 —— junction 本身存在,pnpm 认为无需重建

修法是删掉 node_modules 再 pnpm install(强制按当前路径重建链接)。
改名/移动任何插件目录后都要注意这一点:软链/junction 不会跟着改。

.npmrc 的 allow-scripts 需同时允许 typescript 与 esbuild(后者安装时要落平台二进制)。
预览分享卡片长什么样 ↓snow-The/dsh-busyloop-codex
分享 · DeepSeek Harness Hub
snow-The/dsh-busyloop-codex

让智能体调用本机 Codex CLI 执行实现与审查任务

回到顶部