Jev-cu
Jev-cu 把 Computer Use 的「下一步点哪里」交给 Jev(TypeSafe System One):Jev 从界面文字候选中选出元素、动作、完成度与风险,Codex Computer Use 负责读取界面与执行,本地策略门槛拦截敏感操作,全程只传文字、不传截图。
社区作者 · zZz
它解决什么问题
Jev-cu 是一个面向桌面界面自动化的开源项目,核心思路是把 Computer Use 中的决策环节(「下一步点哪里」)交给 Jev(TypeSafe System One)来完成。
分工方式:
- Jev:从界面文字候选中选择元素、动作、完成度与风险;
- Codex Computer Use:负责读取界面与执行操作;
- 本地策略门槛:拦截敏感操作。
设计约束:只传文字,不传截图。
仓库目录:
- skill/jev-cu/:可安装到 Codex 的 skill(运行手册 + 安全规则);
- scripts/:Jev 调用、策略门槛、决策循环、离线评测、安装脚本;
- fixtures/:AX 快照与 P0 用例;
- tests/:单测。
安全边界:默认 dry-run;删除、发送、支付、授权、上传、验证码、安装、系统设置等操作会停在 confirm,需要人工确认;App 白名单在 scripts/policy.mjs 中,新增 App 必须显式修改;界面文字只作为数据、不作为指令;不绕过登录、付费墙和验证码。
许可证:MIT © 2026 Sac-Y。
适用对象:使用 Codex Computer Use 做桌面界面自动化的开发者,以及希望在敏感操作前强制人工确认、并需要离线评测元素选择准确率的团队。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
准备工作:
- 克隆仓库到本地,记下实际克隆路径(下文以 /path/to/Jev-cu 表示)。
- 准备 Node.js/npm 运行环境(来源未给出具体版本要求,待核验)。
- 准备 Typesafe 的 API key。
安装 skill:
步骤 4 · 在仓库根目录执行:
npm run install-skill—— 该命令会把 skill 复制到 ~/.codex/skills/jev-cu,新会话生效。
步骤 5 · 如需卸载,执行:
npm run uninstall-skill- 注意:skill 源文件里的 {{REPO_DIR}} 会在安装时被替换成仓库的实际路径。
配置密钥:
echo ' TYPESAFE_API_KEY=<your key> ' > .env.local
- 先在 .env.local 写入 key(该文件不提交),或设置同名环境变量:
首次运行(决策循环):
const repo = "/path/to/Jev-cu"; // 换成实际克隆路径 const { pathToFileURL } = await import("node:url"); const { runTask, createCuaDriver } = await import(pathToFileURL(${repo}/scripts/loop.mjs).href);
- 循环要在 Codex 桌面 App 的 cua_repl 运行时里执行,示例:
await runTask({ driver: createCuaDriver(cua), appName: "Calendar", goal: "switch the calendar to the previous month", // 英文目标,Jev 英文最准 dryRun: true, // 确认后改 false maxSteps: 5, });
- 默认 dryRun: true,先预演确认无误后再改为 false 真正执行。
验证:
步骤 10
npm test —— 运行单测,不调用 API。
步骤 11
npm run p0 —— 离线评测:AX 快照选元素准确率(会调用 Jev,需要 key)。
常见问题:
- 安装后不生效:skill 需要新会话才生效。
- 路径问题:skill 中的 {{REPO_DIR}} 依赖安装时替换为仓库实际路径,移动仓库后需重新安装。
- 运行位置错误:决策循环必须在 Codex 桌面 App 的 cua_repl 运行时里执行。
- 调用失败:确认已写入 .env.local 或设置了 TYPESAFE_API_KEY 环境变量。
- 目标语言:goal 建议使用英文,Jev 英文最准。
- 新增应用不生效:App 白名单在 scripts/policy.mjs,新增 App 必须显式修改该文件。