openclaw - 💡(How to fix) Fix Feature: Add browser proxy configuration option (avoid manual --no-proxy-server removal) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#72804Fetched 2026-04-28 06:32:04
View on GitHub
Comments
0
Participants
1
Timeline
1
Reactions
0
Author
Participants
Timeline (top)
cross-referenced ×1

Fix Action

Fix / Workaround

Currently, the only workaround is to manually edit the compiled JS (chrome-*.js, line ~1254):

if (!hasChromeProxyControlArg(resolved.extraArgs)) args.push("--no-proxy-server");

Code Example

if (!hasChromeProxyControlArg(resolved.extraArgs)) args.push("--no-proxy-server");

---

// chrome-DgIFmd0G.js:1254
if (!hasChromeProxyControlArg(resolved.extraArgs)) args.push("--no-proxy-server");

---

# In openclaw config
browser:
  proxy: "http://127.0.0.1:7890"   # or null/undefined to keep current behavior
RAW_BUFFERClick to expand / collapse

Problem

When OpenClaw launches Chrome for browser automation, it adds --no-proxy-server by default (and strips proxy env vars like HTTP_PROXY). This makes sense for pure CDP automation, but breaks access to geo-blocked sites (e.g., x.com, youtube.com) that require a proxy in regions like China.

Currently, the only workaround is to manually edit the compiled JS (chrome-*.js, line ~1254):

if (!hasChromeProxyControlArg(resolved.extraArgs)) args.push("--no-proxy-server");

This needs to be re-done after every npm install -g openclaw@<version> update, which is fragile and easy to forget.

Current Code Logic

// chrome-DgIFmd0G.js:1254
if (!hasChromeProxyControlArg(resolved.extraArgs)) args.push("--no-proxy-server");

The hasChromeProxyControlArg check already supports an escape hatch — if --proxy-server is in extraArgs, it skips --no-proxy-server. But extraArgs is not exposed to users via config.

Proposed Solution

Add a browser proxy config option, e.g.:

# In openclaw config
browser:
  proxy: "http://127.0.0.1:7890"   # or null/undefined to keep current behavior

When browser.proxy is set:

  1. Pass --proxy-server=<url> as a Chrome extra arg (which already bypasses --no-proxy-server)
  2. Skip stripping proxy env vars for this browser instance
  3. Keep --no-proxy-server as default when no proxy is configured (preserving current safe defaults)

This way:

  • No behavior change for users who don't need a proxy
  • Clean config-based solution for users who need proxy access
  • No more manual source edits after updates

Environment

  • OpenClaw: 2026.4.25
  • OS: macOS (arm64)
  • Use case: Browser automation for X/Twitter, YouTube, etc. behind GFW

extent analysis

TL;DR

To fix the issue, add a browser proxy configuration option to OpenClaw, allowing users to specify a proxy server without manual code edits.

Guidance

  • The current workaround involves editing the compiled JS file, which is fragile and prone to being overwritten during updates.
  • The proposed solution involves adding a browser.proxy configuration option, which would allow users to specify a proxy server and bypass the default --no-proxy-server flag.
  • To implement this solution, the hasChromeProxyControlArg check should be modified to respect the browser.proxy configuration option.
  • The extraArgs should be updated to include the --proxy-server flag when a proxy is configured.

Example

// Example of how the hasChromeProxyControlArg check could be modified
if (config.browser.proxy && !hasChromeProxyControlArg(resolved.extraArgs)) {
  args.push(`--proxy-server=${config.browser.proxy}`);
} else if (!hasChromeProxyControlArg(resolved.extraArgs)) {
  args.push("--no-proxy-server");
}

Notes

  • The proposed solution requires changes to the OpenClaw configuration and codebase.
  • The example code snippet is a suggestion and may require modifications to fit the actual implementation.

Recommendation

Apply workaround by adding a browser.proxy configuration option, as it provides a clean and configurable solution for users who need proxy access.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Feature: Add browser proxy configuration option (avoid manual --no-proxy-server removal) [1 participants]