> ## Documentation Index
> Fetch the complete documentation index at: https://www.kernel.sh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure

> Create a browser, pick its shape, and choose what it carries onto a site

A KERNEL browser works with no configuration: create one and drive it. This page covers the settings most agents touch at creation time. The rest of Configure covers the features that decide whether an agent gets through a real site: stealth, proxies, profiles, vaults, authentication, and payments.

## Create a browser

```typescript TypeScript theme={null}
import Kernel from '@onkernel/sdk';

const kernel = new Kernel();

const browser = await kernel.browsers.create();
console.log(browser.session_id, browser.browser_live_view_url);
```

```python Python theme={null}
from kernel import Kernel

kernel = Kernel()

browser = kernel.browsers.create()
print(browser.session_id, browser.browser_live_view_url)
```

```go Go theme={null}
package main

import (
	"context"
	"fmt"

	"github.com/kernel/kernel-go-sdk"
)

func main() {
	ctx := context.Background()
	client := kernel.NewClient()

	browser, err := client.Browsers.New(ctx, kernel.BrowserNewParams{})
	if err != nil {
		panic(err)
	}
	fmt.Println(browser.SessionID, browser.BrowserLiveViewURL)
}
```

```bash CLI theme={null}
kernel browsers create
```

The response includes everything you need to drive the browser: `session_id`, `cdp_ws_url`, `webdriver_ws_url`, and `browser_live_view_url`. See [create a browser](https://www.kernel.sh/docs/introduction/create) for the full walkthrough, including creating from a [browser pool](https://www.kernel.sh/docs/browsers/pools.md).

## Pick a browser type

| Type | When to use it | How to set it |
| - | - | - |
| **Headful** (default) | Agents on real sites. It has a real display, so [live view](https://www.kernel.sh/docs/browsers/live-view.md) and [replays](https://www.kernel.sh/docs/browsers/replays.md) work and bot detectors see a normal browser. 8 GB of memory by default, or 16 GB with `memory`. | `memory: "8GiB"` or `"16GiB"` |
| **[Headless](https://www.kernel.sh/docs/browsers/headless)** | High-volume or short-lived work that doesn't need to be watched. 1 GB by default, or 2 GB and 4 GB with `memory`; some bot detectors notice it. | `headless: true` |
| **[GPU-accelerated](https://www.kernel.sh/docs/browsers/gpu-acceleration)** | WebGL, video, and canvas-heavy sites. Headful only, doesn't support standby, and has its own usage rate. | `gpu: true` |

## Set common options

```typescript TypeScript theme={null}
const browser = await kernel.browsers.create({
  viewport: { width: 1280, height: 800 },
  timeout_seconds: 300,
});
```

```python Python theme={null}
browser = kernel.browsers.create(
    viewport={"width": 1280, "height": 800},
    timeout_seconds=300,
)
```

* **[Memory](https://www.kernel.sh/docs/browsers/concurrency-and-limits.md#per-browser-resources):** headless browsers take `1GiB`, `2GiB`, or `4GiB`; headful browsers take `8GiB` (the default) or `16GiB`. Memory is set at creation and can't be changed on a running browser.
* **[Viewport](https://www.kernel.sh/docs/browsers/viewport):** defaults to 1920x1080 at 25Hz. A custom viewport restarts Chromium on creation, so use a [browser pool](https://www.kernel.sh/docs/browsers/pools.md) if you need it to be instant.
* **[Termination and timeouts](https://www.kernel.sh/docs/browsers/termination):** `timeout_seconds` sets how long a browser can sit in standby before KERNEL deletes it. It defaults to 60 seconds and can be up to 72 hours. Delete browsers explicitly when you're done; Playwright's `browser.close()` doesn't delete them.

## More browser settings

Often agents don't require these, but they're there when you do:

* **[Regions](https://www.kernel.sh/docs/browsers/regions):** run browsers in `us-east`, `eu-west`, or `ap-southeast`, closer to your code and your users.
* **[Location](https://www.kernel.sh/docs/browsers/location):** set the browser's timezone and locale.
* **[Extensions](https://www.kernel.sh/docs/browsers/extensions):** load unpacked Chrome extensions into a browser.
* **[Chrome policies](https://www.kernel.sh/docs/browsers/chrome-policies):** apply Chrome enterprise policies, such as startup pages and bookmarks.
* **[Private networking](https://www.kernel.sh/docs/browsers/private-networking):** reach services behind a VPN or tunnel from inside the browser session.

## What to configure next

> [card] [Stealth](https://www.kernel.sh/docs/browsers/bot-detection/overview.md)
>
> Anti-detection defaults, stealth mode, CAPTCHA handling, and Web Bot Auth.

> [card] [Proxies](https://www.kernel.sh/docs/proxies/overview.md)
>
> Route traffic through ISP, residential, or mobile IPs, or bring your own.

> [card] [Profiles](https://www.kernel.sh/docs/browsers/profiles.md)
>
> Save cookies, storage, and logins from one session and load them into the next.

> [card] [Vaults](https://www.kernel.sh/docs/vaults/overview.md)
>
> Store credentials and payment items that a browser fills into a page without your agent reading them.

> [card] [Authentication](https://www.kernel.sh/docs/auth/overview.md)
>
> Fill logins from a vault, or let managed auth handle the login and attempt to reauthenticate eligible connections.

> [card] [Payments](https://www.kernel.sh/docs/browsers/payments.md)
>
> Let agents complete checkouts through a wallet without handling raw card details.

> [card] [Config Registry](https://www.kernel.sh/docs/config-registry.md)
>
> Get browser and proxy settings that have already worked on the site you're automating.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.