diff --git a/browsers/bot-detection/overview.mdx b/browsers/bot-detection/overview.mdx
index f14cccc..3859755 100644
--- a/browsers/bot-detection/overview.mdx
+++ b/browsers/bot-detection/overview.mdx
@@ -24,8 +24,11 @@ Most detection systems look for inconsistencies between how a real user's browse
These systems are heuristic and probabilistic — small mismatches can still trigger blocks. The goal isn't to “beat” detection but rather emulate the real-world conditions of a normal browser session.
## Kernel Features That Help
+### Anti-detection defaults
+Every Kernel browser launches with anti-detection chrome configuration applied. No setup required.
+
### [Stealth Mode](/browsers/bot-detection/stealth)
-A basic configuration that launches Kernel's browser through a residential proxy and integrates a Google [reCAPTCHA solver](https://www.google.com/recaptcha/api2/demo).
+On top of the defaults, stealth mode adds a default residential proxy and an automatic CAPTCHA solver. Both are opt-out so you can BYO proxy and/or CAPTCHA tooling.
### [Configurable Proxies](/proxies/overview)
Bring your own proxy network or use Kernel's managed pool (selectable down to ZIP-code level). If needed, use the same IP to reduce detection and allow for regional testing or QA.
diff --git a/browsers/bot-detection/stealth.mdx b/browsers/bot-detection/stealth.mdx
index 25d8b69..eba54ee 100644
--- a/browsers/bot-detection/stealth.mdx
+++ b/browsers/bot-detection/stealth.mdx
@@ -2,7 +2,14 @@
title: "Stealth Mode"
---
-Kernel browsers can be configured to `stealth` mode, which automatically adds our recommended proxy to your browser instances. It also adds a `reCAPTCHA solver` to the browser, so it automatically solves [reCAPTCHAs](https://www.google.com/recaptcha/api2/demo) on your behalf.
+All Kernel browsers ship with anti-detection optimizations by default — you don't need stealth mode for this baseline.
+
+Enabling `stealth` mode adds two managed services on top:
+
+1. **Default residential proxy** — traffic routes through Kernel's residential proxy pool.
+2. **Automatic CAPTCHA solver** — solves [reCAPTCHAs](https://www.google.com/recaptcha/api2/demo), Cloudflare challenges, and similar tests automatically.
+
+Both are opt-out so you can [bring your own](#bring-your-own-proxy-or-captcha-solver) where it makes sense.
To turn on stealth mode, set its flag when instantiating Kernel browsers:
@@ -28,7 +35,15 @@ kernel_browser = kernel.browsers.create(
```
-If you're looking for proxy-level configuration with Kernel browsers, see [Proxies](/proxies/overview). To disable the default proxy on a running stealth browser, see [Disable default proxy](/proxies/overview#disable-default-proxy-on-stealth-browsers).
+## Bring your own proxy or CAPTCHA solver
+
+Anti-detection is the platform default, so you can freely mix in your own networking or CAPTCHA tooling. Common patterns:
+
+- **BYO proxy, keep CAPTCHA solver** — launch a stealth browser with your own [proxy](/proxies/overview) via `proxy_id`. Replaces the residential default; CAPTCHA solver stays loaded.
+- **BYO proxy, no CAPTCHA solver** — launch a non-stealth browser with your own `proxy_id`. Full anti-detection config, no managed proxy or CAPTCHA extension.
+- **Disable the default proxy at runtime** — on a running stealth browser, set [`disable_default_proxy`](/proxies/overview#disable-default-proxy-on-stealth-browsers) to route directly while keeping the CAPTCHA solver.
+
+If you're looking for proxy-level configuration with Kernel browsers, see [Proxies](/proxies/overview).
## CAPTCHA Handling Behavior
@@ -46,4 +61,4 @@ When encountering a Cloudflare challenge, our auto-CAPTCHA solver will attempt t
After the "Ready" message appears, don't click the Cloudflare CAPTCHA checkbox — this can interfere with the solver.
-
\ No newline at end of file
+
diff --git a/changelog.mdx b/changelog.mdx
index 80510de..476729f 100644
--- a/changelog.mdx
+++ b/changelog.mdx
@@ -9,6 +9,17 @@ import { YouTubeVideo } from '/snippets/youtube-video.mdx';
For API library updates, see the [Node SDK](https://github.com/onkernel/kernel-node-sdk/blob/main/CHANGELOG.md), [Python SDK](https://github.com/onkernel/kernel-python-sdk/blob/next/CHANGELOG.md), and [Go SDK](https://github.com/onkernel/kernel-go-sdk/blob/main/CHANGELOG.md) changelogs.
+
+## Product updates
+
+- Anti-detection chrome configuration is now applied to **every** Kernel browser by default — previously only stealth browsers. Stealth mode now exclusively manages the default residential proxy and CAPTCHA solver, both of which remain [opt-out](/browsers/bot-detection/stealth#bring-your-own-proxy-or-captcha-solver).
+
+## Documentation updates
+
+- Rewrote the [Stealth Mode](/browsers/bot-detection/stealth) page to clarify anti-detection defaults and document BYO proxy / CAPTCHA patterns.
+- Added a [Bring your own proxy](/proxies/overview#bring-your-own-proxy) section to the proxies overview.
+
+
## Product updates
diff --git a/proxies/overview.mdx b/proxies/overview.mdx
index 333962f..0f9e1f5 100644
--- a/proxies/overview.mdx
+++ b/proxies/overview.mdx
@@ -251,6 +251,26 @@ The update is synchronous — when the call returns, the proxy swap is fully app
If you swap the proxy on a browser acquired from a pool, the browser will be reset back to the pool's default proxy configuration when it is released. Releasing the browser will be delayed by the swap duration (~2-3 seconds) while the proxy is restored to the pool default.
+### Bring your own proxy
+
+Attach a custom `proxy_id` to any browser — stealth or non-stealth — and Kernel's anti-detection config still applies. For full anti-detection without the managed proxy or CAPTCHA solver, launch a non-stealth browser with your own `proxy_id`:
+
+
+```typescript Typescript/Javascript
+const browser = await kernel.browsers.create({
+ stealth: false,
+ proxy_id: myProxy.id,
+});
+```
+
+```python Python
+browser = kernel.browsers.create(
+ stealth=False,
+ proxy_id=my_proxy.id,
+)
+```
+
+
### Disable default proxy on stealth browsers
[Stealth browsers](/browsers/bot-detection/stealth) are automatically assigned a proxy. To disable this on a running stealth browser and route traffic directly, set `disable_default_proxy` to `true`: