# Chrome

Chrome itself does not have a built-in per-tab proxy UI — by default it follows the OS proxy. Three approaches in increasing order of flexibility:

1. **OS-level proxy** (simplest, affects all apps): see [Windows](/integrations/operating-systems/windows.md), [macOS](/integrations/operating-systems/macos.md), [Linux](/integrations/operating-systems/linux.md).
2. **Per-Chrome-profile via command-line flag** — different proxies per Chrome user data dir.
3. **Extension** like SwitchyOmega for per-tab / per-domain rules.

## Approach 2 — `--proxy-server` flag

Launch Chrome with a dedicated user data dir and the `--proxy-server` flag. Best for scraping rigs and headless automation.

```bash
# Residential
google-chrome \
  --user-data-dir=/tmp/chrome-helo-res \
  --proxy-server="http://gate.helodata.io:7777"

# ISP
google-chrome \
  --user-data-dir=/tmp/chrome-helo-isp \
  --proxy-server="http://198.51.100.42:8000"
```

Chrome's `--proxy-server` flag does **not** accept inline credentials. When Chrome prompts for the proxy login, enter:

* Username: the full proxy username (e.g. `helo_s1a2b3c4d5e-type-res-region-us`)
* Password: your sub-user password

To suppress the prompt, use an extension that pre-fills credentials, or set the OS-level proxy instead.

## Approach 3 — SwitchyOmega (most flexible)

1. Install **SwitchyOmega** from the Chrome Web Store.
2. **New profile → Proxy profile**.
3. Fill in:
   * Protocol: `HTTP` or `SOCKS5`
   * Server: `gate.helodata.io` (or your ISP IP)
   * Port: `7777`
   * Authentication: click the lock → username + password
4. Click **Apply changes**.
5. From the SwitchyOmega icon, switch between profiles per browsing context.

\[screenshot: SwitchyOmega "New profile" form filled in for residential]

## Verify the connection

Visit `https://ipv4.icanhazip.com` — the IP shown should be from helodata, not your own.

## Common pitfalls

* **Auth dialog every time you restart** — Chrome forgets proxy creds across sessions. Use SwitchyOmega or an OS-level config.
* **`net::ERR_TUNNEL_CONNECTION_FAILED`** — the proxy URL syntax is wrong, or your credentials are. Check [407 troubleshooting](/troubleshooting/407.md).
* **WebRTC IP leak** — install the SwitchyOmega/WebRTC-Leak-Shield extension if your use case demands hiding the local IP from `getUserMedia`.

## DevTools network tab still works

helodata is a forwarding proxy; DevTools sees the same requests it would normally see. You can still inspect headers, status codes, and timing.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.helodata.com/integrations/browsers/chrome.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
