让智能体直接操控 Chrome 与 macOS 原生应用
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 16601134718/dsh-codex-cua该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 6 处,展示前 6 条)
- 读取本地文件lib/index.js:46
if (!existsSync(src)) return 'missing-asset' - 读取本地文件lib/index.js:47
const next = readFileSync(src) - 读取本地文件lib/index.js:48
if (existsSync(dest)) { - 读取本地文件lib/index.js:49
const prev = readFileSync(dest) - 写入本地文件lib/index.js:52
mkdirSync(dirname(dest), { recursive: true }) - 写入本地文件lib/index.js:53
writeFileSync(dest, next)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
在 macOS 上,让外部智能体驱动 Codex 的 computer-use 运行时(cua-repl)。
README
由 DeepSeek 最新模型翻译生成dsh-codex-cua
在 DeepSeek Harness 里直接使用 Codex 的 computer use 能力。
装一个插件,DSH 的智能体就能操作 Chrome 和任意 macOS 原生应用 ——走的是 ChatGPT / Codex 桌面端自带的运行时(cua-repl + Chrome 扩展 + Sky 原生 AX),不需要启动 ChatGPT 应用,也不向 OpenAI 发送请求(cua-repl 为本地进程)。
为什么是「无缝」
装好之后没有额外步骤:
| 你做的 | 实际发生的 |
| 插件市场点安装,或 dsh plugin add dsh-codex-cua | 插件把 codex-cua 技能写入 ~/.dsh/skills/codex-cua/ |
| 开新会话,让智能体操作网页或应用 | 智能体加载该技能,直接调 cuad.py |
SKILL.md 里已经写好调用规范、踩坑清单和延迟基线, 智能体不需要额外指导怎么用。
安装
通过插件市场
在 DSH 的插件市场里搜索 dsh-codex-cua,点安装。
展开完整文档(README 剩余 1 节)
dsh-codex-cua
在 DeepSeek Harness 里直接使用 Codex 的 computer use 能力。
装一个插件,DSH 的智能体就能操作 Chrome 和任意 macOS 原生应用 ——走的是 ChatGPT / Codex 桌面端自带的运行时(cua-repl + Chrome 扩展 + Sky 原生 AX),不需要启动 ChatGPT 应用,也不向 OpenAI 发送请求(cua-repl 为本地进程)。
为什么是「无缝」
装好之后没有额外步骤:
| 你做的 | 实际发生的 |
| 插件市场点安装,或 dsh plugin add dsh-codex-cua | 插件把 codex-cua 技能写入 ~/.dsh/skills/codex-cua/ |
| 开新会话,让智能体操作网页或应用 | 智能体加载该技能,直接调 cuad.py |
SKILL.md 里已经写好调用规范、踩坑清单和延迟基线, 智能体不需要额外指导怎么用。
安装
通过插件市场
在 DSH 的插件市场里搜索 dsh-codex-cua,点安装。
从 GitHub 直接安装(无需等 npm 发布)
dsh plugin --profile <你的 profile> add github:16601134718/dsh-codex-cua
可锁定提交:github:16601134718/dsh-codex-cua#<sha>
从 npm 安装(发布后可用)
dsh plugin --profile <你的 profile> add dsh-codex-cua
手动安装
git clone https://github.com/16601134718/dsh-codex-cua.git
cd dsh-codex-cua
node scripts/verify.mjs # 可选:先自检
mkdir -p ~/.dsh/skills/codex-cua/docs
cp assets/SKILL.md assets/cuad.py ~/.dsh/skills/codex-cua/
cp assets/docs/*.md ~/.dsh/skills/codex-cua/docs/
装完确认:
python3 ~/.dsh/skills/codex-cua/cuad.py doctor
环境要求
- macOS
- 已安装 ChatGPT / Codex 桌面端,并在 Chrome 里装好对应扩展(插件只负责启动这个运行时,不包含它)
- Python 3.9+(运行 cuad.py)
不满足时 cuad.py doctor 会逐项指出缺什么、怎么补。
它能做什么
CUAD=~/.dsh/skills/codex-cua/cuad.py
浏览器:读页面、点元素、填表
python3 $CUAD send --ms 90000 '
const b = await cua.getBrowser("1");
const t = await cua.createBrowserTab("1", "https://example.com");
globalThis.CUATAB = await cua.getTab(t.id, { browser: "1" });
nodeRepl.write(await CUATAB.playwright.evaluate(() => document.title));
'
原生应用:读辅助功能树、点击、输入
python3 $CUAD send --ms 90000 '
const app = await cua.getApp("com.apple.finder");
nodeRepl.write((await app.getAXState()).slice(0, 400));
'
会话变量跨调用存活:一次 send 里建的绑定,下次还能用。
工作原理
整体结构
DSH agent
│ 加载 codex-cua 技能 → 调 cuad.py ▼ cuad.py(客户端,无状态) │ 写 .cuad/req.jsonl / 轮询 .cuad/res.jsonl ▼ daemon:node cua-repl.mjs(常驻) │ 持有 MCP 会话 + node_repl 的 JS 上下文 ├──────────────┬──────────────┐ ▼ ▼ ▼ Chrome 扩展宿主 Sky 服务 (由系统托管)浏览器操作 原生 AX + 截图
三个进程互相独立:客户端每次调用都是新进程;cua-repl 常驻; Chrome 扩展宿主和 Sky 服务由 Google Chrome 与 launchd 托管, ChatGPT 桌面端退出后它们仍在运行。
为什么快
每次新建 cua-repl 要做 MCP 握手、加载 node_repl、重连扩展和 Sky ——实测 3 到 11 秒。常驻之后这一步只在第一次发生。
| | 每次新建进程 | 常驻会话 |
| 热调用 | 3 – 11 s | 0.09 – 0.14 s |
| 首次调用 | 同左 | 3 – 9 s(仅一次) |
为什么变量能跨调用存活
cua-repl 内部跑的是 node_repl —— 一个持久的 JavaScript 上下文。
send 执行的是追加到这个上下文里的代码,不是新脚本。
一次调用的生命周期
1. 客户端把 {id, code, deadline, shot} 追加到 req.jsonl
2. daemon 未运行则先拉起(约 4 秒),再重放这一次请求
3. daemon 通过 MCP tools/call 发给 cua-repl(_meta 带 turn 元数据)
4. 结果写回 res.jsonl,客户端轮询取走
5. 超过 --ms 未返回 → 返回 unknown,不重放
崩溃后下一次 send 会自动重新拉起 daemon。
插件做了什么
lib/index.js 的 apply(ctx) 在挂载时:
1. 读取包内 assets/
2. 写入 ~/.dsh/skills/codex-cua/(内容相同则跳过,幂等)
3. 记录日志;失败只警告,不中断 profile 组装
卸载插件不会删除已安装的技能文件 —— 它们可以独立使用,删用户数据是不该有的副作用。想彻底清理:
rm -rf ~/.dsh/skills/codex-cua
使用规范(写进技能里的那些)
1. 观察一律用默认差分输出,disableDiffing: true 只在需要完整树时用
2. 不要在 getAXState / getScreenshot 前加 setTimeout —— 内部已经等了
3. 只把目标已知的确定性动作合并进一次调用;弹窗/跳转先重新观察
4. 结果未知时重新观察,绝不重发写操作
5. 优先元素索引操作,坐标是兜底;用坐标前先标定偏移
6. emit: false 可避免整棵 AX 树灌进上下文
详细展开见 assets/docs/pitfalls.md。
故障排查
先跑:
python3 ~/.dsh/skills/codex-cua/cuad.py doctor
它会检查运行时目录、扩展服务、Sky 服务、状态目录、扩展连接,每项给修复建议。
常见问题:
| 现象 | 原因 |
| extension: 0 | Chrome 未运行,或桌面端从未启动过(扩展宿主由它注册) |
| Missing required Codex turn metadata | tools/call 的 _meta 没注入,见 docs/protocol.md |
| 一直返回 unknown | daemon 没拿到结果,看 .cuad/daemon.log;常见是 Chrome 崩了 |
| Debugger unattached | 站点主动断 CDP,只能用原生 AX 通道 |
| 截图总是同一张 | 没设 CUATAB,--shot 拍的是前台标签 |
安全说明
这个插件的权限等于用户自己的权限。
- send 执行任意 JavaScript,跑在本机用户身份下
- DSH 加载技能后,agent 会自行调用它 —— 请确认你接受这个行为
- 默认 policy manual:服务端发起的审批请求都要显式应答,超时按取消处理
- policy auto-safe 不是安全模式,只是对只读类请求免确认
- 结果未知不重放是安全语义,不是性能取舍
免责声明
本项目与 OpenAI 无任何关联,未经其认可或授权。
使用前需自行合法安装并授权 ChatGPT / Codex 桌面端。
在官方客户端之外驱动其私有运行时可能违反相关服务条款,风险由使用者自行承担。
本项目强依赖内部实现细节,官方更新后可能失效,不提供版本兼容性保证。
仅支持 macOS。
本项目不包含、不分发任何 OpenAI 的二进制文件,仅调用用户本机已有的运行时。
本项目不绕过任何计费机制。
目录结构
dsh-codex-cua/
├── package.json dsh.bundle 清单 ├── cordis.patch.yml 挂载声明 ├── lib/index.js apply(ctx):把技能装进 DSH home ├── scripts/verify.mjs 不装 DSH 也能跑的自检 ├── assets/ │ ├── SKILL.md 技能定义(agent 读这个) │ ├── cuad.py 常驻会话客户端 │ └── docs/ pitfalls.md · protocol.md ├── bench/latency.sh 延迟测量 └── LICENSE
环境变量
| 变量 | 默认 | 用途 |
| DSH_HOME | ~/.dsh | 技能安装位置 |
| CUA_RUNTIME_DIR | /Applications/ChatGPT.app/Contents/Resources/cua_node | 运行时目录 |
| CUA_BROWSER_SERVICE_DIR | ~/.codex/plugins/cache/openai-bundled/chrome/latest | 扩展服务 |
| CUAD_STATE_DIR | ~/.cuad | 状态与截图 |
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
16601134718/dsh-codex-cua
让智能体直接操控 Chrome 与 macOS 原生应用
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目