opera-browser-cli 0.1.34 → 0.1.36

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.
package/README.md CHANGED
@@ -112,7 +112,7 @@ OPERA_CLI_BROWSER_URL=http://127.0.0.1:9222 opera-browser-cli open https://examp
112
112
 
113
113
  ```
114
114
  ┌───────────────────────┐
115
- │ opera-browser-cli │ CLI — parse args, format output
115
+ │ opera-browser-cli │ CLI — parse args, format output
116
116
  └──────────┬────────────┘
117
117
  │ HTTP (localhost:9225)
118
118
 
@@ -122,7 +122,7 @@ OPERA_CLI_BROWSER_URL=http://127.0.0.1:9222 opera-browser-cli open https://examp
122
122
  │ stdio
123
123
 
124
124
  ┌───────────────────────┐
125
- │ opera-devtools-mcp │ Headless Chrome via DevTools Protocol
125
+ │ opera-devtools-mcp │ Headless Chrome via DevTools Protocol
126
126
  └───────────────────────┘
127
127
  ```
128
128
 
@@ -136,7 +136,7 @@ OPERA_CLI_BROWSER_URL=http://127.0.0.1:9222 opera-browser-cli open https://examp
136
136
  ### Navigation
137
137
 
138
138
  | Command | Description |
139
- | ----------------- | -------------------------------------------- |
139
+ |-------------------|----------------------------------------------|
140
140
  | `open <url>` | Navigate to URL and snapshot |
141
141
  | `snapshot` | Capture current page state |
142
142
  | `screenshot <p>` | Save a screenshot to a file |
@@ -156,7 +156,7 @@ opera-browser-cli eval "(() => { const rows = [...document.querySelectorAll('tr'
156
156
  ### Interaction
157
157
 
158
158
  | Command | Description |
159
- | -------------------------- | ------------------------------ |
159
+ |----------------------------|--------------------------------|
160
160
  | `click @<uid>` | Click an element by ref |
161
161
  | `fill @<uid> <text>` | Fill a form field |
162
162
  | `type <text>` | Type text at current focus |
@@ -170,7 +170,7 @@ opera-browser-cli eval "(() => { const rows = [...document.querySelectorAll('tr'
170
170
  ### Page Management
171
171
 
172
172
  | Command | Description |
173
- | ----------------- | --------------------------- |
173
+ |-------------------|-----------------------------|
174
174
  | `pages` | List all open tabs |
175
175
  | `newpage <url>` | Open a new tab |
176
176
  | `selectpage <id>` | Switch to a tab by ID |
@@ -180,13 +180,13 @@ opera-browser-cli eval "(() => { const rows = [...document.querySelectorAll('tr'
180
180
  ### Emulation
181
181
 
182
182
  | Command | Description |
183
- | --------- | ------------------------------- |
183
+ |-----------|---------------------------------|
184
184
  | `emulate` | Emulate device/network/viewport |
185
185
 
186
186
  ### DevTools Debugging
187
187
 
188
188
  | Command | Description |
189
- | ------------------ | ------------------------------ |
189
+ |--------------------|--------------------------------|
190
190
  | `console` | List console messages |
191
191
  | `console-get <id>` | Get a specific console message |
192
192
  | `network` | List network requests |
@@ -195,7 +195,7 @@ opera-browser-cli eval "(() => { const rows = [...document.querySelectorAll('tr'
195
195
  ### Performance
196
196
 
197
197
  | Command | Description |
198
- | --------------------------- | ----------------------------- |
198
+ |-----------------------------|-------------------------------|
199
199
  | `lighthouse` | Run a Lighthouse audit |
200
200
  | `perf-start` | Start a performance trace |
201
201
  | `perf-stop` | Stop the performance trace |
@@ -204,19 +204,19 @@ opera-browser-cli eval "(() => { const rows = [...document.querySelectorAll('tr'
204
204
 
205
205
  ### Opera AI
206
206
 
207
- | Command | Description | Requires |
208
- | ------------------- | --------------------------------------------- | -------------- |
209
- | `chat <prompt>` | Send a chat message to Opera's built-in AI | Any Opera |
210
- | `invoke-do <prompt>`| Ask the AI to perform a complex browsing task | Opera Neon |
211
- | `make <prompt>` | Ask the AI to build a webpage or app | Opera Neon |
212
- | `research <prompt>` | Ask the AI to research a topic in depth | Opera Neon |
207
+ | Command | Description | Requires |
208
+ |----------------------|-----------------------------------------------|------------|
209
+ | `chat <prompt>` | Send a chat message to Opera's built-in AI | Any Opera |
210
+ | `invoke-do <prompt>` | Ask the AI to perform a complex browsing task | Opera Neon |
211
+ | `make <prompt>` | Ask the AI to build a webpage or app | Opera Neon |
212
+ | `research <prompt>` | Ask the AI to research a topic in depth | Opera Neon |
213
213
 
214
214
  `research` accepts `--type local` (default), `--type one-minute`, or `--type deep`.
215
215
 
216
216
  ### Configuration
217
217
 
218
218
  | Command | Description |
219
- | -------- | ------------------------------------------------ |
219
+ |----------|--------------------------------------------------|
220
220
  | `setup` | Interactive first-time setup (browser path, etc) |
221
221
  | `doctor` | Check configuration and environment |
222
222
  | `logs` | Show bridge server logs |
@@ -224,7 +224,7 @@ opera-browser-cli eval "(() => { const rows = [...document.querySelectorAll('tr'
224
224
  ### Bridge
225
225
 
226
226
  | Command | Description |
227
- | ------- | ----------------------- |
227
+ |---------|-------------------------|
228
228
  | `start` | Start the bridge server |
229
229
  | `stop` | Stop the bridge server |
230
230
 
@@ -235,7 +235,7 @@ session is active or the no-session status/help block when one is not.
235
235
  ### Flags
236
236
 
237
237
  | Flag | Description |
238
- | --------------------------- | ------------------------------------------- |
238
+ |-----------------------------|---------------------------------------------|
239
239
  | `--help` | Show usage information |
240
240
  | `-v`, `-V`, `--version` | Show the installed CLI version |
241
241
  | `--full` | Show complete output without truncation |
@@ -263,21 +263,21 @@ session is active or the no-session status/help block when one is not.
263
263
 
264
264
  ## Configuration
265
265
 
266
- | Variable | Default | Purpose |
267
- | --- | --- | --- |
268
- | `OPERA_CLI_PORT` | `9225` | Bridge server port |
269
- | `OPERA_CLI_MCP_BIN` | _(bundled `opera-devtools-mcp`)_ | Override the MCP server binary |
270
- | `OPERA_CLI_EXECUTABLE_PATH` | _(system Chrome)_ | Custom browser binary |
271
- | `OPERA_CLI_BROWSER_URL` | — | Connect to an existing browser instance instead of launching one |
272
- | `OPERA_CLI_USER_DATA_DIR` | — | Persistent Chrome profile directory (skips isolated mode) |
273
- | `OPERA_CLI_HEADED` | — | Set to `1` to run in headed (visible) mode |
274
- | `OPERA_CLI_CHROME_ARGS` | — | Extra Chrome flags, space-separated |
275
- | `OPERA_CLI_DISABLE_HOOKS` | — | Set to `1` to skip auto-installing session hooks |
266
+ | Variable | Default | Purpose |
267
+ |-----------------------------|----------------------------------|------------------------------------------------------------------|
268
+ | `OPERA_CLI_PORT` | `9225` | Bridge server port |
269
+ | `OPERA_CLI_MCP_BIN` | _(bundled `opera-devtools-mcp`)_ | Override the MCP server binary |
270
+ | `OPERA_CLI_EXECUTABLE_PATH` | _(system Chrome)_ | Custom browser binary |
271
+ | `OPERA_CLI_BROWSER_URL` | — | Connect to an existing browser instance instead of launching one |
272
+ | `OPERA_CLI_USER_DATA_DIR` | — | Persistent Chrome profile directory (skips isolated mode) |
273
+ | `OPERA_CLI_HEADED` | — | Set to `1` to run in headed (visible) mode |
274
+ | `OPERA_CLI_CHROME_ARGS` | — | Extra Chrome flags, space-separated |
275
+ | `OPERA_CLI_DISABLE_HOOKS` | — | Set to `1` to skip auto-installing session hooks |
276
276
 
277
277
  State is stored in `~/.opera-browser-cli/`:
278
278
 
279
279
  | File | Purpose |
280
- | ------------ | ---------------------------------- |
280
+ |--------------|------------------------------------|
281
281
  | `bridge.pid` | PID and port of the running bridge |
282
282
 
283
283
  ### Session Hooks
@@ -288,6 +288,22 @@ Set `OPERA_CLI_DISABLE_HOOKS=1` to skip that auto-install behavior.
288
288
 
289
289
  Development entrypoints such as `npm run dev` and `bin/opera-browser-cli.ts` do not modify those hook files.
290
290
 
291
+ ## Docker / OpenClaw
292
+
293
+ A ready-made Docker setup runs `opera-browser-cli` as a tool inside an
294
+ [OpenClaw](https://openclaw.ai) agent gateway, with a headless Chrome sidecar handling
295
+ the browser. No local browser or Node.js install is required on the host — Docker is
296
+ the only prerequisite. The skill is registered automatically so OpenClaw agents can
297
+ invoke `opera-browser-cli` commands directly.
298
+
299
+ The `docker/` directory ships with the npm package:
300
+
301
+ ```sh
302
+ cd "$(npm root -g)/opera-browser-cli/openclaw"
303
+ ```
304
+
305
+ See [`openclaw/README.md`](openclaw/README.md) for the full setup guide.
306
+
291
307
  ## Local Setup (Full Stack)
292
308
 
293
309
  Both `opera-devtools-mcp` and `opera-browser-cli` need to be built and linked so they're available in PATH.
@@ -328,6 +344,45 @@ export OPERA_CLI_MCP_BIN=opera-devtools-mcp
328
344
  export OPERA_CLI_HEADED=1
329
345
  ```
330
346
 
347
+ ## Benchmarks
348
+
349
+ ### Page Snapshot
350
+
351
+ Runs snapshot command on 50 static pages (Wikipedia, GitHub, MDN, Python docs, RFC Editor) and counts output tokens via tiktoken. No LLM involved — purely mechanical measurement.
352
+
353
+ **Results (50 runs each):**
354
+
355
+ | Condition | Avg tokens | Median tokens | p95 tokens |
356
+ |-----------------|------------|---------------|------------|
357
+ | `opera-compact` | 60.6k | 24.3k | 256.1k |
358
+ | `mcp-raw` | 94.7k | 45.0k | 391.3k |
359
+ | `opera-raw` | 94.9k | 45.1k | 381.4k |
360
+ | `axi` | 98.5k | 46.6k | 396.9k |
361
+
362
+ `--full` variants (no char limit) are also measured; see the [detailed README](page-token-benchmark/README.md) and [results report](page-token-benchmark/results/report.md).
363
+
364
+ ---
365
+
366
+ ### Agentic Use
367
+
368
+ An LLM agent completes 7 browser tasks (adapted from the [axi bench-browser benchmark](https://github.com/kunchenguid/axi/tree/main/bench-browser)) across 4 conditions. Each run is graded pass/fail by an LLM judge. Captures input tokens, snapshot size, wall time, and tool call count.
369
+ The agent was selecting each tool with or without `--full` flag, depending on the context.
370
+
371
+ **Results (35 runs each, 5 repeats × 7 tasks):**
372
+
373
+ | Condition | Pass [%] | Avg input length [tokens] | Avg snapshot length [chars] | Avg task time [seconds] | Avg tool calls |
374
+ |---------------|----------|---------------------------|-----------------------------|-------------------------|----------------|
375
+ | opera-compact | 100% | 36.3k | 83.1k | 6.8 | 1.4 |
376
+ | opera-raw | 100% | 107.5k | 198.1k | 8.5 | 1.6 |
377
+ | axi | 100% | 102.2k | 203.9k | 9.8 | 1.5 |
378
+ | mcp-raw | 100% | 179.2k | 218.7k | 9.4 | 2.1 |
379
+
380
+ > opera-compact saves **80%** total tokens vs mcp-raw baseline.
381
+
382
+ See the [detailed README](snapshot-agentic-use/README.md) and [results report](snapshot-agentic-use/results/v6/report.md).
383
+
384
+ ---
385
+
331
386
  ## Development
332
387
 
333
388
  ```sh
package/SKILL.md CHANGED
@@ -1,14 +1,16 @@
1
1
  ---
2
2
  name: opera-browser-cli
3
3
  description: Browser automation and web interaction using the opera-browser-cli tool. Use for navigating pages, clicking elements, filling forms, taking screenshots, inspecting console/network, running performance audits, and Opera AI features (chat available on any Opera browser; invoke-do, make, research require Opera Neon).
4
+ metadata: {"openclaw": {"requires": {"bins": ["opera-browser-cli"]}}}
4
5
  ---
5
6
 
6
7
  # Skill: opera-browser-cli Browser Automation
7
8
 
8
- `opera-browser-cli` controls a Opera browser browser session.
9
+ `opera-browser-cli` controls an Opera browser session.
9
10
 
10
11
  - **Standard commands** (`open`, `click`, `fill`, `screenshot`, etc.) — work with any Opera browser session.
11
- - **`chat`** — available on any Opera browser.
12
+ - **`chat`** — available on any Opera browser. Use `--model <id>` to select an AI model.
13
+ - **`models`** — list available AI models for chat (shows IDs and which is the default).
12
14
  - **`invoke-do`, `make`, `research`** — require **Opera Neon** with an active sign-in.
13
15
 
14
16
  Run `opera-browser-cli --help` for the full command list, or `opera-browser-cli <command> --help` for per-command flags and examples.
@@ -17,4 +19,34 @@ Run `opera-browser-cli --help` for the full command list, or `opera-browser-cli
17
19
  opera-browser-cli open https://example.com # start here — navigate and snapshot the page
18
20
  ```
19
21
 
20
- If a user hits `Opera: user is not signed in` on an AI command, suggest they sign in to their Opera account. `invoke-do`, `make`, and `research` require Opera Neon with an active sign-in. Run `opera-browser-cli setup` or `opera-browser-cli doctor` to configure or diagnose.
22
+ ## Snapshot format
23
+
24
+ By default snapshots are **compact**: role names are shortened, refs use `@PAGE.ELEM` form (e.g. `@2.4`), headings become markdown, and redundant ARIA attributes are stripped. Pass `--raw` to any snapshot-returning command to get the unprocessed MCP output instead.
25
+
26
+ Repeated or very long URLs in compact output are replaced with `$uN` tokens. A `urls:` trailer at the end of the snapshot lists what each token resolves to.
27
+
28
+ ```
29
+ @2.4 link "Download" url=$u1
30
+ ...
31
+ urls:
32
+ $u1 /downloads/installer-v3.2.1-x86_64.tar.gz
33
+ ```
34
+
35
+ Use `opera-browser-cli url $uN` or `opera-browser-cli url @ref` to resolve a token or element ref to its full URL without taking a new snapshot.
36
+
37
+ ## Flags available on snapshot-returning commands
38
+
39
+ | Flag | Effect |
40
+ |----------|--------------------------------------------------------------|
41
+ | `--full` | Show complete snapshot without truncation |
42
+ | `--raw` | Unprocessed MCP output (disables compact format and URL LUT) |
43
+
44
+ Commands that accept these flags: `open`, `snapshot`, `click`, `fill`, `type`, `press`, `scroll`, `back`, `hover`, `drag`, `fillform`, `upload`, `newpage`, `selectpage`.
45
+
46
+ ## Running inside an OpenClaw container
47
+
48
+ To wire this CLI into a Docker-based OpenClaw setup (Chromium sidecar, shared netns, config bootstrap), see [`openclaw/README.md`](openclaw/README.md).
49
+
50
+ ## Sign-in errors
51
+
52
+ If you hit `Opera: user is not signed in` on an AI command, suggest signing in to their Opera account. Run `opera-browser-cli setup` or `opera-browser-cli doctor` to configure or diagnose.
@@ -3,15 +3,24 @@
3
3
  *
4
4
  * Spawns opera-devtools-mcp as a child process and maintains a single
5
5
  * persistent MCP session. Exposes a simple HTTP API:
6
- * POST /call { name, args } → { result }
7
- * GET /tools → [{ name, description }]
8
- * GET /health → { status: "ok" }
6
+ * POST /call { name, args } → { result }
7
+ * GET /tools → [{ name, description }]
8
+ * GET /health → { status: "ok" }
9
+ * GET /last-snapshot → { raw, pageUrl, capturedAt } | 404
9
10
  *
10
11
  * Writes a PID file to ~/.opera-browser-cli/bridge.pid on startup.
11
12
  */
12
13
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
13
14
  import type { RequestOptions } from "@modelcontextprotocol/sdk/shared/protocol.js";
14
15
  import { type IncomingMessage, type Server, type ServerResponse } from "node:http";
16
+ export interface LastSnapshotCache {
17
+ raw: string;
18
+ pageUrl: string | null;
19
+ capturedAt: number;
20
+ }
21
+ export declare function getLastSnapshotCache(): LastSnapshotCache | null;
22
+ /** Reset the snapshot cache — for use in tests only. */
23
+ export declare function resetLastSnapshotCache(): void;
15
24
  export interface BridgeContentBlock {
16
25
  type: string;
17
26
  text?: string;
@@ -3,9 +3,10 @@
3
3
  *
4
4
  * Spawns opera-devtools-mcp as a child process and maintains a single
5
5
  * persistent MCP session. Exposes a simple HTTP API:
6
- * POST /call { name, args } → { result }
7
- * GET /tools → [{ name, description }]
8
- * GET /health → { status: "ok" }
6
+ * POST /call { name, args } → { result }
7
+ * GET /tools → [{ name, description }]
8
+ * GET /health → { status: "ok" }
9
+ * GET /last-snapshot → { raw, pageUrl, capturedAt } | 404
9
10
  *
10
11
  * Writes a PID file to ~/.opera-browser-cli/bridge.pid on startup.
11
12
  */
@@ -14,6 +15,7 @@ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"
14
15
  import { LoggingMessageNotificationSchema } from "@modelcontextprotocol/sdk/types.js";
15
16
  import { createServer, } from "node:http";
16
17
  import { existsSync, mkdirSync, unlinkSync, writeFileSync } from "node:fs";
18
+ import { extractPageOrigin } from "./snapshot.js";
17
19
  import { createRequire } from "node:module";
18
20
  import { dirname, join, resolve } from "node:path";
19
21
  import { homedir } from "node:os";
@@ -27,6 +29,17 @@ const OPERA_AI_TOOLS = new Set([
27
29
  "opera_research",
28
30
  "opera_make",
29
31
  ]);
32
+ // The most recent raw snapshot text returned by take_snapshot.
33
+ // Shared across all concurrent HTTP requests; last write wins.
34
+ // Survives navigation — callers use pageUrl to detect drift if needed.
35
+ let lastSnapshot = null;
36
+ export function getLastSnapshotCache() {
37
+ return lastSnapshot;
38
+ }
39
+ /** Reset the snapshot cache — for use in tests only. */
40
+ export function resetLastSnapshotCache() {
41
+ lastSnapshot = null;
42
+ }
30
43
  export async function isBridgeClientConnected(client) {
31
44
  try {
32
45
  await client.listTools();
@@ -154,10 +167,17 @@ async function handleCallRequest(client, req, res, captureNextId) {
154
167
  }
155
168
  return;
156
169
  }
157
- // Non-streaming path (unchanged).
170
+ // Non-streaming path.
158
171
  try {
159
172
  const result = await client.callTool({ name: payload.name, arguments: payload.args }, undefined);
160
173
  const text = extractToolText(getToolContent(result));
174
+ if (payload.name === "take_snapshot") {
175
+ lastSnapshot = {
176
+ raw: text,
177
+ pageUrl: extractPageOrigin(text),
178
+ capturedAt: Date.now(),
179
+ };
180
+ }
161
181
  res.statusCode = 200;
162
182
  res.end(JSON.stringify({ result: text }));
163
183
  }
@@ -177,6 +197,15 @@ export async function handleBridgeRequest(client, req, res, captureNextId) {
177
197
  }
178
198
  return;
179
199
  }
200
+ if (req.method === "GET" && req.url === "/last-snapshot") {
201
+ if (lastSnapshot === null) {
202
+ writeJson(res, 404, { error: "no snapshot cached" });
203
+ }
204
+ else {
205
+ writeJson(res, 200, lastSnapshot);
206
+ }
207
+ return;
208
+ }
180
209
  try {
181
210
  if (req.method === "GET" && req.url === "/tools") {
182
211
  await handleToolsRequest(client, res);
@@ -229,6 +258,9 @@ export function buildTransportArgs() {
229
258
  args.push("--ignore-default-chrome-arg=--disable-extensions");
230
259
  args.push("--ignore-default-chrome-arg=--disable-component-extensions-with-background-pages");
231
260
  args.push("--show-component-extension-options");
261
+ // Allow external extension loader and download services
262
+ args.push("--ignore-default-chrome-arg=--disable-default-apps");
263
+ args.push("--ignore-default-chrome-arg=--disable-background-networking");
232
264
  }
233
265
  else {
234
266
  args.push("--isolated");
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"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"}
package/dist/src/cli.d.ts CHANGED
@@ -3,7 +3,7 @@ export type MainOptions = {
3
3
  argv?: string[];
4
4
  stdout?: CliStdout;
5
5
  };
6
- export declare const TOP_HELP = "usage: opera-browser-cli [command] [args] [flags]\ncommands[41]:\n open <url>, snapshot, screenshot <path>, click @<uid>, fill @<uid> <text>,\n type <text>, press <key>, scroll <dir>, back, wait <ms|text>, eval <js>,\n run,\n hover @<uid>, drag @<from> @<to>, fillform @<uid>=<val>..., dialog <action>,\n upload @<uid> <path>, pages, newpage <url>, selectpage <id>, closepage <id>,\n resize <w> <h>, emulate, console, console-get <id>, network,\n network-get [id], lighthouse, perf-start, perf-stop,\n perf-insight <set> <name>, heap <path>, start, stop,\n chat <prompt>, invoke-do <prompt>, make <prompt>, research <prompt>,\n setup, logs, doctor\n\nflags[2]:\n --help, -v/-V/--version\n\nenvironment:\n OPERA_CLI_HEADED Set to 1 to run Chrome in headed (visible) mode\n OPERA_CLI_CHROME_ARGS Whitespace-separated Chrome flags forwarded to the browser\n (no shell-style quoting; flags with spaces are not supported)\n e.g. \"--enable-gpu --ignore-gpu-blocklist\"\n OPERA_CLI_PORT Bridge server port (default: 9225)\n OPERA_CLI_BROWSER_URL Connect to an existing Chrome instance instead of launching one\n e.g. \"http://127.0.0.1:9222\"\n OPERA_CLI_USER_DATA_DIR Persistent Chrome profile directory (skips --isolated mode)\n e.g. \"/path/to/.chrome-profile\"\n OPERA_CLI_EXECUTABLE_PATH Path to a custom browser binary (e.g. Opera Neon)\n OPERA_CLI_DISABLE_HOOKS Set to 1 to skip auto-installing session hooks\n\n Environment variables can also be set in ~/.opera-browser-cli/config (KEY=VALUE, one per line).\n Run `opera-browser-cli setup` to configure interactively.\n\nopera ai:\n chat is available on any Opera browser.\n invoke-do, make, and research require Opera Neon with an active sign-in.\n Run `opera-browser-cli setup` to configure the executable path, or set\n OPERA_CLI_EXECUTABLE_PATH=\"/Applications/Opera Neon.app/Contents/MacOS/Opera\".\n\ngpu:\n Headless Chrome cannot access hardware GPU on most Linux systems.\n For GPU-accelerated WebGL, use headed mode with GPU flags:\n OPERA_CLI_HEADED=1\n OPERA_CLI_CHROME_ARGS=\"--enable-gpu --ignore-gpu-blocklist\"\n For WebGPU, Vulkan must also be enabled (required for the Dawn backend):\n OPERA_CLI_CHROME_ARGS=\"--enable-gpu --ignore-gpu-blocklist --enable-unsafe-webgpu --enable-features=Vulkan\"\n\ntips:\n Pipe output through grep/head to extract specific data from large pages.\n";
6
+ export declare const TOP_HELP = "usage: opera-browser-cli [command] [args] [flags]\ncommands[41]:\n open <url>, snapshot, screenshot <path>, click @<uid>, fill @<uid> <text>,\n type <text>, press <key>, scroll <dir>, back, wait <ms|text>, eval <js>,\n run,\n hover @<uid>, drag @<from> @<to>, fillform @<uid>=<val>..., dialog <action>,\n upload @<uid> <path>, pages, newpage <url>, selectpage <id>, closepage <id>,\n resize <w> <h>, emulate, console, console-get <id>, network,\n network-get [id], lighthouse, perf-start, perf-stop,\n perf-insight <set> <name>, heap <path>, start, stop,\n chat [--model <id>] <prompt>, invoke-do <prompt>, make <prompt>,\n research <prompt>, models,\n setup, logs, doctor\n\nflags[2]:\n --help, -v/-V/--version\n\nenvironment:\n OPERA_CLI_HEADED Set to 1 to run Chrome in headed (visible) mode\n OPERA_CLI_CHROME_ARGS Whitespace-separated Chrome flags forwarded to the browser\n (no shell-style quoting; flags with spaces are not supported)\n e.g. \"--enable-gpu --ignore-gpu-blocklist\"\n OPERA_CLI_PORT Bridge server port (default: 9225)\n OPERA_CLI_BROWSER_URL Connect to an existing Chrome instance instead of launching one\n e.g. \"http://127.0.0.1:9222\"\n OPERA_CLI_USER_DATA_DIR Persistent Chrome profile directory (skips --isolated mode)\n e.g. \"/path/to/.chrome-profile\"\n OPERA_CLI_EXECUTABLE_PATH Path to a custom browser binary (e.g. Opera Neon)\n OPERA_CLI_DISABLE_HOOKS Set to 1 to skip auto-installing session hooks\n\n Environment variables can also be set in ~/.opera-browser-cli/config (KEY=VALUE, one per line).\n Run `opera-browser-cli setup` to configure interactively.\n\nopera ai:\n chat is available on any Opera browser. Use --model to select a model.\n Run \"models\" to list available models.\n invoke-do, make, and research require Opera Neon with an active sign-in.\n Run `opera-browser-cli setup` to configure the executable path, or set\n OPERA_CLI_EXECUTABLE_PATH=\"/Applications/Opera Neon.app/Contents/MacOS/Opera\".\n\ngpu:\n Headless Chrome cannot access hardware GPU on most Linux systems.\n For GPU-accelerated WebGL, use headed mode with GPU flags:\n OPERA_CLI_HEADED=1\n OPERA_CLI_CHROME_ARGS=\"--enable-gpu --ignore-gpu-blocklist\"\n For WebGPU, Vulkan must also be enabled (required for the Dawn backend):\n OPERA_CLI_CHROME_ARGS=\"--enable-gpu --ignore-gpu-blocklist --enable-unsafe-webgpu --enable-features=Vulkan\"\n\ntips:\n Pipe output through grep/head to extract specific data from large pages.\n";
7
7
  export declare function getCommandHelp(command: string): string | null;
8
8
  export interface ScreenshotArgs {
9
9
  filePath: string | null;
@@ -66,6 +66,10 @@ export declare function wrapJsExpression(js: string): string;
66
66
  export declare function formatStopOutput(wasStopped: boolean): string;
67
67
  declare const VALID_RESEARCH_TYPES: readonly ["local", "one-minute", "deep"];
68
68
  type ResearchType = (typeof VALID_RESEARCH_TYPES)[number];
69
+ export declare function parseChatArgs(args: string[]): {
70
+ prompt: string;
71
+ model?: string;
72
+ };
69
73
  export declare function parseResearchArgs(args: string[]): {
70
74
  prompt: string;
71
75
  researchType?: ResearchType;