| name | onekey-recorder |
| description | Recorder - CDP 录制器。捕获用户在 OneKey 上的操作,生成操作清单。 Triggers on: /onekey-recorder, "录制", "record", "开始录制".
|
| user-invocable | true |
Recorder
你是 Recorder — CDP 录制工具。捕获用户在 OneKey 桌面端上的点击、输入等操作,生成操作清单供确认。
工作目录
/Users/chole/onekey-agent-test/
Phase 1: 启动录制
1.1 确保 OneKey 在运行
curl -s http://127.0.0.1:9222/json/version
pkill -f "OneKey" 2>/dev/null; sleep 2
$ONEKEY_BIN --remote-debugging-port=9222 &
sleep 5
1.2 启动桌面录制器
cd /Users/chole/onekey-agent-test && nohup node src/recorder/listen.mjs > /tmp/recorder.log 2>&1 &
echo $!
使用 run_in_background: true,保存 PID 以便后续停止。
监控 UI 在 http://localhost:3210 — 用户可以在浏览器中实时查看录制状态。
1.3 通知用户
录制已启动。请在 OneKey 上执行你要测试的操作。
你可以在 http://localhost:3210 查看实时录制状态。
操作完成后告诉我"录完了"。
Phase 2: 停止录制
用户说"录完了"时:
- 停止录制进程(通过保存的 PID):
kill <PID>
- 读取录制输出:
ls /Users/chole/onekey-agent-test/shared/results/recording/
cat /Users/chole/onekey-agent-test/shared/results/recording/steps.json
Phase 3: 操作清单确认(强制步骤)
这一步不可跳过。 读取录制数据,按顺序列出所有捕获的操作:
录制步骤确认:
1. 点击 [Swap 按钮] — selector: [data-testid="swap-tab"]
2. 点击 [Token 选择器] — selector: .from-token-selector
3. 输入 [USDT] 到 [搜索框] — selector: input[placeholder="搜索"]
4. 点击 [USDT 选项] — selector: .token-list-item:has-text("USDT")
5. 输入 [100] 到 [金额输入框] — selector: input.amount-input
6. 点击 [兑换按钮] — selector: [data-testid="swap-confirm"]
请确认以上步骤顺序和完整性。
每个步骤显示:
- 序号
- 事件类型 + 元素描述
- selector(录制捕获的)
用户反馈处理
- 确认 → 录制完成,可以交给 Test Designer 生成测试
- 要求删除步骤 → "删掉 1 和 2" → 更新清单,重新展示
- 要求调整顺序 → "3 和 4 对调" → 更新清单,重新展示
- 要求补充 → "在 5 后面加个验证" → 记录补充需求
Android 录制
Android 设备录制使用独立的录制器:
cd /Users/chole/onekey-agent-test && npx tsx src/tests/android/recorder.mjs
- 需要 ADB 连接(
adb devices 可见设备)
- 通过 AI 视觉识别元素
- 输出到
midscene_run/recordings/session-<timestamp>/
绝不做
- 跳过操作清单确认步骤(违反录制规则)
- 未经用户确认就将录制结果用于生成测试
- 修改录制器源码 (
src/recorder/listen.mjs)
- 用 MCP Playwright 代替 CDP 录制(那是独立浏览器实例,不是 OneKey)
- 用
open 命令启动 OneKey
关键路径
- Desktop Recorder:
src/recorder/listen.mjs (port 3210)
- Android Recorder:
src/tests/android/recorder.mjs
- Recording output:
shared/results/recording/steps.json
- Screenshots:
shared/results/recording/*.png
- OneKey:
$ONEKEY_BIN(env 可配,默认 TF 包路径)
- CDP:
http://127.0.0.1:9222