Cursor Auto Approve
自动点击 Cursor Agent 的 Accept / Keep All / Allow / Run / Continue,并支持提示词预设、任务完成自动续跑、限额换号等自动化能力。
安全提示:默认关闭。开启后 Agent 自主权更高;危险命令(rm -rf、git push --force 等)不会自动点 Run。
当前版本:0.1.69
安装
从 GitHub Releases 下载最新 cursor-auto-approve-*.vsix,或在本仓库构建:
cd extensions/cursor-auto-approve
npm run package
npm run install-local
装完后执行 Developer: Reload Window。
快速开始
1. 打开 CDP(必须)
命令面板:Cursor Auto Approve: Enable Remote Debugging (CDP)
扩展会在每次启动时自动确保 CDP 启动入口:
- 桌面仅保留
Cursor.lnk 一个图标(CDP 智能启动器)
- 自动删除旧版
Cursor (Auto Approve).lnk、Cursor (CDP).lnk 等重复图标
- 任务栏 / 开始菜单里的 Cursor 快捷方式会静默修补(不新增图标)
- 注册表 App Paths(Win+R 输入
Cursor.exe 也会走 CDP 启动器)
- 同步
%USERPROFILE%\.cursor\argv.json(旧版 Cursor 兼容)
Cursor 单实例:若 Cursor 已在运行(未带 CDP),再点快捷方式不会补上 CDP。必须先 File → Exit 完全退出,再双击 Cursor.lnk。v0.1.50 起快捷方式使用智能启动器,会弹窗提示此情况。
Cursor 3.5+ 不再从 argv.json 读取 CDP。不要直接双击 Cursor.exe;用桌面 Cursor.lnk。
完全退出 Cursor 后(File → Exit),双击桌面 Cursor.lnk 打开。
验证:Cursor Auto Approve: Health Check → 应显示 CDP:9222
2. 打开控制台(推荐)
- 状态栏 铅笔图标,或
Ctrl+Shift+Alt+E
- 编辑预设:管理多条提示词,设为当前、填入、填入并发送
- 自动化配置:可视化开关 Auto Approve、任务完成自动发送、限额换号等
3. 选择要启用的模式
| 模式 |
开关 |
状态栏 |
| 自动点击 |
cursorAutoApprove.enabled 或 Ctrl+Shift+Alt+A |
$(rocket) ON · … |
| 任务完成自动发送 |
控制台 → 自动化配置,或命令 Toggle Auto Send… |
$(eye) WATCH · … |
| 两者同时 |
都开 |
ON · auto · … |
| 关闭 |
都关 |
$(circle-slash) OFF |
功能概览
自动点击(简单模式)
| 特性 |
说明 |
| 始终轮询 |
开启后约每 1s 扫描并点击 |
| 不检测输入 |
不暂停打字 / 拼音 / IME |
| 新版 UI |
识别 composer-run-button、Allow src\... |
| 原生命令回退 |
CDP 点不到时执行 composer.acceptComposerStep 等 |
| 多窗口 |
默认后台窗口也处理 |
提示词预设
- 预设保存在扩展
globalState,内置「持续迭代(完整)」「持续迭代(短)」
Ctrl+Shift+Alt+F:填入当前预设到 Agent 输入框
Ctrl+Shift+Alt+S:快速切换预设
任务完成自动发送(WATCH)
仅在 当前任务执行完成 且 Agent 输入框为空 时,自动填入并发送当前预设(防堆积)。
发送条件(全部满足):
- Agent 从 busy → idle(无工具在跑、无 Stop、无 streaming)
- 输入框可见且为空
- 自最后一次 busy 起连续空闲至少
taskCompleteMinIdleMs(默认 8s,防执行中误发)
- 连续 2 次轮询确认 idle + 空输入
- 延迟
taskCompleteDelayMs 后再验证一次
防堆积:
同一轮任务完成只发送一次
发送后须等 Agent 真正跑起来才允许下一轮
默认冷却 30s(taskCompleteCooldownMs)
输入框有内容时跳过,不叠加发送
默认关闭(cursorAutoApprove.autoSendOnTaskComplete)
可单独开启,无需打开 Auto Approve
调试:设置 debugLog: true,查看 Output → Cursor Auto Approve
限额检测与换号
检测(双通道):
- Cursor 限额/速率 UI(CDP 文案匹配)
- XuBei API:
/api/check-usage、/api/ratelimit-check 的 should_switch(默认每 15s)
换号闭环:
- 优先
POST /api/auto-switch(需在 XuBei 内开启「自动换号」,不抢焦点)
- 否则 UI 点「无感换号」(按按钮标题匹配;焦点安全模式用 PostMessage 并还原前景)
- 等待 Token/邮箱变更(
xubeiSettleTimeoutMs)
- 可选填入并发送预设(
onLimitFillPrompt / onLimitPromptAutoSend)
- 若 CDP 丢失,提示 Restart with CDP
手动触发:Cursor Auto Approve: Trigger XuBei Seamless Switch
Health Check 会显示 XuBei:run+api+auto 等状态。
常用设置
| 设置 |
默认 |
说明 |
enabled |
false |
Auto Approve 总开关 |
pauseWhileTyping |
true |
打字 / 拼音 / Agent 输入时暂停点击,避免抢焦点 |
autoSendOnTaskComplete |
false |
任务完成后自动发送预设 |
pollMs |
1000 |
轮询间隔 |
clickCooldownMs |
1500 |
两次点击最短间隔 |
blockDangerous |
true |
拦截危险命令 |
notifyUsageLimit |
true |
限额警告 |
onLimitLaunchXubei |
true |
限额后无感换号 |
onLimitFillPrompt |
true |
换号后填提示词 |
promptAfterSwitchDelayMs |
2500 |
换号后等待再填词 |
taskCompleteDelayMs |
1500 |
任务完成后延迟发送 |
taskCompleteCooldownMs |
30000 |
两次自动发送冷却 |
taskCompleteMinIdleMs |
8000 |
忙→闲后最短空闲才算完成(防执行中误发) |
xubeiExePath |
"" |
XuBei 路径(留空用默认 Downloads 路径) |
debugLog |
false |
输出调试日志 |
完整列表见 VS Code 设置,搜索 cursorAutoApprove。
命令与快捷键
| 命令 |
快捷键 |
| Toggle Auto Approve |
Ctrl+Shift+Alt+A |
| Pause / Resume |
Ctrl+Shift+Alt+P |
| Open Prompt Preset Editor(控制台) |
Ctrl+Shift+Alt+E |
| Fill Prompt Into Agent Input |
Ctrl+Shift+Alt+F |
| Select Prompt Preset |
Ctrl+Shift+Alt+S |
| Toggle Auto Send On Task Complete |
— |
| Enable Remote Debugging (CDP) |
— |
| Health Check |
— |
| Probe Buttons (Debug) |
— |
| Show Activity Log |
— |
| Trigger XuBei Seamless Switch |
— |
暂停提示按模式区分:WATCH 模式显示「任务完成监控已暂停」,双开显示「Auto Approve 与自动发送已暂停」。
原理
- 通过 CDP(端口 9222)连接 Cursor 内嵌 Chromium
- 注入脚本扫描 Agent 面板按钮、Agent 运行状态、限额界面
- CDP 失败时回退到 Cursor 内置命令(
composer.acceptComposerStep 等)
开发
cd extensions/cursor-auto-approve
npm test # 单元测试(agent-busy / safety / status-label)
npm run diagnose # 检查 CDP
npm run package # 生成 .vsix
npm run install-local # 安装到 ~/.cursor/extensions
License
MIT