@brunosps00/dev-workflow 0.0.6 → 0.0.8

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 (27) hide show
  1. package/bin/dev-workflow.js +11 -4
  2. package/lib/constants.js +11 -0
  3. package/lib/init.js +8 -1
  4. package/lib/install-deps.js +42 -0
  5. package/lib/wrappers.js +8 -2
  6. package/package.json +1 -1
  7. package/scaffold/en/commands/dw-bugfix.md +2 -3
  8. package/scaffold/en/commands/dw-fix-qa.md +1 -2
  9. package/scaffold/en/commands/dw-functional-doc.md +0 -1
  10. package/scaffold/en/commands/dw-run-qa.md +2 -3
  11. package/scaffold/en/commands/dw-run-task.md +1 -2
  12. package/scaffold/pt-br/commands/dw-bugfix.md +2 -3
  13. package/scaffold/pt-br/commands/dw-fix-qa.md +1 -2
  14. package/scaffold/pt-br/commands/dw-functional-doc.md +0 -1
  15. package/scaffold/pt-br/commands/dw-run-qa.md +2 -3
  16. package/scaffold/pt-br/commands/dw-run-task.md +1 -2
  17. package/scaffold/skills/agent-browser/SKILL.md +0 -750
  18. package/scaffold/skills/agent-browser/references/authentication.md +0 -303
  19. package/scaffold/skills/agent-browser/references/commands.md +0 -295
  20. package/scaffold/skills/agent-browser/references/profiling.md +0 -120
  21. package/scaffold/skills/agent-browser/references/proxy-support.md +0 -194
  22. package/scaffold/skills/agent-browser/references/session-management.md +0 -193
  23. package/scaffold/skills/agent-browser/references/snapshot-refs.md +0 -219
  24. package/scaffold/skills/agent-browser/references/video-recording.md +0 -173
  25. package/scaffold/skills/agent-browser/templates/authenticated-session.sh +0 -105
  26. package/scaffold/skills/agent-browser/templates/capture-workflow.sh +0 -69
  27. package/scaffold/skills/agent-browser/templates/form-automation.sh +0 -62
@@ -1,303 +0,0 @@
1
- # Authentication Patterns
2
-
3
- Login flows, session persistence, OAuth, 2FA, and authenticated browsing.
4
-
5
- **Related**: [session-management.md](session-management.md) for state persistence details, [SKILL.md](../SKILL.md) for quick start.
6
-
7
- ## Contents
8
-
9
- - [Import Auth from Your Browser](#import-auth-from-your-browser)
10
- - [Persistent Profiles](#persistent-profiles)
11
- - [Session Persistence](#session-persistence)
12
- - [Basic Login Flow](#basic-login-flow)
13
- - [Saving Authentication State](#saving-authentication-state)
14
- - [Restoring Authentication](#restoring-authentication)
15
- - [OAuth / SSO Flows](#oauth--sso-flows)
16
- - [Two-Factor Authentication](#two-factor-authentication)
17
- - [HTTP Basic Auth](#http-basic-auth)
18
- - [Cookie-Based Auth](#cookie-based-auth)
19
- - [Token Refresh Handling](#token-refresh-handling)
20
- - [Security Best Practices](#security-best-practices)
21
-
22
- ## Import Auth from Your Browser
23
-
24
- The fastest way to authenticate is to reuse cookies from a Chrome session you are already logged into.
25
-
26
- **Step 1: Start Chrome with remote debugging**
27
-
28
- ```bash
29
- # macOS
30
- "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222
31
-
32
- # Linux
33
- google-chrome --remote-debugging-port=9222
34
-
35
- # Windows
36
- "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
37
- ```
38
-
39
- Log in to your target site(s) in this Chrome window as you normally would.
40
-
41
- > **Security note:** `--remote-debugging-port` exposes full browser control on localhost. Any local process can connect and read cookies, execute JS, etc. Only use on trusted machines and close Chrome when done.
42
-
43
- **Step 2: Grab the auth state**
44
-
45
- ```bash
46
- # Auto-discover the running Chrome and save its cookies + localStorage
47
- agent-browser --auto-connect state save ./my-auth.json
48
- ```
49
-
50
- **Step 3: Reuse in automation**
51
-
52
- ```bash
53
- # Load auth at launch
54
- agent-browser --state ./my-auth.json open https://app.example.com/dashboard
55
-
56
- # Or load into an existing session
57
- agent-browser state load ./my-auth.json
58
- agent-browser open https://app.example.com/dashboard
59
- ```
60
-
61
- This works for any site, including those with complex OAuth flows, SSO, or 2FA -- as long as Chrome already has valid session cookies.
62
-
63
- > **Security note:** State files contain session tokens in plaintext. Add them to `.gitignore`, delete when no longer needed, and set `AGENT_BROWSER_ENCRYPTION_KEY` for encryption at rest. See [Security Best Practices](#security-best-practices).
64
-
65
- **Tip:** Combine with `--session-name` so the imported auth auto-persists across restarts:
66
-
67
- ```bash
68
- agent-browser --session-name myapp state load ./my-auth.json
69
- # From now on, state is auto-saved/restored for "myapp"
70
- ```
71
-
72
- ## Persistent Profiles
73
-
74
- Use `--profile` to point agent-browser at a Chrome user data directory. This persists everything (cookies, IndexedDB, service workers, cache) across browser restarts without explicit save/load:
75
-
76
- ```bash
77
- # First run: login once
78
- agent-browser --profile ~/.myapp-profile open https://app.example.com/login
79
- # ... complete login flow ...
80
-
81
- # All subsequent runs: already authenticated
82
- agent-browser --profile ~/.myapp-profile open https://app.example.com/dashboard
83
- ```
84
-
85
- Use different paths for different projects or test users:
86
-
87
- ```bash
88
- agent-browser --profile ~/.profiles/admin open https://app.example.com
89
- agent-browser --profile ~/.profiles/viewer open https://app.example.com
90
- ```
91
-
92
- Or set via environment variable:
93
-
94
- ```bash
95
- export AGENT_BROWSER_PROFILE=~/.myapp-profile
96
- agent-browser open https://app.example.com/dashboard
97
- ```
98
-
99
- ## Session Persistence
100
-
101
- Use `--session-name` to auto-save and restore cookies + localStorage by name, without managing files:
102
-
103
- ```bash
104
- # Auto-saves state on close, auto-restores on next launch
105
- agent-browser --session-name twitter open https://twitter.com
106
- # ... login flow ...
107
- agent-browser close # state saved to ~/.agent-browser/sessions/
108
-
109
- # Next time: state is automatically restored
110
- agent-browser --session-name twitter open https://twitter.com
111
- ```
112
-
113
- Encrypt state at rest:
114
-
115
- ```bash
116
- export AGENT_BROWSER_ENCRYPTION_KEY=$(openssl rand -hex 32)
117
- agent-browser --session-name secure open https://app.example.com
118
- ```
119
-
120
- ## Basic Login Flow
121
-
122
- ```bash
123
- # Navigate to login page
124
- agent-browser open https://app.example.com/login
125
- agent-browser wait --load networkidle
126
-
127
- # Get form elements
128
- agent-browser snapshot -i
129
- # Output: @e1 [input type="email"], @e2 [input type="password"], @e3 [button] "Sign In"
130
-
131
- # Fill credentials
132
- agent-browser fill @e1 "user@example.com"
133
- agent-browser fill @e2 "password123"
134
-
135
- # Submit
136
- agent-browser click @e3
137
- agent-browser wait --load networkidle
138
-
139
- # Verify login succeeded
140
- agent-browser get url # Should be dashboard, not login
141
- ```
142
-
143
- ## Saving Authentication State
144
-
145
- After logging in, save state for reuse:
146
-
147
- ```bash
148
- # Login first (see above)
149
- agent-browser open https://app.example.com/login
150
- agent-browser snapshot -i
151
- agent-browser fill @e1 "user@example.com"
152
- agent-browser fill @e2 "password123"
153
- agent-browser click @e3
154
- agent-browser wait --url "**/dashboard"
155
-
156
- # Save authenticated state
157
- agent-browser state save ./auth-state.json
158
- ```
159
-
160
- ## Restoring Authentication
161
-
162
- Skip login by loading saved state:
163
-
164
- ```bash
165
- # Load saved auth state
166
- agent-browser state load ./auth-state.json
167
-
168
- # Navigate directly to protected page
169
- agent-browser open https://app.example.com/dashboard
170
-
171
- # Verify authenticated
172
- agent-browser snapshot -i
173
- ```
174
-
175
- ## OAuth / SSO Flows
176
-
177
- For OAuth redirects:
178
-
179
- ```bash
180
- # Start OAuth flow
181
- agent-browser open https://app.example.com/auth/google
182
-
183
- # Handle redirects automatically
184
- agent-browser wait --url "**/accounts.google.com**"
185
- agent-browser snapshot -i
186
-
187
- # Fill Google credentials
188
- agent-browser fill @e1 "user@gmail.com"
189
- agent-browser click @e2 # Next button
190
- agent-browser wait 2000
191
- agent-browser snapshot -i
192
- agent-browser fill @e3 "password"
193
- agent-browser click @e4 # Sign in
194
-
195
- # Wait for redirect back
196
- agent-browser wait --url "**/app.example.com**"
197
- agent-browser state save ./oauth-state.json
198
- ```
199
-
200
- ## Two-Factor Authentication
201
-
202
- Handle 2FA with manual intervention:
203
-
204
- ```bash
205
- # Login with credentials
206
- agent-browser open https://app.example.com/login --headed # Show browser
207
- agent-browser snapshot -i
208
- agent-browser fill @e1 "user@example.com"
209
- agent-browser fill @e2 "password123"
210
- agent-browser click @e3
211
-
212
- # Wait for user to complete 2FA manually
213
- echo "Complete 2FA in the browser window..."
214
- agent-browser wait --url "**/dashboard" --timeout 120000
215
-
216
- # Save state after 2FA
217
- agent-browser state save ./2fa-state.json
218
- ```
219
-
220
- ## HTTP Basic Auth
221
-
222
- For sites using HTTP Basic Authentication:
223
-
224
- ```bash
225
- # Set credentials before navigation
226
- agent-browser set credentials username password
227
-
228
- # Navigate to protected resource
229
- agent-browser open https://protected.example.com/api
230
- ```
231
-
232
- ## Cookie-Based Auth
233
-
234
- Manually set authentication cookies:
235
-
236
- ```bash
237
- # Set auth cookie
238
- agent-browser cookies set session_token "abc123xyz"
239
-
240
- # Navigate to protected page
241
- agent-browser open https://app.example.com/dashboard
242
- ```
243
-
244
- ## Token Refresh Handling
245
-
246
- For sessions with expiring tokens:
247
-
248
- ```bash
249
- #!/bin/bash
250
- # Wrapper that handles token refresh
251
-
252
- STATE_FILE="./auth-state.json"
253
-
254
- # Try loading existing state
255
- if [[ -f "$STATE_FILE" ]]; then
256
- agent-browser state load "$STATE_FILE"
257
- agent-browser open https://app.example.com/dashboard
258
-
259
- # Check if session is still valid
260
- URL=$(agent-browser get url)
261
- if [[ "$URL" == *"/login"* ]]; then
262
- echo "Session expired, re-authenticating..."
263
- # Perform fresh login
264
- agent-browser snapshot -i
265
- agent-browser fill @e1 "$USERNAME"
266
- agent-browser fill @e2 "$PASSWORD"
267
- agent-browser click @e3
268
- agent-browser wait --url "**/dashboard"
269
- agent-browser state save "$STATE_FILE"
270
- fi
271
- else
272
- # First-time login
273
- agent-browser open https://app.example.com/login
274
- # ... login flow ...
275
- fi
276
- ```
277
-
278
- ## Security Best Practices
279
-
280
- 1. **Never commit state files** - They contain session tokens
281
- ```bash
282
- echo "*.auth-state.json" >> .gitignore
283
- ```
284
-
285
- 2. **Use environment variables for credentials**
286
- ```bash
287
- agent-browser fill @e1 "$APP_USERNAME"
288
- agent-browser fill @e2 "$APP_PASSWORD"
289
- ```
290
-
291
- 3. **Clean up after automation**
292
- ```bash
293
- agent-browser cookies clear
294
- rm -f ./auth-state.json
295
- ```
296
-
297
- 4. **Use short-lived sessions for CI/CD**
298
- ```bash
299
- # Don't persist state in CI
300
- agent-browser open https://app.example.com/login
301
- # ... login and perform actions ...
302
- agent-browser close # Session ends, nothing persisted
303
- ```
@@ -1,295 +0,0 @@
1
- # Command Reference
2
-
3
- Complete reference for all agent-browser commands. For quick start and common patterns, see SKILL.md.
4
-
5
- ## Navigation
6
-
7
- ```bash
8
- agent-browser open <url> # Navigate to URL (aliases: goto, navigate)
9
- # Supports: https://, http://, file://, about:, data://
10
- # Auto-prepends https:// if no protocol given
11
- agent-browser back # Go back
12
- agent-browser forward # Go forward
13
- agent-browser reload # Reload page
14
- agent-browser close # Close browser (aliases: quit, exit)
15
- agent-browser connect 9222 # Connect to browser via CDP port
16
- ```
17
-
18
- ## Snapshot (page analysis)
19
-
20
- ```bash
21
- agent-browser snapshot # Full accessibility tree
22
- agent-browser snapshot -i # Interactive elements only (recommended)
23
- agent-browser snapshot -c # Compact output
24
- agent-browser snapshot -d 3 # Limit depth to 3
25
- agent-browser snapshot -s "#main" # Scope to CSS selector
26
- ```
27
-
28
- ## Interactions (use @refs from snapshot)
29
-
30
- ```bash
31
- agent-browser click @e1 # Click
32
- agent-browser click @e1 --new-tab # Click and open in new tab
33
- agent-browser dblclick @e1 # Double-click
34
- agent-browser focus @e1 # Focus element
35
- agent-browser fill @e2 "text" # Clear and type
36
- agent-browser type @e2 "text" # Type without clearing
37
- agent-browser press Enter # Press key (alias: key)
38
- agent-browser press Control+a # Key combination
39
- agent-browser keydown Shift # Hold key down
40
- agent-browser keyup Shift # Release key
41
- agent-browser hover @e1 # Hover
42
- agent-browser check @e1 # Check checkbox
43
- agent-browser uncheck @e1 # Uncheck checkbox
44
- agent-browser select @e1 "value" # Select dropdown option
45
- agent-browser select @e1 "a" "b" # Select multiple options
46
- agent-browser scroll down 500 # Scroll page (default: down 300px)
47
- agent-browser scrollintoview @e1 # Scroll element into view (alias: scrollinto)
48
- agent-browser drag @e1 @e2 # Drag and drop
49
- agent-browser upload @e1 file.pdf # Upload files
50
- ```
51
-
52
- ## Get Information
53
-
54
- ```bash
55
- agent-browser get text @e1 # Get element text
56
- agent-browser get html @e1 # Get innerHTML
57
- agent-browser get value @e1 # Get input value
58
- agent-browser get attr @e1 href # Get attribute
59
- agent-browser get title # Get page title
60
- agent-browser get url # Get current URL
61
- agent-browser get cdp-url # Get CDP WebSocket URL
62
- agent-browser get count ".item" # Count matching elements
63
- agent-browser get box @e1 # Get bounding box
64
- agent-browser get styles @e1 # Get computed styles (font, color, bg, etc.)
65
- ```
66
-
67
- ## Check State
68
-
69
- ```bash
70
- agent-browser is visible @e1 # Check if visible
71
- agent-browser is enabled @e1 # Check if enabled
72
- agent-browser is checked @e1 # Check if checked
73
- ```
74
-
75
- ## Screenshots and PDF
76
-
77
- ```bash
78
- agent-browser screenshot # Save to temporary directory
79
- agent-browser screenshot path.png # Save to specific path
80
- agent-browser screenshot --full # Full page
81
- agent-browser pdf output.pdf # Save as PDF
82
- ```
83
-
84
- ## Video Recording
85
-
86
- ```bash
87
- agent-browser record start ./demo.webm # Start recording
88
- agent-browser click @e1 # Perform actions
89
- agent-browser record stop # Stop and save video
90
- agent-browser record restart ./take2.webm # Stop current + start new
91
- ```
92
-
93
- ## Wait
94
-
95
- ```bash
96
- agent-browser wait @e1 # Wait for element
97
- agent-browser wait 2000 # Wait milliseconds
98
- agent-browser wait --text "Success" # Wait for text (or -t)
99
- agent-browser wait --url "**/dashboard" # Wait for URL pattern (or -u)
100
- agent-browser wait --load networkidle # Wait for network idle (or -l)
101
- agent-browser wait --fn "window.ready" # Wait for JS condition (or -f)
102
- ```
103
-
104
- ## Mouse Control
105
-
106
- ```bash
107
- agent-browser mouse move 100 200 # Move mouse
108
- agent-browser mouse down left # Press button
109
- agent-browser mouse up left # Release button
110
- agent-browser mouse wheel 100 # Scroll wheel
111
- ```
112
-
113
- ## Semantic Locators (alternative to refs)
114
-
115
- ```bash
116
- agent-browser find role button click --name "Submit"
117
- agent-browser find text "Sign In" click
118
- agent-browser find text "Sign In" click --exact # Exact match only
119
- agent-browser find label "Email" fill "user@test.com"
120
- agent-browser find placeholder "Search" type "query"
121
- agent-browser find alt "Logo" click
122
- agent-browser find title "Close" click
123
- agent-browser find testid "submit-btn" click
124
- agent-browser find first ".item" click
125
- agent-browser find last ".item" click
126
- agent-browser find nth 2 "a" hover
127
- ```
128
-
129
- ## Browser Settings
130
-
131
- ```bash
132
- agent-browser set viewport 1920 1080 # Set viewport size
133
- agent-browser set viewport 1920 1080 2 # 2x retina (same CSS size, higher res screenshots)
134
- agent-browser set device "iPhone 14" # Emulate device
135
- agent-browser set geo 37.7749 -122.4194 # Set geolocation (alias: geolocation)
136
- agent-browser set offline on # Toggle offline mode
137
- agent-browser set headers '{"X-Key":"v"}' # Extra HTTP headers
138
- agent-browser set credentials user pass # HTTP basic auth (alias: auth)
139
- agent-browser set media dark # Emulate color scheme
140
- agent-browser set media light reduced-motion # Light mode + reduced motion
141
- ```
142
-
143
- ## Cookies and Storage
144
-
145
- ```bash
146
- agent-browser cookies # Get all cookies
147
- agent-browser cookies set name value # Set cookie
148
- agent-browser cookies clear # Clear cookies
149
- agent-browser storage local # Get all localStorage
150
- agent-browser storage local key # Get specific key
151
- agent-browser storage local set k v # Set value
152
- agent-browser storage local clear # Clear all
153
- ```
154
-
155
- ## Network
156
-
157
- ```bash
158
- agent-browser network route <url> # Intercept requests
159
- agent-browser network route <url> --abort # Block requests
160
- agent-browser network route <url> --body '{}' # Mock response
161
- agent-browser network unroute [url] # Remove routes
162
- agent-browser network requests # View tracked requests
163
- agent-browser network requests --filter api # Filter requests
164
- ```
165
-
166
- ## Tabs and Windows
167
-
168
- ```bash
169
- agent-browser tab # List tabs
170
- agent-browser tab new [url] # New tab
171
- agent-browser tab 2 # Switch to tab by index
172
- agent-browser tab close # Close current tab
173
- agent-browser tab close 2 # Close tab by index
174
- agent-browser window new # New window
175
- ```
176
-
177
- ## Frames
178
-
179
- ```bash
180
- agent-browser frame "#iframe" # Switch to iframe by CSS selector
181
- agent-browser frame @e3 # Switch to iframe by element ref
182
- agent-browser frame main # Back to main frame
183
- ```
184
-
185
- ### Iframe support
186
-
187
- Iframes are detected automatically during snapshots. When the main-frame snapshot runs, `Iframe` nodes are resolved and their content is inlined beneath the iframe element in the output (one level of nesting; iframes within iframes are not expanded).
188
-
189
- ```bash
190
- agent-browser snapshot -i
191
- # @e3 [Iframe] "payment-frame"
192
- # @e4 [input] "Card number"
193
- # @e5 [button] "Pay"
194
-
195
- # Interact directly — refs inside iframes already work
196
- agent-browser fill @e4 "4111111111111111"
197
- agent-browser click @e5
198
-
199
- # Or switch frame context for scoped snapshots
200
- agent-browser frame @e3 # Switch using element ref
201
- agent-browser snapshot -i # Snapshot scoped to that iframe
202
- agent-browser frame main # Return to main frame
203
- ```
204
-
205
- The `frame` command accepts:
206
- - **Element refs** — `frame @e3` resolves the ref to an iframe element
207
- - **CSS selectors** — `frame "#payment-iframe"` finds the iframe by selector
208
- - **Frame name/URL** — matches against the browser's frame tree
209
-
210
- ## Dialogs
211
-
212
- By default, `alert` and `beforeunload` dialogs are automatically accepted so they never block the agent. `confirm` and `prompt` dialogs still require explicit handling. Use `--no-auto-dialog` to disable this behavior.
213
-
214
- ```bash
215
- agent-browser dialog accept [text] # Accept dialog
216
- agent-browser dialog dismiss # Dismiss dialog
217
- agent-browser dialog status # Check if a dialog is currently open
218
- ```
219
-
220
- ## JavaScript
221
-
222
- ```bash
223
- agent-browser eval "document.title" # Simple expressions only
224
- agent-browser eval -b "<base64>" # Any JavaScript (base64 encoded)
225
- agent-browser eval --stdin # Read script from stdin
226
- ```
227
-
228
- Use `-b`/`--base64` or `--stdin` for reliable execution. Shell escaping with nested quotes and special characters is error-prone.
229
-
230
- ```bash
231
- # Base64 encode your script, then:
232
- agent-browser eval -b "ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW3NyYyo9Il9uZXh0Il0nKQ=="
233
-
234
- # Or use stdin with heredoc for multiline scripts:
235
- cat <<'EOF' | agent-browser eval --stdin
236
- const links = document.querySelectorAll('a');
237
- Array.from(links).map(a => a.href);
238
- EOF
239
- ```
240
-
241
- ## State Management
242
-
243
- ```bash
244
- agent-browser state save auth.json # Save cookies, storage, auth state
245
- agent-browser state load auth.json # Restore saved state
246
- ```
247
-
248
- ## Global Options
249
-
250
- ```bash
251
- agent-browser --session <name> ... # Isolated browser session
252
- agent-browser --json ... # JSON output for parsing
253
- agent-browser --headed ... # Show browser window (not headless)
254
- agent-browser --full ... # Full page screenshot (-f)
255
- agent-browser --cdp <port> ... # Connect via Chrome DevTools Protocol
256
- agent-browser -p <provider> ... # Cloud browser provider (--provider)
257
- agent-browser --proxy <url> ... # Use proxy server
258
- agent-browser --proxy-bypass <hosts> # Hosts to bypass proxy
259
- agent-browser --headers <json> ... # HTTP headers scoped to URL's origin
260
- agent-browser --executable-path <p> # Custom browser executable
261
- agent-browser --extension <path> ... # Load browser extension (repeatable)
262
- agent-browser --ignore-https-errors # Ignore SSL certificate errors
263
- agent-browser --help # Show help (-h)
264
- agent-browser --version # Show version (-V)
265
- agent-browser <command> --help # Show detailed help for a command
266
- ```
267
-
268
- ## Debugging
269
-
270
- ```bash
271
- agent-browser --headed open example.com # Show browser window
272
- agent-browser --cdp 9222 snapshot # Connect via CDP port
273
- agent-browser connect 9222 # Alternative: connect command
274
- agent-browser console # View console messages
275
- agent-browser console --clear # Clear console
276
- agent-browser errors # View page errors
277
- agent-browser errors --clear # Clear errors
278
- agent-browser highlight @e1 # Highlight element
279
- agent-browser inspect # Open Chrome DevTools for this session
280
- agent-browser trace start # Start recording trace
281
- agent-browser trace stop trace.zip # Stop and save trace
282
- agent-browser profiler start # Start Chrome DevTools profiling
283
- agent-browser profiler stop trace.json # Stop and save profile
284
- ```
285
-
286
- ## Environment Variables
287
-
288
- ```bash
289
- AGENT_BROWSER_SESSION="mysession" # Default session name
290
- AGENT_BROWSER_EXECUTABLE_PATH="/path/chrome" # Custom browser path
291
- AGENT_BROWSER_EXTENSIONS="/ext1,/ext2" # Comma-separated extension paths
292
- AGENT_BROWSER_PROVIDER="browserbase" # Cloud browser provider
293
- AGENT_BROWSER_STREAM_PORT="9223" # Override WebSocket streaming port (default: OS-assigned)
294
- AGENT_BROWSER_HOME="/path/to/agent-browser" # Custom install location
295
- ```