用途:在本地 Web 或 Electron 应用调试中维持一个持久的 js_repl Playwright 会话,跨迭代保留同一批句柄,避免每次改动都重启整套工具链,从而加快 UI 迭代与功能、视觉 QA。
主要能力:支持显式视口的桌面 Web 上下文、移动端模拟上下文(390x844、isMobile、hasTouch)、原生窗口模式(viewport: null)以及 Electron 窗口启动;提供复用会话的刷新方式(Web reload、Electron 渲染进程 reload、主进程或启动代码变更后重启);先用共享 QA 清单覆盖功能检查与视觉检查,再做 30-90 秒探索性测试。
必要用法:js_repl 需启用,若缺失在 ~/.codex/config.toml 中配置 [features] js_repl = true,也可用 --enable js_repl 或 -c features.js_repl=true 启动新会话;目前需以 --sandbox danger-full-access 或 sandbox_mode=danger-full-access 运行。在待调试项目目录执行一次性安装:test -f package.json || npm init -y、npm install playwright,Web 需 npx playwright install chromium,Electron 目标为应用自身时 npm install --save-dev electron,并用 node 命令验证 playwright 可导入。随后在 js_repl 中引导句柄(chromium、_electron、browser、context、page、mobileContext、mobilePage、electronApp、appWindow),用 var 声明顶层句柄以便复用;启动或复用 Web 会话时设置 TARGET_URL(本地服务建议用 127.0.0.1),Electron 设置 ELECTRON_ENTRY,按变更类型选择 reload 或 relaunch。
适用场景:本地 Web 应用的可复现截图、断点检查、快照对比,移动端模拟,Electron 桌面窗口的启动尺寸与布局检查,以及需要真实用户输入(键鼠、触摸)的功能与视觉 QA。
限制:js_repl 必须启用,未启用需改配置并新开会话;目前必须关闭沙箱运行;js_repl_reset 属于恢复手段而非日常清理,重置内核会销毁 Playwright 句柄;切换工作区需重复安装;切换视口与原生窗口模式视为上下文重置,不能复用;page.evaluate 与 electronApp.evaluate 只用于检查,不计入签核输入。当前资料未提供价格、托管方式或跨平台支持等细节。