@omniaibot/win-x64 1.1.2 → 1.1.6

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.
@@ -1 +1 @@
1
- 1.1.2
1
+ 1.1.6
@@ -0,0 +1,189 @@
1
+ ---
2
+ name: omnibot
3
+ description: Use when AI agents need to read, inspect, operate, navigate, debug, or verify browser state through the omnibot CLI and connected Chromium extension.
4
+ compatibility: Requires omnibot v2 CLI daemon and the omnibot Chromium extension connected to 127.0.0.1:18765.
5
+ allowed-tools: Bash
6
+ metadata:
7
+ author: omnibot
8
+ version: "2.1.0"
9
+ ---
10
+
11
+ # Omnibot
12
+
13
+ Omnibot is Browser Infrastructure for AI Agents.
14
+
15
+ It connects Hermes, Claude Code, Codex, OpenCode, and other agent systems to a real Chromium browser through the local omnibot daemon and CLI.
16
+
17
+ This skill is an execution specification for agents. It is not a human command manual.
18
+
19
+ ## When to Use
20
+
21
+ - Use Omnibot when browser runtime state matters: login, cookies, storage, client-side rendering, extensions, or visible user tabs.
22
+ - Use Omnibot when an agent must read rendered pages, click controls, fill forms, upload files, navigate, extract content, or collect evidence.
23
+ - Do not use Omnibot when static files or plain HTTP content already answer the task.
24
+
25
+ ## Core Rules
26
+
27
+ - Reliability > Convenience.
28
+ - Explicit State > Implicit State.
29
+ - Pattern > Command.
30
+ - Observe -> Act -> Verify.
31
+ - Fallback is allowed, but never first.
32
+ - Do not use `execute-js` first.
33
+ - Prefer semantic locators and `snapshot -i` refs before selectors.
34
+ - Prefer condition-based `wait` over shell sleep.
35
+ - Parse JSON output from commands that return JSON.
36
+ - Do not claim success without verification evidence.
37
+
38
+ ## Session + Tab Double Lock
39
+
40
+ Every page-state workflow must use both controls:
41
+
42
+ - `OMNIBOT_SESSION_TOKEN=<workflow-name>` for workflow isolation.
43
+ - `--tab-id <TAB_ID>` for page targeting.
44
+
45
+ They are not substitutes. Session controls which workflow owns state. Tab ID controls which page receives the command.
46
+
47
+ Do not rely on default tab, active tab, current tab, or prior targeting state. Every page command requires explicit `--tab-id`.
48
+
49
+ Use the same token inside one workflow. Use different tokens for independent workflows.
50
+
51
+ Standard form:
52
+
53
+ ```bash
54
+ OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
55
+ OMNIBOT_SESSION_TOKEN=research omnibot click --tab-id <TAB_ID> @e4
56
+ OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
57
+ ```
58
+
59
+ `@eN` refs are tab-scoped. never reuse `@eN` refs across tabs.
60
+
61
+ The agent dispatch pattern is token + tab-id:
62
+
63
+ 1. Set a stable `OMNIBOT_SESSION_TOKEN`.
64
+ 2. Discover or create the target tab.
65
+ 3. Save the returned tab id.
66
+ 4. Pass `--tab-id <TAB_ID>` on every command that touches page state.
67
+ 5. Run observe -> act -> verify on that same tab.
68
+
69
+ Examples of tab-locked page-state commands:
70
+
71
+ ```bash
72
+ OMNIBOT_SESSION_TOKEN=checkout omnibot get value "input[name=email]" --tab-id <TAB_ID>
73
+ OMNIBOT_SESSION_TOKEN=checkout omnibot find placeholder "Search" --action type --action-value "omnibot" --tab-id <TAB_ID>
74
+ OMNIBOT_SESSION_TOKEN=checkout omnibot dom dblclick n1 --tab-id <TAB_ID>
75
+ OMNIBOT_SESSION_TOKEN=checkout omnibot clipboard read --tab-id <TAB_ID>
76
+ ```
77
+
78
+ ## Observe -> Act -> Verify
79
+
80
+ All page operations must follow this loop:
81
+
82
+ 1. Observe the current page state.
83
+ 2. Act once using the highest reliable pattern available.
84
+ 3. Verify the expected state change.
85
+
86
+ Click example:
87
+
88
+ ```bash
89
+ OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
90
+ OMNIBOT_SESSION_TOKEN=research omnibot click --tab-id <TAB_ID> @e4
91
+ OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
92
+ ```
93
+
94
+ Read/verify example:
95
+
96
+ ```bash
97
+ OMNIBOT_SESSION_TOKEN=checkout omnibot is enabled "button[type=submit]" --tab-id <TAB_ID>
98
+ OMNIBOT_SESSION_TOKEN=checkout omnibot find role button --name "Submit" --action click --tab-id <TAB_ID>
99
+ OMNIBOT_SESSION_TOKEN=checkout omnibot wait --url "/dashboard" --tab-id <TAB_ID>
100
+ OMNIBOT_SESSION_TOKEN=checkout omnibot get url --tab-id <TAB_ID>
101
+ ```
102
+
103
+ If verification fails, do not repeat blindly. Re-observe, choose the next fallback tier, and verify again.
104
+
105
+ ## Pattern > Command
106
+
107
+ Start from the task, not the command name. Use operation patterns for read, click, fill, select/check, navigation, wait, extraction, upload, and batch.
108
+
109
+ Use fallback tiers only after standard patterns fail. Collect evidence separately from fallback execution. The command reference is only a lookup table; it must not decide behavior.
110
+
111
+ ## Read vs Snapshot Routing
112
+
113
+ Choose by intent before choosing by command name:
114
+
115
+ | Intent | Prefer | Why |
116
+ | --- | --- | --- |
117
+ | Summarize or extract page content, article text, search results, feeds, or long/lazy pages | `read` | Returns clean text/Markdown for agent reasoning. |
118
+ | Quickly observe current visible UI structure before deciding what to do next | `snapshot -i` | Returns actionable refs and page structure for routing. |
119
+ | Find buttons, links, inputs, or refs for a later action | `find` or `snapshot -i` | Produces actionable targets; `read` does not. |
120
+ | Verify one concrete condition | `get`, `is`, or `wait` | Narrow evidence is more reliable than dumping a page. |
121
+
122
+ Do not use `read` as the first step for click/fill workflows unless the user explicitly asked for page content first.
123
+
124
+ ## Quick Routing
125
+
126
+ | Need | Read |
127
+ | --- | --- |
128
+ | Runtime check | `references/runtime-and-status.md` |
129
+ | Reading pages | `references/operation-patterns.md#read` |
130
+ | Clicking | `references/operation-patterns.md#click` |
131
+ | Filling forms | `references/operation-patterns.md#fill` |
132
+ | Select / check | `references/operation-patterns.md#select--check` |
133
+ | Navigation | `references/operation-patterns.md#navigation` |
134
+ | Waiting | `references/operation-patterns.md#wait` |
135
+ | Extraction | `references/operation-patterns.md#extraction` |
136
+ | Upload | `references/operation-patterns.md#upload` |
137
+ | Batch | `references/operation-patterns.md#batch` |
138
+ | Fallback | `references/fallback-operations.md` |
139
+ | Tabs and sessions | `references/session-and-tabs.md` |
140
+ | Debug evidence | `references/debugging-and-evidence.md` |
141
+ | Commands | `references/command-reference.md` |
142
+ | Anti-patterns | `references/anti-patterns.md` |
143
+
144
+ ## Runtime First
145
+
146
+ Before troubleshooting browser behavior, check runtime state:
147
+
148
+ ```bash
149
+ omnibot doctor
150
+ omnibot tabs
151
+ omnibot visibility status
152
+ omnibot browser current
153
+ omnibot license status
154
+ ```
155
+
156
+ If the extension is not connected, open Chrome or Edge with the omnibot extension loaded and keep an HTTP/HTTPS tab open.
157
+
158
+ ## Fallback Discipline
159
+
160
+ Fallback tiers are for completing operations after better patterns fail. They are not debugging shortcuts.
161
+
162
+ Tier order:
163
+
164
+ 1. Semantic `find`.
165
+ 2. `snapshot -i` refs.
166
+ 3. Selectors.
167
+ 4. `dom` fallback.
168
+ 5. `mouse` fallback.
169
+ 6. `execute-js` fallback.
170
+ 7. Raw `cdp` fallback.
171
+
172
+ When entering a lower tier, state why the higher tier failed. After any fallback action, verify with `snapshot`, `get`, `is`, `wait`, or equivalent evidence.
173
+
174
+ ## Debug Evidence
175
+
176
+ Debugging is for evidence. Fallback is for completing operations.
177
+
178
+ Use screenshots, annotated screenshots, console logs, network logs, trace, record/replay, and CDP inspection to explain failures or prove state. Do not treat `execute-js` as ordinary debug output.
179
+
180
+ ## Absolute Prohibitions
181
+
182
+ - Missing `OMNIBOT_SESSION_TOKEN` or missing `--tab-id` on page-state commands.
183
+ - Acting without verify or claiming success without evidence.
184
+ - Using `execute-js` first, raw CSS before semantic find, `@eN` across tabs, implicit tab targeting, or shell sleep instead of `omnibot wait`.
185
+ - Using removed commands: `switch-tab`, `focus-tab`, `tab switch`. These are no longer available.
186
+ - Using `tabs[0]` or the first tab as a target. The first tab is often a user tab or transport tab.
187
+ - Closing user tabs discovered during cleanup. Only close tabs created by the current workflow.
188
+
189
+ See `references/anti-patterns.md` before using shortcuts.
@@ -0,0 +1,37 @@
1
+ # Anti-Patterns
2
+
3
+ | Bad | Why bad | Good |
4
+ | --- | --- | --- |
5
+ | Missing `OMNIBOT_SESSION_TOKEN` | Workflows can share implicit state across agents. | `OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>` |
6
+ | Missing `--tab-id` | The command may target the wrong page. | Pass `--tab-id <TAB_ID>` on every page-state command. |
7
+ | `execute-js` first | JavaScript bypasses standard browser interaction and hides better evidence. | Try semantic find, snapshot refs, selectors, DOM, and mouse first. For CSS-only dropdowns, use JavaScript only after the trigger clicked, options remain absent from `snapshot -i`, and higher tiers cannot complete open-then-select. |
8
+ | Reusing `@eN` across tabs | Refs are tab-scoped and may point to a different element elsewhere. | Take a fresh `snapshot -i --tab-id <TAB_ID>` per tab. |
9
+ | Relying on implicit tab targeting | It is unavailable and unsafe for concurrent workflows. | Use explicit `--tab-id` on every page-state command. |
10
+ | Using sleep instead of wait | Fixed sleeps are flaky and either too short or too slow. | Use `omnibot wait --text`, `--url`, selector state, load state, or `--fn`. |
11
+ | Acting without verify | Command success is not task success. | Run `snapshot`, `get`, `is`, or `wait` after every action. |
12
+ | Claiming success without evidence | The browser may not have changed as expected. | Cite verified URL, text, element state, screenshot, console, or network evidence. |
13
+ | Raw CSS before semantic find | CSS is more brittle and less tied to user intent. | Start with `find role/text/label/placeholder/testid`. |
14
+ | Screenshot when text extraction is enough | Screenshots cost more and are harder to parse. | Use `read` for page content or `get text` for a selector. |
15
+ | Using `read` before an action workflow | `read` returns text, not stable action targets. | Use `find`, `snapshot -i`, `get`, or `is` for click/fill/verify workflows. |
16
+ | Headless expecting existing user login | Headless does not automatically share the user's visible browser session. | Use visible/background mode for existing login or explicitly log in headless. |
17
+ | Mixing multiple workflows in one session token | Agents can overwrite each other's default state. | Use different tokens: `research`, `checkout`, `debug`. |
18
+ | Using default tab state in concurrent agents | There is no default tab. Every page command requires explicit `--tab-id`. | Discover or create a tab, save its id, and pass `--tab-id`. |
19
+ | Not checking doctor/tabs before troubleshooting | You may debug page logic when the runtime is disconnected. | Run `omnibot doctor` and `omnibot tabs` first. |
20
+ | Using `tabs[0]` or the first tab | The first tab is often a user tab or the transport tab, not the workflow target. | Create or identify the intended tab and store its full id. |
21
+ | Treating transport as target | Extension routing may use a different tab than the page being acted on. | Always pass `--tab-id <TAB_ID>` and verify with `get url --tab-id <TAB_ID>`. |
22
+ | Closing discovered user tabs | Cleanup can destroy the user's real work. | Track only tool-created tabs and close only those ids. |
23
+ | Leaving worker-token tabs untracked | Cross-token test tabs can remain open or auto-close later. | Add every worker-created tab id to cleanup tracking. |
24
+
25
+ ## Red Flags
26
+
27
+ - "I can just use the current tab."
28
+ - "This is only one click, no need to verify."
29
+ - "JavaScript is faster."
30
+ - "The ref probably still points to the same element."
31
+ - "A screenshot is enough even though I need text."
32
+ - "Sleep should be fine."
33
+ - "The trigger clicked, so another `find text` should eventually select the option."
34
+ - "`snapshot -i` cannot see the option, so the element must not exist."
35
+ - "This dropdown is custom, so I can start with JavaScript."
36
+
37
+ All of these mean: stop, re-enter the standard pattern, and make state explicit.