@omniaibot/win-x64 1.6.5 → 1.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/bin/omnibot-windows-x64/81d243bd2c585b0f4821__mypyc.pyd +0 -0
  2. package/bin/omnibot-windows-x64/VERSION +1 -1
  3. package/bin/omnibot-windows-x64/_asyncio.pyd +0 -0
  4. package/bin/omnibot-windows-x64/_bz2.pyd +0 -0
  5. package/bin/omnibot-windows-x64/_cffi_backend.pyd +0 -0
  6. package/bin/omnibot-windows-x64/_ctypes.pyd +0 -0
  7. package/bin/omnibot-windows-x64/_decimal.pyd +0 -0
  8. package/bin/omnibot-windows-x64/_hashlib.pyd +0 -0
  9. package/bin/omnibot-windows-x64/_lzma.pyd +0 -0
  10. package/bin/omnibot-windows-x64/_multiprocessing.pyd +0 -0
  11. package/bin/omnibot-windows-x64/_overlapped.pyd +0 -0
  12. package/bin/omnibot-windows-x64/_queue.pyd +0 -0
  13. package/bin/omnibot-windows-x64/_socket.pyd +0 -0
  14. package/bin/omnibot-windows-x64/_ssl.pyd +0 -0
  15. package/bin/omnibot-windows-x64/_uuid.pyd +0 -0
  16. package/bin/omnibot-windows-x64/_wmi.pyd +0 -0
  17. package/bin/omnibot-windows-x64/certifi/cacert.pem +70 -0
  18. package/bin/omnibot-windows-x64/charset_normalizer/cd.pyd +0 -0
  19. package/bin/omnibot-windows-x64/charset_normalizer/md.pyd +0 -0
  20. package/bin/omnibot-windows-x64/cryptography/hazmat/bindings/_rust.pyd +0 -0
  21. package/bin/omnibot-windows-x64/libcrypto-3.dll +0 -0
  22. package/bin/omnibot-windows-x64/libffi-8.dll +0 -0
  23. package/bin/omnibot-windows-x64/libssl-3.dll +0 -0
  24. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/SKILL.md +220 -261
  25. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/anti-patterns.md +57 -57
  26. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/command-reference.md +709 -755
  27. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/css-only-dropdown-js.md +50 -50
  28. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/debugging-and-evidence.md +129 -129
  29. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/fallback-operations.md +177 -177
  30. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/operation-patterns.md +432 -432
  31. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/runtime-and-status.md +121 -121
  32. package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/session-and-tabs.md +164 -164
  33. package/bin/omnibot-windows-x64/omnibot/sop/tmwebdriver_sop.md +128 -128
  34. package/bin/omnibot-windows-x64/omnibot/sop/vue3_component_sop.md +163 -163
  35. package/bin/omnibot-windows-x64/omnibot-windows-x64.exe +0 -0
  36. package/bin/omnibot-windows-x64/pyexpat.pyd +0 -0
  37. package/bin/omnibot-windows-x64/python3.dll +0 -0
  38. package/bin/omnibot-windows-x64/python312.dll +0 -0
  39. package/bin/omnibot-windows-x64/select.pyd +0 -0
  40. package/bin/omnibot-windows-x64/unicodedata.pyd +0 -0
  41. package/bin/omnibot-windows-x64/vcruntime140.dll +0 -0
  42. package/bin/omnibot-windows-x64/vcruntime140_1.dll +0 -0
  43. package/package.json +1 -1
  44. package/bin/omnibot-windows-x64/libcrypto-3-x64.dll +0 -0
  45. package/bin/omnibot-windows-x64/libssl-3-x64.dll +0 -0
  46. package/bin/omnibot-windows-x64/python313.dll +0 -0
@@ -1,755 +1,709 @@
1
- # Omnibot Command Reference
2
-
3
- This is a lookup table, not a behavior guide. Choose behavior from `operation-patterns.md`, use `session-and-tabs.md` for targeting, and use `fallback-operations.md` before dropping to lower tiers.
4
-
5
- Unless marked as discovery, runtime, or tab creation, page-state examples assume `OMNIBOT_SESSION_TOKEN=<workflow>` and `--tab-id <TAB_ID>`.
6
-
7
- ## Runtime & Status
8
-
9
- ### doctor
10
-
11
- Purpose: Check daemon and browser extension health.
12
-
13
- ```bash
14
- omnibot doctor
15
- ```
16
-
17
- Preferred pattern: See `runtime-and-status.md#startup-check`.
18
- Fallback relation: Not a fallback command.
19
-
20
- ### status
21
-
22
- Purpose: Show daemon status only (lighter than `doctor`).
23
-
24
- ```bash
25
- omnibot status
26
- ```
27
-
28
- Preferred pattern: See `runtime-and-status.md#daemon-lifecycle`.
29
- Fallback relation: Not a fallback command.
30
-
31
- ### start
32
-
33
- Purpose: Start the daemon in the background.
34
-
35
- ```bash
36
- omnibot start
37
- ```
38
-
39
- Equivalent to: `omnibot daemon start`
40
-
41
- ### stop
42
-
43
- Purpose: Stop the running daemon.
44
-
45
- ```bash
46
- omnibot stop
47
- ```
48
-
49
- Equivalent to: `omnibot daemon stop`
50
-
51
- ### run
52
-
53
- Purpose: Run the daemon in the foreground.
54
-
55
- ```bash
56
- omnibot run
57
- ```
58
-
59
- Equivalent to: `omnibot daemon run`
60
-
61
- ### tabs
62
-
63
- Purpose: List connected browser tabs and discover tab ids.
64
-
65
- ```bash
66
- omnibot tabs
67
- ```
68
-
69
- Preferred pattern: See `session-and-tabs.md#tab-explicit`.
70
- Fallback relation: Not a fallback command.
71
-
72
- ### license status
73
-
74
- Purpose: Check license state.
75
-
76
- ```bash
77
- omnibot license status
78
- ```
79
-
80
- Preferred pattern: See `runtime-and-status.md#startup-check`.
81
- Fallback relation: Not a fallback command.
82
-
83
- ### version
84
-
85
- Purpose: Print the installed omnibot CLI version. No daemon or extension access required.
86
-
87
- ```bash
88
- omnibot version
89
- omnibot --version
90
- omnibot -V
91
- ```
92
-
93
- Output: a single line in the form `omnibot <version>` (for example `omnibot 1.6.3`).
94
- Preferred pattern: See `runtime-and-status.md#version`.
95
- Fallback relation: Not a fallback command.
96
-
97
- ## Reading
98
-
99
- ### read
100
-
101
- Purpose: Read clean rendered page text/Markdown from an existing tab or a temporary URL tab.
102
-
103
- ```bash
104
- OMNIBOT_SESSION_TOKEN=research omnibot read --screens 5 --tab-id <TAB_ID>
105
- OMNIBOT_SESSION_TOKEN=research omnibot read --screens 5 --timeout 120 --tab-id <TAB_ID>
106
- OMNIBOT_SESSION_TOKEN=research omnibot read --screens 3 https://example.com/article
107
- OMNIBOT_SESSION_TOKEN=research omnibot read --json --screens 5 --tab-id <TAB_ID>
108
- ```
109
-
110
- Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#extraction`.
111
- Fallback relation: Prefer for page content. Use `snapshot -i` when the next step is action planning, and `get`/`is`/`wait` for narrow state verification.
112
-
113
- ### snapshot -i
114
-
115
- Purpose: Read accessibility tree and produce actionable `@eN` refs.
116
-
117
- For visible custom comboboxes, `snapshot -i` may auto-probe options and append `[option]` refs under DOM Popup Controls. These refs remain actionable after the dropdown closes because they carry `openerSelector` internally.
118
-
119
- ```bash
120
- OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i --tab-id <TAB_ID>
121
- OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i -c -d 4 --tab-id <TAB_ID>
122
- OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i -s "#main" -u --tab-id <TAB_ID>
123
- ```
124
-
125
- Preferred pattern: See `operation-patterns.md#click`, `operation-patterns.md#fill`, and `session-and-tabs.md#ref-scope`.
126
- Fallback relation: Tier 2 after semantic find.
127
-
128
- ### get
129
-
130
- Purpose: Read one value or element state without dumping the page.
131
-
132
- ```bash
133
- OMNIBOT_SESSION_TOKEN=research omnibot get title --tab-id <TAB_ID>
134
- OMNIBOT_SESSION_TOKEN=research omnibot get url --tab-id <TAB_ID>
135
- OMNIBOT_SESSION_TOKEN=research omnibot get text "#main" --tab-id <TAB_ID>
136
- OMNIBOT_SESSION_TOKEN=research omnibot get html "#main" --tab-id <TAB_ID>
137
- OMNIBOT_SESSION_TOKEN=research omnibot get value "input[name=email]" --tab-id <TAB_ID>
138
- OMNIBOT_SESSION_TOKEN=research omnibot get attr "a.login" href --tab-id <TAB_ID>
139
- OMNIBOT_SESSION_TOKEN=research omnibot get count ".item" --tab-id <TAB_ID>
140
- OMNIBOT_SESSION_TOKEN=research omnibot get box "#submit" --tab-id <TAB_ID>
141
- OMNIBOT_SESSION_TOKEN=research omnibot get styles "#submit" --tab-id <TAB_ID>
142
- ```
143
-
144
- Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#extraction`.
145
- Fallback relation: Selector tier for reading; escalate only if unavailable.
146
-
147
- ### is
148
-
149
- Purpose: Check element state.
150
-
151
- ```bash
152
- OMNIBOT_SESSION_TOKEN=checkout omnibot is visible "#submit" --tab-id <TAB_ID>
153
- OMNIBOT_SESSION_TOKEN=checkout omnibot is enabled "#submit" --tab-id <TAB_ID>
154
- OMNIBOT_SESSION_TOKEN=checkout omnibot is checked "#agree" --tab-id <TAB_ID>
155
- ```
156
-
157
- Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#select--check`.
158
- Fallback relation: Prefer before visual or JavaScript checks.
159
-
160
- ## Actions
161
-
162
- ### click
163
-
164
- Purpose: Click an element by `@eN` ref or selector.
165
-
166
- ```bash
167
- OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e4
168
- OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e4 --new-tab
169
- OMNIBOT_SESSION_TOKEN=checkout omnibot click "button[type=submit]" --tab-id <TAB_ID>
170
- ```
171
-
172
- Preferred pattern: See `operation-patterns.md#click`.
173
- Fallback relation: Tier 2 with refs, Tier 3 with selector.
174
-
175
- Combobox option refs: if `snapshot -i` shows `@eN [option] "OpenAI Chat"`, prefer `click @eN` over JavaScript fallback. Omnibot will reopen the owning combobox when needed.
176
-
177
- Rich text editor refs: if `snapshot -i` shows `@eN [richtext] "..." [contenteditable=true]` under `# DOM Rich Text Editors`, treat it as the article body editor. Use `fill @richtext` to replace the whole body (supports `\n\n` for paragraphs) and `type @richtext` to append. Do not fall back to `execute-js` first.
178
-
179
- ### dblclick
180
-
181
- Purpose: Double-click an element by `@eN` ref or selector.
182
-
183
- ```bash
184
- OMNIBOT_SESSION_TOKEN=editor omnibot dblclick --tab-id <TAB_ID> @e7
185
- ```
186
-
187
- Preferred pattern: See `operation-patterns.md#click`.
188
- Fallback relation: Prefer semantic or snapshot first; then selector.
189
-
190
- ### fill
191
-
192
- Purpose: Replace an input value.
193
-
194
- ```bash
195
- OMNIBOT_SESSION_TOKEN=checkout omnibot fill --tab-id <TAB_ID> @e2 "a@b.com"
196
- OMNIBOT_SESSION_TOKEN=checkout omnibot fill "input[name=email]" "a@b.com" --tab-id <TAB_ID>
197
- ```
198
-
199
- Preferred pattern: See `operation-patterns.md#fill`.
200
- Fallback relation: Tier 2 with refs, Tier 3 with selector.
201
-
202
- Rich text body editors (ProseMirror/Quill/Draft.js/Slate/Toutiao article body): if the target is an `@eN [richtext]` ref, `fill` writes through a dedicated contenteditable path that clears the previous body and dispatches `input`/`change` events. Split paragraphs with an empty line:
203
-
204
- ```bash
205
- OMNIBOT_SESSION_TOKEN=editor omnibot fill --tab-id <TAB_ID> @eN "First paragraph.\n\nSecond paragraph."
206
- ```
207
-
208
- Raw selector fallback is supported for selectors that look like a rich editor (e.g. `[contenteditable="true"]`, `.ProseMirror`, `.ql-editor`).
209
-
210
- ### type
211
-
212
- Purpose: Type text into an element.
213
-
214
- ```bash
215
- OMNIBOT_SESSION_TOKEN=search omnibot type --tab-id <TAB_ID> @e3 "omnibot"
216
- ```
217
-
218
- Preferred pattern: See `operation-patterns.md#fill`.
219
- Fallback relation: Use after fill is not appropriate or focus is needed.
220
-
221
- For `@eN [richtext]` article body editors, `type` appends at the cursor position. Click the `@richtext` ref first to focus the editor.
222
-
223
- ### press
224
-
225
- Purpose: Press a key in the target tab.
226
-
227
- ```bash
228
- OMNIBOT_SESSION_TOKEN=search omnibot press Enter --tab-id <TAB_ID>
229
- ```
230
-
231
- Preferred pattern: See `operation-patterns.md#fill` and `operation-patterns.md#wait`.
232
- Fallback relation: Not a fallback by itself; verify after pressing.
233
-
234
- ### hover
235
-
236
- Purpose: Hover an element by ref or selector.
237
-
238
- ```bash
239
- OMNIBOT_SESSION_TOKEN=menu omnibot hover --tab-id <TAB_ID> @e5
240
- ```
241
-
242
- Preferred pattern: Observe menu state, hover, then verify visible options.
243
- Fallback relation: Use mouse move only if hover fails.
244
-
245
- ### focus
246
-
247
- Purpose: Focus an element by selector.
248
-
249
- ```bash
250
- OMNIBOT_SESSION_TOKEN=form omnibot focus "input[name=email]" --tab-id <TAB_ID>
251
- ```
252
-
253
- Preferred pattern: See `operation-patterns.md#fill`.
254
- Fallback relation: Selector tier before keyboard/type fallback.
255
-
256
- ### select
257
-
258
- Purpose: Select an option in a dropdown.
259
-
260
- ```bash
261
- OMNIBOT_SESSION_TOKEN=form omnibot select @e5 "US" --tab-id <TAB_ID>
262
- ```
263
-
264
- Preferred pattern: See `operation-patterns.md#select--check`.
265
- Fallback relation: Prefer refs/selectors before JavaScript value changes. For custom comboboxes, first check whether `snapshot -i` exposes auto-probed option refs and click `@option`. For CSS-only dropdowns whose options are still absent or whose refs fail verification, see `fallback-operations.md#css-only-dropdown-javascript-fallback`.
266
-
267
- ### check / uncheck
268
-
269
- Purpose: Set checkbox state.
270
-
271
- ```bash
272
- OMNIBOT_SESSION_TOKEN=form omnibot check @e6 --tab-id <TAB_ID>
273
- OMNIBOT_SESSION_TOKEN=form omnibot uncheck @e6 --tab-id <TAB_ID>
274
- ```
275
-
276
- Preferred pattern: See `operation-patterns.md#select--check`.
277
- Fallback relation: Verify with `is checked` before and after.
278
-
279
- ### scroll / scrollintoview
280
-
281
- Purpose: Scroll page or element.
282
-
283
- ```bash
284
- OMNIBOT_SESSION_TOKEN=read omnibot scroll down 500 --tab-id <TAB_ID>
285
- OMNIBOT_SESSION_TOKEN=read omnibot scroll down 500 --selector "#list" --tab-id <TAB_ID>
286
- OMNIBOT_SESSION_TOKEN=read omnibot scrollintoview @e7 --tab-id <TAB_ID>
287
- ```
288
-
289
- Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#extraction`.
290
- Fallback relation: DOM or mouse scroll only after standard scroll fails.
291
-
292
- ### drag
293
-
294
- Purpose: Drag from one element to another.
295
-
296
- ```bash
297
- OMNIBOT_SESSION_TOKEN=board omnibot drag @e8 @e9 --tab-id <TAB_ID>
298
- ```
299
-
300
- Preferred pattern: Observe source and target, drag, verify position/state.
301
- Fallback relation: Mouse drag is Tier 5 if element drag fails.
302
-
303
- ### upload
304
-
305
- Purpose: Attach a local file to an `<input type="file">` element via CDP (`DOM.setFileInputFiles`), with nodeId and JS `DataTransfer` fallbacks.
306
-
307
- ```bash
308
- OMNIBOT_SESSION_TOKEN=form omnibot upload "input[type=file]" /path/to/file.png --tab-id <TAB_ID>
309
- ```
310
-
311
- Preferred pattern: See `operation-patterns.md#upload`.
312
- Fallback relation: The CLI falls back from CDP objectId → CDP nodeId → JS DataTransfer. Do not stack additional JavaScript fallbacks.
313
-
314
- ### keyboard / keydown / keyup
315
-
316
- Purpose: Send keyboard text or key state to the target tab when element-specific `type` or `press` is insufficient.
317
-
318
- ```bash
319
- OMNIBOT_SESSION_TOKEN=form omnibot keyboard type "hello" --tab-id <TAB_ID>
320
- OMNIBOT_SESSION_TOKEN=form omnibot keyboard inserttext "hello" --tab-id <TAB_ID>
321
- OMNIBOT_SESSION_TOKEN=form omnibot keydown Shift --tab-id <TAB_ID>
322
- OMNIBOT_SESSION_TOKEN=form omnibot keyup Shift --tab-id <TAB_ID>
323
- ```
324
-
325
- Preferred pattern: Prefer `fill`, `type`, and `press` first.
326
- Fallback relation: Keyboard commands are a focused fallback before mouse or JavaScript.
327
-
328
- ## Semantic Find
329
-
330
- Semantic find is Tier 1 for operating by meaning.
331
-
332
- ```bash
333
- OMNIBOT_SESSION_TOKEN=checkout omnibot find role button --name "Submit" --action click --tab-id <TAB_ID>
334
- OMNIBOT_SESSION_TOKEN=checkout omnibot find text "Sign in" --action click --tab-id <TAB_ID>
335
- OMNIBOT_SESSION_TOKEN=checkout omnibot find label "Email" --action fill --action-value "a@b.com" --tab-id <TAB_ID>
336
- OMNIBOT_SESSION_TOKEN=checkout omnibot find placeholder "Search" --action type --action-value "omnibot" --tab-id <TAB_ID>
337
- OMNIBOT_SESSION_TOKEN=checkout omnibot find testid submit-button --action click --tab-id <TAB_ID>
338
- OMNIBOT_SESSION_TOKEN=checkout omnibot find nth ".card" 2 --action click --tab-id <TAB_ID>
339
- ```
340
-
341
- Text-node precision: `find text` walks the DOM text nodes and marks the nearest visible container of the matching text, not the first ancestor whose `textContent` happens to include the needle. The matched offset/length is stored on the element, so `--action click` positions the mouse at the end of the matched text. Inside a `contenteditable` body (ProseMirror/Quill/etc.), the selection is collapsed right after the matched text and the editor is focused, so a follow-up image insertion lands at the intended paragraph instead of the editor root.
342
-
343
- Preferred pattern: See `operation-patterns.md#click` and `operation-patterns.md#fill`.
344
- Fallback relation: Tier 1. Explain failure before using refs, selectors, DOM, mouse, JavaScript, or CDP.
345
-
346
- ## Fallback Actions
347
-
348
- ### mouse
349
-
350
- Purpose: Coordinate-based mouse operations.
351
- Usage tier: Tier 5 fallback only.
352
-
353
- > **Development status:** The realistic trajectory mode (`mouse drag` without `--fast`) is experimental and has not been validated in production workflows. The trajectory parameters, step count, and timing are still being tuned. Use `--fast` for stable linear drags until the realistic mode is proven.
354
-
355
- ```bash
356
- OMNIBOT_SESSION_TOKEN=repair omnibot mouse click --x 100 --y 200 --tab-id <TAB_ID>
357
- OMNIBOT_SESSION_TOKEN=repair omnibot mouse click --x 100 --y 200 --click-count 2 --tab-id <TAB_ID>
358
- OMNIBOT_SESSION_TOKEN=repair omnibot mouse move --x 50 --y 60 --tab-id <TAB_ID>
359
- OMNIBOT_SESSION_TOKEN=repair omnibot mouse scroll --x 100 --y 200 --dy 500 --tab-id <TAB_ID>
360
- OMNIBOT_SESSION_TOKEN=repair omnibot mouse drag --from-x 10 --from-y 20 --to-x 100 --to-y 200 --tab-id <TAB_ID>
361
- ```
362
-
363
- `mouse drag` uses a realistic multi-step trajectory by default (70-110 interpolated points with easing, jitter, overshoot, and short random pauses). **This mode is experimental and not yet production-ready.** Optional tuning flags:
364
-
365
- ```bash
366
- omnibot mouse drag --from-x 633 --from-y 733 --to-x 706 --to-y 733 --duration-ms 700 --steps 90 --jitter 1 --overshoot 2 --tab-id <TAB_ID>
367
- ```
368
-
369
- Use `--fast` for the old linear 4-event drag (stable, recommended for production):
370
-
371
- ```bash
372
- omnibot mouse drag --from-x 0 --from-y 0 --to-x 100 --to-y 0 --fast --tab-id <TAB_ID>
373
- ```
374
-
375
- Preferred pattern: See `fallback-operations.md#mouse-fallback`.
376
- Fallback relation: After semantic, refs, selector, and DOM fail.
377
-
378
- ### verify
379
-
380
- Purpose: Inspect human-verification (captcha) widgets. Returns structured metadata (provider, type, action type, element boxes, coordinate mapping, and an optional panel screenshot) for an agent to solve. Does not solve captchas itself.
381
-
382
- > **Development status:** This command is experimental and in active development. It is not production-ready. Known limitations:
383
- > - Only NetEase Yidun (网易易盾) is supported; other captcha providers are not detected.
384
- > - DOM-based classification (`yidun_classes`) is best-effort and may report wrong types on newer widget versions.
385
- > - The `coordinate_map` panel-image-to-viewport scale assumes `Page.captureScreenshot` returns DPR-scaled device pixels; this has not been validated across all DPR and viewport combinations.
386
- > - Success/failure state detection (`state` field) from DOM classes is unreliable; always cross-check with a visual screenshot.
387
- > - There is no built-in captcha solver. External vision-model-based solving (e.g. via `--solver-command`) has shown insufficient accuracy for production-grade captcha solving on jigsaw-type captchas.
388
- > - Do not rely on this command for automated captcha bypass in production workflows.
389
-
390
- ```bash
391
- OMNIBOT_SESSION_TOKEN=verify omnibot verify inspect --tab-id <TAB_ID>
392
- OMNIBOT_SESSION_TOKEN=verify omnibot verify inspect --tab-id <TAB_ID> --no-image
393
- ```
394
-
395
- The agent workflow for slider captchas (experimental, not validated for production):
396
- 1. `verify inspect` → get type, coordinate_map, panel image
397
- 2. Vision model identifies the gap/target position in the image
398
- 3. Convert panel screenshot coordinates to viewport coordinates using `coordinate_map.panel_image_to_viewport_scale_x/y`
399
- 4. `mouse drag` from slider handle to target
400
- 5. `verify inspect` or `screenshot` to verify result
401
-
402
- For click-sequence captchas (text/icon click):
403
- 1. `verify inspect` → get click area and image
404
- 2. Vision model identifies target coordinates in the image
405
- 3. Convert and execute `mouse click` for each target
406
-
407
- Batch scoring harness for NetEase Yidun trial pages (test-only):
408
-
409
- ```bash
410
- python3 tests/verify_workflow_matrix_test.py --iterations 50
411
- python3 tests/verify_workflow_matrix_test.py --case jigsaw --iterations 50 --solver-command './solver.py'
412
- ```
413
-
414
- Without `--solver-command`, the harness performs inspect-only sampling and saves panel images. With a solver command, it executes returned `drag` / `click` actions and writes JSON/TXT score reports.
415
-
416
- ### dom
417
-
418
- Purpose: Interact with visible DOM node ids returned by `dom visible`.
419
- Usage tier: Tier 4 fallback only.
420
-
421
- ```bash
422
- OMNIBOT_SESSION_TOKEN=repair omnibot dom visible --tab-id <TAB_ID>
423
- OMNIBOT_SESSION_TOKEN=repair omnibot dom click n1 --tab-id <TAB_ID>
424
- OMNIBOT_SESSION_TOKEN=repair omnibot dom dblclick n1 --tab-id <TAB_ID>
425
- OMNIBOT_SESSION_TOKEN=repair omnibot dom scroll n1 --dy 800 --tab-id <TAB_ID>
426
- ```
427
-
428
- Preferred pattern: See `fallback-operations.md#dom-fallback`.
429
- Fallback relation: After selector failure and before mouse fallback.
430
-
431
- ### execute-js
432
-
433
- Purpose: Run arbitrary JavaScript in the page.
434
- Usage tier: Tier 6 fallback only. Do not use first.
435
-
436
- ```bash
437
- OMNIBOT_SESSION_TOKEN=repair omnibot execute-js "return location.href" --tab-id <TAB_ID>
438
- OMNIBOT_SESSION_TOKEN=repair omnibot execute-js --file /tmp/repair.js --tab-id <TAB_ID>
439
- ```
440
-
441
- Preferred pattern: See `fallback-operations.md#javascript-fallback`.
442
- Fallback relation: After semantic, refs, selector, DOM, and mouse are insufficient. Valid examples include CSS-only dropdowns where the trigger exists but option refs are absent from `snapshot -i`.
443
-
444
- ### cdp
445
-
446
- Purpose: Send raw Chrome DevTools Protocol commands.
447
- Usage tier: Tier 7 fallback and inspection only.
448
-
449
- ```bash
450
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot cdp Runtime.evaluate '{"expression":"document.title"}' --tab-id <TAB_ID>
451
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot cdp DOM.getDocument '{"depth":1}' --tab-id <TAB_ID>
452
- ```
453
-
454
- Preferred pattern: See `fallback-operations.md#raw-cdp-fallback` and `debugging-and-evidence.md#cdp-inspection`.
455
- Fallback relation: Last resort.
456
-
457
- ## Navigation & Tabs
458
-
459
- ### navigate / open / goto
460
-
461
- Purpose: Navigate or open pages. New-tab forms return a tab id. Same-tab navigation requires an explicit target tab id. There is no CLI current-tab state.
462
-
463
- ```bash
464
- OMNIBOT_SESSION_TOKEN=research omnibot navigate https://example.com
465
- OMNIBOT_SESSION_TOKEN=research omnibot navigate https://example.com --same-tab --tab-id <TAB_ID>
466
- OMNIBOT_SESSION_TOKEN=research omnibot open https://example.com
467
- OMNIBOT_SESSION_TOKEN=research omnibot goto https://example.com --tab-id <TAB_ID>
468
- ```
469
-
470
- Preferred pattern: See `operation-patterns.md#navigation` and `session-and-tabs.md#tab-explicit`.
471
- Fallback relation: Verify with `get url --tab-id <TAB_ID>` before continuing.
472
-
473
- ### close / back / forward / reload / pushstate
474
-
475
- Purpose: Change tab lifecycle or history state.
476
-
477
- ```bash
478
- OMNIBOT_SESSION_TOKEN=research omnibot close <TAB_ID>
479
- OMNIBOT_SESSION_TOKEN=research omnibot back --tab-id <TAB_ID>
480
- OMNIBOT_SESSION_TOKEN=research omnibot forward --tab-id <TAB_ID>
481
- OMNIBOT_SESSION_TOKEN=research omnibot reload --tab-id <TAB_ID>
482
- OMNIBOT_SESSION_TOKEN=research omnibot pushstate /dashboard --tab-id <TAB_ID>
483
- ```
484
-
485
- Preferred pattern: See `operation-patterns.md#navigation`.
486
- Fallback relation: Verify URL or page state after the action.
487
-
488
- ### tab
489
-
490
- Purpose: Manage browser tabs.
491
-
492
- ```bash
493
- OMNIBOT_SESSION_TOKEN=research omnibot tab list
494
- OMNIBOT_SESSION_TOKEN=research omnibot tab new https://docs.example.com --label docs
495
- OMNIBOT_SESSION_TOKEN=research omnibot tab close docs
496
- ```
497
-
498
- Preferred pattern: See `session-and-tabs.md#tab-explicit`.
499
- Removed: `tab switch` and `tab focus` are no longer available. Use explicit `--tab-id` on every page-state command.
500
-
501
- ### window / frame
502
-
503
- Purpose: Manage windows and frames.
504
-
505
- ```bash
506
- OMNIBOT_SESSION_TOKEN=research omnibot window new
507
- OMNIBOT_SESSION_TOKEN=research omnibot frame main
508
- ```
509
-
510
- ## Waiting & Batch
511
-
512
- ### wait
513
-
514
- Purpose: Wait for time, selector, text, URL, load state, or JavaScript condition.
515
-
516
- ```bash
517
- OMNIBOT_SESSION_TOKEN=checkout omnibot wait "#ready" --tab-id <TAB_ID>
518
- OMNIBOT_SESSION_TOKEN=checkout omnibot wait "#spinner" --state hidden --tab-id <TAB_ID>
519
- OMNIBOT_SESSION_TOKEN=checkout omnibot wait --text "Welcome" --tab-id <TAB_ID>
520
- OMNIBOT_SESSION_TOKEN=checkout omnibot wait --url "/dashboard" --tab-id <TAB_ID>
521
- OMNIBOT_SESSION_TOKEN=checkout omnibot wait --load domcontentloaded --tab-id <TAB_ID>
522
- OMNIBOT_SESSION_TOKEN=checkout omnibot wait --load networkidle --tab-id <TAB_ID>
523
- OMNIBOT_SESSION_TOKEN=checkout omnibot wait --fn "window.appReady === true" --tab-id <TAB_ID>
524
- OMNIBOT_SESSION_TOKEN=checkout omnibot wait 500 --tab-id <TAB_ID>
525
- ```
526
-
527
- Preferred pattern: See `operation-patterns.md#wait`.
528
- Fallback relation: Prefer condition waits over shell sleep. Fixed-time waits like `wait 500` are diagnostic or last resort only.
529
-
530
- ### batch
531
-
532
- Purpose: Send short extension/CDP command arrays as JSON or from a file. Batch is not a wrapper for normal CLI commands such as `snapshot` or `click`.
533
-
534
- ```bash
535
- OMNIBOT_SESSION_TOKEN=research omnibot batch '[{"cmd":"cdp","method":"Runtime.evaluate","params":{"expression":"document.title","returnByValue":true}}]' --tab-id <TAB_ID>
536
- OMNIBOT_SESSION_TOKEN=research omnibot batch --file /tmp/omnibot-batch.json --tab-id <TAB_ID>
537
- ```
538
-
539
- Preferred pattern: See `operation-patterns.md#batch`.
540
- Fallback relation: Not a substitute for verification.
541
-
542
- ## Debugging
543
-
544
- ### screenshot
545
-
546
- Purpose: Capture visual evidence from a browser tab.
547
-
548
- ```bash
549
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot screenshot --tab-id <TAB_ID> -o /tmp/omni-shot.png
550
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot screenshot --annotate --tab-id <TAB_ID> -o /tmp/omni-annotated.png
551
- ```
552
-
553
- Preferred pattern: See `debugging-and-evidence.md#screenshot`.
554
- Fallback relation: Evidence collection, not operation fallback.
555
-
556
- ### console
557
-
558
- Purpose: Read or clear browser console evidence.
559
-
560
- ```bash
561
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console logs --tab-id <TAB_ID>
562
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console errors --tab-id <TAB_ID>
563
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console clear --tab-id <TAB_ID>
564
- ```
565
-
566
- Preferred pattern: See `debugging-and-evidence.md#console`.
567
- Fallback relation: Evidence collection, not operation fallback. `console errors` currently uses the console log collection path; verify level filtering in output before treating it as error-only evidence.
568
-
569
- ### network
570
-
571
- Purpose: Capture and inspect CDP Network events buffered by the Omnibot browser extension.
572
-
573
- ```bash
574
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network clear --tab-id <TAB_ID>
575
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network start --tab-id <TAB_ID>
576
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network stop --tab-id <TAB_ID>
577
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network logs --tab-id <TAB_ID>
578
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network summary --tab-id <TAB_ID>
579
- ```
580
-
581
- Raw `cdp Network.enable` is not a substitute for `network start` because raw `cdp` does not by itself expose a persistent event log to the agent.
582
-
583
- Preferred pattern: See `debugging-and-evidence.md#network-capture`.
584
- Fallback relation: Evidence collection, not operation fallback.
585
-
586
- ## Browser Capabilities
587
-
588
- ### clipboard
589
-
590
- Purpose: Read or write browser clipboard.
591
-
592
- ```bash
593
- OMNIBOT_SESSION_TOKEN=research omnibot clipboard read --tab-id <TAB_ID>
594
- OMNIBOT_SESSION_TOKEN=research omnibot clipboard write "text" --tab-id <TAB_ID>
595
- ```
596
-
597
- Preferred pattern: See `operation-patterns.md#extraction`.
598
- Fallback relation: Use only when clipboard is part of the browser task.
599
-
600
- ### viewport
601
-
602
- Purpose: Read or set viewport size.
603
-
604
- ```bash
605
- OMNIBOT_SESSION_TOKEN=visual omnibot viewport get --tab-id <TAB_ID>
606
- OMNIBOT_SESSION_TOKEN=visual omnibot viewport set 1280 720 --tab-id <TAB_ID>
607
- ```
608
-
609
- Preferred pattern: Set explicit viewport before visual verification if layout matters.
610
- Fallback relation: Not a fallback command.
611
-
612
- ### assets
613
-
614
- Purpose: List or export page resources.
615
-
616
- ```bash
617
- OMNIBOT_SESSION_TOKEN=extract omnibot assets list --tab-id <TAB_ID>
618
- OMNIBOT_SESSION_TOKEN=extract omnibot assets export -o /tmp/assets.zip --tab-id <TAB_ID>
619
- ```
620
-
621
- Preferred pattern: See `operation-patterns.md#extraction`.
622
- Fallback relation: Use after page content indicates assets are needed.
623
-
624
- ## Visibility & Sessions
625
-
626
- ### visibility
627
-
628
- Purpose: Inspect or set automation browser visibility mode. `visibility launch` currently reports planned configuration only; it does not launch a browser.
629
-
630
- ```bash
631
- omnibot visibility status
632
- omnibot visibility set background
633
- omnibot visibility set visible
634
- omnibot visibility launch headless --user-data-dir /tmp/omnibot-headless
635
- ```
636
-
637
- Preferred pattern: See `session-and-tabs.md#visibility`.
638
- Fallback relation: Headless does not inherit existing user login state. Treat `visibility launch` status `planned` as not launched.
639
-
640
- ### browser
641
-
642
- Purpose: Manage browser runtime ownership.
643
-
644
- ```bash
645
- OMNIBOT_SESSION_TOKEN=research omnibot browser list
646
- OMNIBOT_SESSION_TOKEN=research omnibot browser current
647
- OMNIBOT_SESSION_TOKEN=research omnibot browser claim 123
648
- OMNIBOT_SESSION_TOKEN=research omnibot browser release 123
649
- ```
650
-
651
- Preferred pattern: See `session-and-tabs.md#browser-claimrelease`.
652
- Fallback relation: Use in multi-browser or multi-runtime scenarios.
653
-
654
- ### session
655
-
656
- Purpose: Name or list Omnibot workflow context state for the current `OMNIBOT_SESSION_TOKEN`. This does not switch tabs, preserve login, or replace `--tab-id`.
657
-
658
- ```bash
659
- OMNIBOT_SESSION_TOKEN=checkout omnibot session name "checkout"
660
- OMNIBOT_SESSION_TOKEN=checkout omnibot session list
661
- ```
662
-
663
- Preferred pattern: See `session-and-tabs.md#session-first`.
664
- Fallback relation: Not a fallback command.
665
-
666
- ## Recording & Trace
667
-
668
- ### record / replay / trace
669
-
670
- Purpose: Capture, replay, or trace workflows for evidence.
671
-
672
- ```bash
673
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot record start
674
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot record stop -o flow.json
675
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot replay flow.json
676
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot trace start
677
- OMNIBOT_SESSION_TOKEN=debug-checkout omnibot trace stop -o trace.zip
678
- ```
679
-
680
- Preferred pattern: See `debugging-and-evidence.md#record-and-replay` and `debugging-and-evidence.md#trace`.
681
- Fallback relation: Evidence collection, not operation fallback.
682
-
683
- ## Skills & License
684
-
685
- ### skills install / skills path
686
-
687
- Purpose: Install packaged omnibot skills or show the packaged skills path.
688
-
689
- ```bash
690
- omnibot skills install --agent hermes --profile nuwa
691
- omnibot skills install --agent opencode
692
- omnibot skills install --agent claude
693
- omnibot skills install --agent codex
694
- omnibot skills path
695
- ```
696
-
697
- Preferred pattern: See `runtime-and-status.md#skills-path`.
698
- Fallback relation: Not a fallback command.
699
-
700
- ### license status
701
-
702
- Purpose: Inspect license status.
703
-
704
- ```bash
705
- omnibot license status
706
- ```
707
-
708
- Preferred pattern: See `runtime-and-status.md#startup-check`.
709
- Fallback relation: Not a fallback command.
710
-
711
- ## Site Memory
712
-
713
- ### explore
714
-
715
- Purpose: Explore one explicit site operation goal and generate reusable installable site skill under `~/.omnibot/skills/omnibot-<name>/`.
716
-
717
- ```bash
718
- omnibot explore run https://www.xiaohongshu.com --name xhs --goal "发布图文笔记"
719
- omnibot explore run https://x.com --goal "post a tweet"
720
- omnibot explore list
721
- omnibot explore show xhs
722
- omnibot explore promote xhs --goal publish-note --version 2026-06-17T21-30-00Z
723
- ```
724
-
725
- Rules:
726
-
727
- - `--goal` is required for a new exploration.
728
- - Same site and different goals are stored in the same site package.
729
- - Same site and same goal create a new preserved version.
730
- - Safe verified versions become active automatically.
731
- - Dangerous verified versions remain candidates until promoted.
732
-
733
- ### skills list-sites
734
-
735
- Purpose: List generated site skills available for installation.
736
-
737
- ```bash
738
- omnibot skills list-sites
739
- ```
740
-
741
- ### skills install --site
742
-
743
- Purpose: Install one generated site skill into an agent's skill directory.
744
-
745
- ```bash
746
- omnibot skills install --agent opencode --site xhs
747
- omnibot skills install --agent claude --site xhs
748
- omnibot skills install --agent opencode --all-sites
749
- ```
750
-
751
- Rules:
752
-
753
- - `--site` installs one generated site skill by name.
754
- - `--all-sites` installs all generated site skills.
755
- - Without `--site` or `--all-sites`, only the official packaged omnibot skill is installed.
1
+ # Omnibot Command Reference
2
+
3
+ This is a lookup table, not a behavior guide. Choose behavior from `operation-patterns.md`, use `session-and-tabs.md` for targeting, and use `fallback-operations.md` before dropping to lower tiers.
4
+
5
+ Unless marked as discovery, runtime, or tab creation, page-state examples assume `OMNIBOT_SESSION_TOKEN=<workflow>` and `--tab-id <TAB_ID>`.
6
+
7
+ ## Runtime & Status
8
+
9
+ ### doctor
10
+
11
+ Purpose: Check daemon and browser extension health.
12
+
13
+ ```bash
14
+ omnibot doctor
15
+ ```
16
+
17
+ Preferred pattern: See `runtime-and-status.md#startup-check`.
18
+ Fallback relation: Not a fallback command.
19
+
20
+ ### status
21
+
22
+ Purpose: Show daemon status only (lighter than `doctor`).
23
+
24
+ ```bash
25
+ omnibot status
26
+ ```
27
+
28
+ Preferred pattern: See `runtime-and-status.md#daemon-lifecycle`.
29
+ Fallback relation: Not a fallback command.
30
+
31
+ ### start
32
+
33
+ Purpose: Start the daemon in the background.
34
+
35
+ ```bash
36
+ omnibot start
37
+ ```
38
+
39
+ Equivalent to: `omnibot daemon start`
40
+
41
+ ### stop
42
+
43
+ Purpose: Stop the running daemon.
44
+
45
+ ```bash
46
+ omnibot stop
47
+ ```
48
+
49
+ Equivalent to: `omnibot daemon stop`
50
+
51
+ ### run
52
+
53
+ Purpose: Run the daemon in the foreground.
54
+
55
+ ```bash
56
+ omnibot run
57
+ ```
58
+
59
+ Equivalent to: `omnibot daemon run`
60
+
61
+ ### tabs
62
+
63
+ Purpose: List connected browser tabs and discover tab ids.
64
+
65
+ ```bash
66
+ omnibot tabs
67
+ ```
68
+
69
+ Preferred pattern: See `session-and-tabs.md#tab-explicit`.
70
+ Fallback relation: Not a fallback command.
71
+
72
+ ### license status
73
+
74
+ Purpose: Check license state.
75
+
76
+ ```bash
77
+ omnibot license status
78
+ ```
79
+
80
+ Preferred pattern: See `runtime-and-status.md#startup-check`.
81
+ Fallback relation: Not a fallback command.
82
+
83
+ ### version
84
+
85
+ Purpose: Print the installed omnibot CLI version. No daemon or extension access required.
86
+
87
+ ```bash
88
+ omnibot version
89
+ omnibot --version
90
+ omnibot -V
91
+ ```
92
+
93
+ Output: a single line in the form `omnibot <version>` (for example `omnibot 1.6.3`).
94
+ Preferred pattern: See `runtime-and-status.md#version`.
95
+ Fallback relation: Not a fallback command.
96
+
97
+ ## Reading
98
+
99
+ ### read
100
+
101
+ Purpose: Read clean rendered page text/Markdown from an existing tab or a temporary URL tab.
102
+
103
+ ```bash
104
+ OMNIBOT_SESSION_TOKEN=research omnibot read --screens 5 --tab-id <TAB_ID>
105
+ OMNIBOT_SESSION_TOKEN=research omnibot read --screens 5 --timeout 120 --tab-id <TAB_ID>
106
+ OMNIBOT_SESSION_TOKEN=research omnibot read --screens 3 https://example.com/article
107
+ OMNIBOT_SESSION_TOKEN=research omnibot read --json --screens 5 --tab-id <TAB_ID>
108
+ ```
109
+
110
+ Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#extraction`.
111
+ Fallback relation: Prefer for page content. Use `snapshot -i` when the next step is action planning, and `get`/`is`/`wait` for narrow state verification.
112
+
113
+ ### snapshot -i
114
+
115
+ Purpose: Read accessibility tree and produce actionable `@eN` refs.
116
+
117
+ For visible custom comboboxes, `snapshot -i` may auto-probe options and append `[option]` refs under DOM Popup Controls. These refs remain actionable after the dropdown closes because they carry `openerSelector` internally.
118
+
119
+ ```bash
120
+ OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i --tab-id <TAB_ID>
121
+ OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i -c -d 4 --tab-id <TAB_ID>
122
+ OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i -s "#main" -u --tab-id <TAB_ID>
123
+ ```
124
+
125
+ Preferred pattern: See `operation-patterns.md#click`, `operation-patterns.md#fill`, and `session-and-tabs.md#ref-scope`.
126
+ Fallback relation: Tier 2 after semantic find.
127
+
128
+ ### get
129
+
130
+ Purpose: Read one value or element state without dumping the page.
131
+
132
+ ```bash
133
+ OMNIBOT_SESSION_TOKEN=research omnibot get title --tab-id <TAB_ID>
134
+ OMNIBOT_SESSION_TOKEN=research omnibot get url --tab-id <TAB_ID>
135
+ OMNIBOT_SESSION_TOKEN=research omnibot get text "#main" --tab-id <TAB_ID>
136
+ OMNIBOT_SESSION_TOKEN=research omnibot get html "#main" --tab-id <TAB_ID>
137
+ OMNIBOT_SESSION_TOKEN=research omnibot get value "input[name=email]" --tab-id <TAB_ID>
138
+ OMNIBOT_SESSION_TOKEN=research omnibot get attr "a.login" href --tab-id <TAB_ID>
139
+ OMNIBOT_SESSION_TOKEN=research omnibot get count ".item" --tab-id <TAB_ID>
140
+ OMNIBOT_SESSION_TOKEN=research omnibot get box "#submit" --tab-id <TAB_ID>
141
+ OMNIBOT_SESSION_TOKEN=research omnibot get styles "#submit" --tab-id <TAB_ID>
142
+ ```
143
+
144
+ Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#extraction`.
145
+ Fallback relation: Selector tier for reading; escalate only if unavailable.
146
+
147
+ ### is
148
+
149
+ Purpose: Check element state.
150
+
151
+ ```bash
152
+ OMNIBOT_SESSION_TOKEN=checkout omnibot is visible "#submit" --tab-id <TAB_ID>
153
+ OMNIBOT_SESSION_TOKEN=checkout omnibot is enabled "#submit" --tab-id <TAB_ID>
154
+ OMNIBOT_SESSION_TOKEN=checkout omnibot is checked "#agree" --tab-id <TAB_ID>
155
+ ```
156
+
157
+ Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#select--check`.
158
+ Fallback relation: Prefer before visual or JavaScript checks.
159
+
160
+ ## Actions
161
+
162
+ ### click
163
+
164
+ Purpose: Click an element by `@eN` ref or selector.
165
+
166
+ ```bash
167
+ OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e4
168
+ OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e4 --new-tab
169
+ OMNIBOT_SESSION_TOKEN=checkout omnibot click "button[type=submit]" --tab-id <TAB_ID>
170
+ ```
171
+
172
+ Preferred pattern: See `operation-patterns.md#click`.
173
+ Fallback relation: Tier 2 with refs, Tier 3 with selector.
174
+
175
+ Combobox option refs: if `snapshot -i` shows `@eN [option] "OpenAI Chat"`, prefer `click @eN` over JavaScript fallback. Omnibot will reopen the owning combobox when needed.
176
+
177
+ Rich text editor refs: if `snapshot -i` shows `@eN [richtext] "..." [contenteditable=true]` under `# DOM Rich Text Editors`, treat it as the article body editor. Use `fill @richtext` to replace the whole body (supports `\n\n` for paragraphs) and `type @richtext` to append. Do not fall back to `execute-js` first.
178
+
179
+ ### dblclick
180
+
181
+ Purpose: Double-click an element by `@eN` ref or selector.
182
+
183
+ ```bash
184
+ OMNIBOT_SESSION_TOKEN=editor omnibot dblclick --tab-id <TAB_ID> @e7
185
+ ```
186
+
187
+ Preferred pattern: See `operation-patterns.md#click`.
188
+ Fallback relation: Prefer semantic or snapshot first; then selector.
189
+
190
+ ### fill
191
+
192
+ Purpose: Replace an input value.
193
+
194
+ ```bash
195
+ OMNIBOT_SESSION_TOKEN=checkout omnibot fill --tab-id <TAB_ID> @e2 "a@b.com"
196
+ OMNIBOT_SESSION_TOKEN=checkout omnibot fill "input[name=email]" "a@b.com" --tab-id <TAB_ID>
197
+ ```
198
+
199
+ Preferred pattern: See `operation-patterns.md#fill`.
200
+ Fallback relation: Tier 2 with refs, Tier 3 with selector.
201
+
202
+ Rich text body editors (ProseMirror/Quill/Draft.js/Slate/Toutiao article body): if the target is an `@eN [richtext]` ref, `fill` writes through a dedicated contenteditable path that clears the previous body and dispatches `input`/`change` events. Split paragraphs with an empty line:
203
+
204
+ ```bash
205
+ OMNIBOT_SESSION_TOKEN=editor omnibot fill --tab-id <TAB_ID> @eN "First paragraph.\n\nSecond paragraph."
206
+ ```
207
+
208
+ Raw selector fallback is supported for selectors that look like a rich editor (e.g. `[contenteditable="true"]`, `.ProseMirror`, `.ql-editor`).
209
+
210
+ ### type
211
+
212
+ Purpose: Type text into an element.
213
+
214
+ ```bash
215
+ OMNIBOT_SESSION_TOKEN=search omnibot type --tab-id <TAB_ID> @e3 "omnibot"
216
+ ```
217
+
218
+ Preferred pattern: See `operation-patterns.md#fill`.
219
+ Fallback relation: Use after fill is not appropriate or focus is needed.
220
+
221
+ For `@eN [richtext]` article body editors, `type` appends at the cursor position. Click the `@richtext` ref first to focus the editor.
222
+
223
+ ### press
224
+
225
+ Purpose: Press a key in the target tab.
226
+
227
+ ```bash
228
+ OMNIBOT_SESSION_TOKEN=search omnibot press Enter --tab-id <TAB_ID>
229
+ ```
230
+
231
+ Preferred pattern: See `operation-patterns.md#fill` and `operation-patterns.md#wait`.
232
+ Fallback relation: Not a fallback by itself; verify after pressing.
233
+
234
+ ### hover
235
+
236
+ Purpose: Hover an element by ref or selector.
237
+
238
+ ```bash
239
+ OMNIBOT_SESSION_TOKEN=menu omnibot hover --tab-id <TAB_ID> @e5
240
+ ```
241
+
242
+ Preferred pattern: Observe menu state, hover, then verify visible options.
243
+ Fallback relation: Use mouse move only if hover fails.
244
+
245
+ ### focus
246
+
247
+ Purpose: Focus an element by selector.
248
+
249
+ ```bash
250
+ OMNIBOT_SESSION_TOKEN=form omnibot focus "input[name=email]" --tab-id <TAB_ID>
251
+ ```
252
+
253
+ Preferred pattern: See `operation-patterns.md#fill`.
254
+ Fallback relation: Selector tier before keyboard/type fallback.
255
+
256
+ ### select
257
+
258
+ Purpose: Select an option in a dropdown.
259
+
260
+ ```bash
261
+ OMNIBOT_SESSION_TOKEN=form omnibot select @e5 "US" --tab-id <TAB_ID>
262
+ ```
263
+
264
+ Preferred pattern: See `operation-patterns.md#select--check`.
265
+ Fallback relation: Prefer refs/selectors before JavaScript value changes. For custom comboboxes, first check whether `snapshot -i` exposes auto-probed option refs and click `@option`. For CSS-only dropdowns whose options are still absent or whose refs fail verification, see `fallback-operations.md#css-only-dropdown-javascript-fallback`.
266
+
267
+ ### check / uncheck
268
+
269
+ Purpose: Set checkbox state.
270
+
271
+ ```bash
272
+ OMNIBOT_SESSION_TOKEN=form omnibot check @e6 --tab-id <TAB_ID>
273
+ OMNIBOT_SESSION_TOKEN=form omnibot uncheck @e6 --tab-id <TAB_ID>
274
+ ```
275
+
276
+ Preferred pattern: See `operation-patterns.md#select--check`.
277
+ Fallback relation: Verify with `is checked` before and after.
278
+
279
+ ### scroll / scrollintoview
280
+
281
+ Purpose: Scroll page or element.
282
+
283
+ ```bash
284
+ OMNIBOT_SESSION_TOKEN=read omnibot scroll down 500 --tab-id <TAB_ID>
285
+ OMNIBOT_SESSION_TOKEN=read omnibot scroll down 500 --selector "#list" --tab-id <TAB_ID>
286
+ OMNIBOT_SESSION_TOKEN=read omnibot scrollintoview @e7 --tab-id <TAB_ID>
287
+ ```
288
+
289
+ Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#extraction`.
290
+ Fallback relation: DOM or mouse scroll only after standard scroll fails.
291
+
292
+ ### drag
293
+
294
+ Purpose: Drag from one element to another.
295
+
296
+ ```bash
297
+ OMNIBOT_SESSION_TOKEN=board omnibot drag @e8 @e9 --tab-id <TAB_ID>
298
+ ```
299
+
300
+ Preferred pattern: Observe source and target, drag, verify position/state.
301
+ Fallback relation: Mouse drag is Tier 5 if element drag fails.
302
+
303
+ ### upload
304
+
305
+ Purpose: Attach a local file to an `<input type="file">` element via CDP (`DOM.setFileInputFiles`), with nodeId and JS `DataTransfer` fallbacks.
306
+
307
+ ```bash
308
+ OMNIBOT_SESSION_TOKEN=form omnibot upload "input[type=file]" /path/to/file.png --tab-id <TAB_ID>
309
+ ```
310
+
311
+ Preferred pattern: See `operation-patterns.md#upload`.
312
+ Fallback relation: The CLI falls back from CDP objectId → CDP nodeId → JS DataTransfer. Do not stack additional JavaScript fallbacks.
313
+
314
+ ### keyboard / keydown / keyup
315
+
316
+ Purpose: Send keyboard text or key state to the target tab when element-specific `type` or `press` is insufficient.
317
+
318
+ ```bash
319
+ OMNIBOT_SESSION_TOKEN=form omnibot keyboard type "hello" --tab-id <TAB_ID>
320
+ OMNIBOT_SESSION_TOKEN=form omnibot keyboard inserttext "hello" --tab-id <TAB_ID>
321
+ OMNIBOT_SESSION_TOKEN=form omnibot keydown Shift --tab-id <TAB_ID>
322
+ OMNIBOT_SESSION_TOKEN=form omnibot keyup Shift --tab-id <TAB_ID>
323
+ ```
324
+
325
+ Preferred pattern: Prefer `fill`, `type`, and `press` first.
326
+ Fallback relation: Keyboard commands are a focused fallback before mouse or JavaScript.
327
+
328
+ ## Semantic Find
329
+
330
+ Semantic find is Tier 1 for operating by meaning.
331
+
332
+ ```bash
333
+ OMNIBOT_SESSION_TOKEN=checkout omnibot find role button --name "Submit" --action click --tab-id <TAB_ID>
334
+ OMNIBOT_SESSION_TOKEN=checkout omnibot find text "Sign in" --action click --tab-id <TAB_ID>
335
+ OMNIBOT_SESSION_TOKEN=checkout omnibot find label "Email" --action fill --action-value "a@b.com" --tab-id <TAB_ID>
336
+ OMNIBOT_SESSION_TOKEN=checkout omnibot find placeholder "Search" --action type --action-value "omnibot" --tab-id <TAB_ID>
337
+ OMNIBOT_SESSION_TOKEN=checkout omnibot find testid submit-button --action click --tab-id <TAB_ID>
338
+ OMNIBOT_SESSION_TOKEN=checkout omnibot find nth ".card" 2 --action click --tab-id <TAB_ID>
339
+ ```
340
+
341
+ Text-node precision: `find text` walks the DOM text nodes and marks the nearest visible container of the matching text, not the first ancestor whose `textContent` happens to include the needle. The matched offset/length is stored on the element, so `--action click` positions the mouse at the end of the matched text. Inside a `contenteditable` body (ProseMirror/Quill/etc.), the selection is collapsed right after the matched text and the editor is focused, so a follow-up image insertion lands at the intended paragraph instead of the editor root.
342
+
343
+ Preferred pattern: See `operation-patterns.md#click` and `operation-patterns.md#fill`.
344
+ Fallback relation: Tier 1. Explain failure before using refs, selectors, DOM, mouse, JavaScript, or CDP.
345
+
346
+ ## Fallback Actions
347
+
348
+ ### mouse
349
+
350
+ Purpose: Coordinate-based mouse operations.
351
+ Usage tier: Tier 5 fallback only.
352
+
353
+ > **Development status:** The realistic trajectory mode (`mouse drag` without `--fast`) is experimental and has not been validated in production workflows. The trajectory parameters, step count, and timing are still being tuned. Use `--fast` for stable linear drags until the realistic mode is proven.
354
+
355
+ ```bash
356
+ OMNIBOT_SESSION_TOKEN=repair omnibot mouse click --x 100 --y 200 --tab-id <TAB_ID>
357
+ OMNIBOT_SESSION_TOKEN=repair omnibot mouse click --x 100 --y 200 --click-count 2 --tab-id <TAB_ID>
358
+ OMNIBOT_SESSION_TOKEN=repair omnibot mouse move --x 50 --y 60 --tab-id <TAB_ID>
359
+ OMNIBOT_SESSION_TOKEN=repair omnibot mouse scroll --x 100 --y 200 --dy 500 --tab-id <TAB_ID>
360
+ OMNIBOT_SESSION_TOKEN=repair omnibot mouse drag --from-x 10 --from-y 20 --to-x 100 --to-y 200 --tab-id <TAB_ID>
361
+ ```
362
+
363
+ `mouse drag` uses a realistic multi-step trajectory by default (70-110 interpolated points with easing, jitter, overshoot, and short random pauses). **This mode is experimental and not yet production-ready.** Optional tuning flags:
364
+
365
+ ```bash
366
+ omnibot mouse drag --from-x 633 --from-y 733 --to-x 706 --to-y 733 --duration-ms 700 --steps 90 --jitter 1 --overshoot 2 --tab-id <TAB_ID>
367
+ ```
368
+
369
+ Use `--fast` for the old linear 4-event drag (stable, recommended for production):
370
+
371
+ ```bash
372
+ omnibot mouse drag --from-x 0 --from-y 0 --to-x 100 --to-y 0 --fast --tab-id <TAB_ID>
373
+ ```
374
+
375
+ Preferred pattern: See `fallback-operations.md#mouse-fallback`.
376
+ Fallback relation: After semantic, refs, selector, and DOM fail.
377
+
378
+ ### verify
379
+
380
+ Purpose: Inspect human-verification (captcha) widgets. Returns structured metadata (provider, type, action type, element boxes, coordinate mapping, and an optional panel screenshot) for an agent to solve. Does not solve captchas itself.
381
+
382
+ > **Development status:** This command is experimental and in active development. It is not production-ready. Known limitations:
383
+ > - Only NetEase Yidun (网易易盾) is supported; other captcha providers are not detected.
384
+ > - DOM-based classification (`yidun_classes`) is best-effort and may report wrong types on newer widget versions.
385
+ > - The `coordinate_map` panel-image-to-viewport scale assumes `Page.captureScreenshot` returns DPR-scaled device pixels; this has not been validated across all DPR and viewport combinations.
386
+ > - Success/failure state detection (`state` field) from DOM classes is unreliable; always cross-check with a visual screenshot.
387
+ > - There is no built-in captcha solver. External vision-model-based solving (e.g. via `--solver-command`) has shown insufficient accuracy for production-grade captcha solving on jigsaw-type captchas.
388
+ > - Do not rely on this command for automated captcha bypass in production workflows.
389
+
390
+ ```bash
391
+ OMNIBOT_SESSION_TOKEN=verify omnibot verify inspect --tab-id <TAB_ID>
392
+ OMNIBOT_SESSION_TOKEN=verify omnibot verify inspect --tab-id <TAB_ID> --no-image
393
+ ```
394
+
395
+ The agent workflow for slider captchas (experimental, not validated for production):
396
+ 1. `verify inspect` → get type, coordinate_map, panel image
397
+ 2. Vision model identifies the gap/target position in the image
398
+ 3. Convert panel screenshot coordinates to viewport coordinates using `coordinate_map.panel_image_to_viewport_scale_x/y`
399
+ 4. `mouse drag` from slider handle to target
400
+ 5. `verify inspect` or `screenshot` to verify result
401
+
402
+ For click-sequence captchas (text/icon click):
403
+ 1. `verify inspect` → get click area and image
404
+ 2. Vision model identifies target coordinates in the image
405
+ 3. Convert and execute `mouse click` for each target
406
+
407
+ Batch scoring harness for NetEase Yidun trial pages (test-only):
408
+
409
+ ```bash
410
+ python3 tests/verify_workflow_matrix_test.py --iterations 50
411
+ python3 tests/verify_workflow_matrix_test.py --case jigsaw --iterations 50 --solver-command './solver.py'
412
+ ```
413
+
414
+ Without `--solver-command`, the harness performs inspect-only sampling and saves panel images. With a solver command, it executes returned `drag` / `click` actions and writes JSON/TXT score reports.
415
+
416
+ ### dom
417
+
418
+ Purpose: Interact with visible DOM node ids returned by `dom visible`.
419
+ Usage tier: Tier 4 fallback only.
420
+
421
+ ```bash
422
+ OMNIBOT_SESSION_TOKEN=repair omnibot dom visible --tab-id <TAB_ID>
423
+ OMNIBOT_SESSION_TOKEN=repair omnibot dom click n1 --tab-id <TAB_ID>
424
+ OMNIBOT_SESSION_TOKEN=repair omnibot dom dblclick n1 --tab-id <TAB_ID>
425
+ OMNIBOT_SESSION_TOKEN=repair omnibot dom scroll n1 --dy 800 --tab-id <TAB_ID>
426
+ ```
427
+
428
+ Preferred pattern: See `fallback-operations.md#dom-fallback`.
429
+ Fallback relation: After selector failure and before mouse fallback.
430
+
431
+ ### execute-js
432
+
433
+ Purpose: Run arbitrary JavaScript in the page.
434
+ Usage tier: Tier 6 fallback only. Do not use first.
435
+
436
+ ```bash
437
+ OMNIBOT_SESSION_TOKEN=repair omnibot execute-js "return location.href" --tab-id <TAB_ID>
438
+ OMNIBOT_SESSION_TOKEN=repair omnibot execute-js --file /tmp/repair.js --tab-id <TAB_ID>
439
+ ```
440
+
441
+ Preferred pattern: See `fallback-operations.md#javascript-fallback`.
442
+ Fallback relation: After semantic, refs, selector, DOM, and mouse are insufficient. Valid examples include CSS-only dropdowns where the trigger exists but option refs are absent from `snapshot -i`.
443
+
444
+ ### cdp
445
+
446
+ Purpose: Send raw Chrome DevTools Protocol commands.
447
+ Usage tier: Tier 7 fallback and inspection only.
448
+
449
+ ```bash
450
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot cdp Runtime.evaluate '{"expression":"document.title"}' --tab-id <TAB_ID>
451
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot cdp DOM.getDocument '{"depth":1}' --tab-id <TAB_ID>
452
+ ```
453
+
454
+ Preferred pattern: See `fallback-operations.md#raw-cdp-fallback` and `debugging-and-evidence.md#cdp-inspection`.
455
+ Fallback relation: Last resort.
456
+
457
+ ## Navigation & Tabs
458
+
459
+ ### navigate / open / goto
460
+
461
+ Purpose: Navigate or open pages. New-tab forms return a tab id. Same-tab navigation requires an explicit target tab id. There is no CLI current-tab state.
462
+
463
+ ```bash
464
+ OMNIBOT_SESSION_TOKEN=research omnibot navigate https://example.com
465
+ OMNIBOT_SESSION_TOKEN=research omnibot navigate https://example.com --same-tab --tab-id <TAB_ID>
466
+ OMNIBOT_SESSION_TOKEN=research omnibot open https://example.com
467
+ OMNIBOT_SESSION_TOKEN=research omnibot goto https://example.com --tab-id <TAB_ID>
468
+ ```
469
+
470
+ Preferred pattern: See `operation-patterns.md#navigation` and `session-and-tabs.md#tab-explicit`.
471
+ Fallback relation: Verify with `get url --tab-id <TAB_ID>` before continuing.
472
+
473
+ ### close / back / forward / reload / pushstate
474
+
475
+ Purpose: Change tab lifecycle or history state.
476
+
477
+ ```bash
478
+ OMNIBOT_SESSION_TOKEN=research omnibot close <TAB_ID>
479
+ OMNIBOT_SESSION_TOKEN=research omnibot back --tab-id <TAB_ID>
480
+ OMNIBOT_SESSION_TOKEN=research omnibot forward --tab-id <TAB_ID>
481
+ OMNIBOT_SESSION_TOKEN=research omnibot reload --tab-id <TAB_ID>
482
+ OMNIBOT_SESSION_TOKEN=research omnibot pushstate /dashboard --tab-id <TAB_ID>
483
+ ```
484
+
485
+ Preferred pattern: See `operation-patterns.md#navigation`.
486
+ Fallback relation: Verify URL or page state after the action.
487
+
488
+ ### tab
489
+
490
+ Purpose: Manage browser tabs.
491
+
492
+ ```bash
493
+ OMNIBOT_SESSION_TOKEN=research omnibot tab list
494
+ OMNIBOT_SESSION_TOKEN=research omnibot tab new https://docs.example.com --label docs
495
+ OMNIBOT_SESSION_TOKEN=research omnibot tab close docs
496
+ ```
497
+
498
+ Preferred pattern: See `session-and-tabs.md#tab-explicit`.
499
+ Removed: `tab switch` and `tab focus` are no longer available. Use explicit `--tab-id` on every page-state command.
500
+
501
+ ### window / frame
502
+
503
+ Purpose: Manage windows and frames.
504
+
505
+ ```bash
506
+ OMNIBOT_SESSION_TOKEN=research omnibot window new
507
+ OMNIBOT_SESSION_TOKEN=research omnibot frame main
508
+ ```
509
+
510
+ ## Waiting & Batch
511
+
512
+ ### wait
513
+
514
+ Purpose: Wait for time, selector, text, URL, load state, or JavaScript condition.
515
+
516
+ ```bash
517
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait "#ready" --tab-id <TAB_ID>
518
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait "#spinner" --state hidden --tab-id <TAB_ID>
519
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait --text "Welcome" --tab-id <TAB_ID>
520
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait --url "/dashboard" --tab-id <TAB_ID>
521
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait --load domcontentloaded --tab-id <TAB_ID>
522
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait --load networkidle --tab-id <TAB_ID>
523
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait --fn "window.appReady === true" --tab-id <TAB_ID>
524
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait 500 --tab-id <TAB_ID>
525
+ ```
526
+
527
+ Preferred pattern: See `operation-patterns.md#wait`.
528
+ Fallback relation: Prefer condition waits over shell sleep. Fixed-time waits like `wait 500` are diagnostic or last resort only.
529
+
530
+ ### batch
531
+
532
+ Purpose: Send short extension/CDP command arrays as JSON or from a file. Batch is not a wrapper for normal CLI commands such as `snapshot` or `click`.
533
+
534
+ ```bash
535
+ OMNIBOT_SESSION_TOKEN=research omnibot batch '[{"cmd":"cdp","method":"Runtime.evaluate","params":{"expression":"document.title","returnByValue":true}}]' --tab-id <TAB_ID>
536
+ OMNIBOT_SESSION_TOKEN=research omnibot batch --file /tmp/omnibot-batch.json --tab-id <TAB_ID>
537
+ ```
538
+
539
+ Preferred pattern: See `operation-patterns.md#batch`.
540
+ Fallback relation: Not a substitute for verification.
541
+
542
+ ## Debugging
543
+
544
+ ### screenshot
545
+
546
+ Purpose: Capture visual evidence from a browser tab.
547
+
548
+ ```bash
549
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot screenshot --tab-id <TAB_ID> -o /tmp/omni-shot.png
550
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot screenshot --annotate --tab-id <TAB_ID> -o /tmp/omni-annotated.png
551
+ ```
552
+
553
+ Preferred pattern: See `debugging-and-evidence.md#screenshot`.
554
+ Fallback relation: Evidence collection, not operation fallback.
555
+
556
+ ### console
557
+
558
+ Purpose: Read or clear browser console evidence.
559
+
560
+ ```bash
561
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console logs --tab-id <TAB_ID>
562
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console errors --tab-id <TAB_ID>
563
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console clear --tab-id <TAB_ID>
564
+ ```
565
+
566
+ Preferred pattern: See `debugging-and-evidence.md#console`.
567
+ Fallback relation: Evidence collection, not operation fallback. `console errors` currently uses the console log collection path; verify level filtering in output before treating it as error-only evidence.
568
+
569
+ ### network
570
+
571
+ Purpose: Capture and inspect CDP Network events buffered by the Omnibot browser extension.
572
+
573
+ ```bash
574
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network clear --tab-id <TAB_ID>
575
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network start --tab-id <TAB_ID>
576
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network stop --tab-id <TAB_ID>
577
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network logs --tab-id <TAB_ID>
578
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network summary --tab-id <TAB_ID>
579
+ ```
580
+
581
+ Raw `cdp Network.enable` is not a substitute for `network start` because raw `cdp` does not by itself expose a persistent event log to the agent.
582
+
583
+ Preferred pattern: See `debugging-and-evidence.md#network-capture`.
584
+ Fallback relation: Evidence collection, not operation fallback.
585
+
586
+ ## Browser Capabilities
587
+
588
+ ### clipboard
589
+
590
+ Purpose: Read or write browser clipboard.
591
+
592
+ ```bash
593
+ OMNIBOT_SESSION_TOKEN=research omnibot clipboard read --tab-id <TAB_ID>
594
+ OMNIBOT_SESSION_TOKEN=research omnibot clipboard write "text" --tab-id <TAB_ID>
595
+ ```
596
+
597
+ Preferred pattern: See `operation-patterns.md#extraction`.
598
+ Fallback relation: Use only when clipboard is part of the browser task.
599
+
600
+ ### viewport
601
+
602
+ Purpose: Read or set viewport size.
603
+
604
+ ```bash
605
+ OMNIBOT_SESSION_TOKEN=visual omnibot viewport get --tab-id <TAB_ID>
606
+ OMNIBOT_SESSION_TOKEN=visual omnibot viewport set 1280 720 --tab-id <TAB_ID>
607
+ ```
608
+
609
+ Preferred pattern: Set explicit viewport before visual verification if layout matters.
610
+ Fallback relation: Not a fallback command.
611
+
612
+ ### assets
613
+
614
+ Purpose: List or export page resources.
615
+
616
+ ```bash
617
+ OMNIBOT_SESSION_TOKEN=extract omnibot assets list --tab-id <TAB_ID>
618
+ OMNIBOT_SESSION_TOKEN=extract omnibot assets export -o /tmp/assets.zip --tab-id <TAB_ID>
619
+ ```
620
+
621
+ Preferred pattern: See `operation-patterns.md#extraction`.
622
+ Fallback relation: Use after page content indicates assets are needed.
623
+
624
+ ## Visibility & Sessions
625
+
626
+ ### visibility
627
+
628
+ Purpose: Inspect or set automation browser visibility mode. `visibility launch` currently reports planned configuration only; it does not launch a browser.
629
+
630
+ ```bash
631
+ omnibot visibility status
632
+ omnibot visibility set background
633
+ omnibot visibility set visible
634
+ omnibot visibility launch headless --user-data-dir /tmp/omnibot-headless
635
+ ```
636
+
637
+ Preferred pattern: See `session-and-tabs.md#visibility`.
638
+ Fallback relation: Headless does not inherit existing user login state. Treat `visibility launch` status `planned` as not launched.
639
+
640
+ ### browser
641
+
642
+ Purpose: Manage browser runtime ownership.
643
+
644
+ ```bash
645
+ OMNIBOT_SESSION_TOKEN=research omnibot browser list
646
+ OMNIBOT_SESSION_TOKEN=research omnibot browser current
647
+ OMNIBOT_SESSION_TOKEN=research omnibot browser claim 123
648
+ OMNIBOT_SESSION_TOKEN=research omnibot browser release 123
649
+ ```
650
+
651
+ Preferred pattern: See `session-and-tabs.md#browser-claimrelease`.
652
+ Fallback relation: Use in multi-browser or multi-runtime scenarios.
653
+
654
+ ### session
655
+
656
+ Purpose: Name or list Omnibot workflow context state for the current `OMNIBOT_SESSION_TOKEN`. This does not switch tabs, preserve login, or replace `--tab-id`.
657
+
658
+ ```bash
659
+ OMNIBOT_SESSION_TOKEN=checkout omnibot session name "checkout"
660
+ OMNIBOT_SESSION_TOKEN=checkout omnibot session list
661
+ ```
662
+
663
+ Preferred pattern: See `session-and-tabs.md#session-first`.
664
+ Fallback relation: Not a fallback command.
665
+
666
+ ## Recording & Trace
667
+
668
+ ### record / replay / trace
669
+
670
+ Purpose: Capture, replay, or trace workflows for evidence.
671
+
672
+ ```bash
673
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot record start
674
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot record stop -o flow.json
675
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot replay flow.json
676
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot trace start
677
+ OMNIBOT_SESSION_TOKEN=debug-checkout omnibot trace stop -o trace.zip
678
+ ```
679
+
680
+ Preferred pattern: See `debugging-and-evidence.md#record-and-replay` and `debugging-and-evidence.md#trace`.
681
+ Fallback relation: Evidence collection, not operation fallback.
682
+
683
+ ## Skills & License
684
+
685
+ ### skills install / skills path
686
+
687
+ Purpose: Install packaged omnibot skills or show the packaged skills path.
688
+
689
+ ```bash
690
+ omnibot skills install --agent hermes --profile nuwa
691
+ omnibot skills install --agent opencode
692
+ omnibot skills install --agent claude
693
+ omnibot skills install --agent codex
694
+ omnibot skills path
695
+ ```
696
+
697
+ Preferred pattern: See `runtime-and-status.md#skills-path`.
698
+ Fallback relation: Not a fallback command.
699
+
700
+ ### license status
701
+
702
+ Purpose: Inspect license status.
703
+
704
+ ```bash
705
+ omnibot license status
706
+ ```
707
+
708
+ Preferred pattern: See `runtime-and-status.md#startup-check`.
709
+ Fallback relation: Not a fallback command.