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

# Core features

> The building blocks for powerful browser automation with Browserbase

<CardGroup cols={2}>
  <Card title="Contexts" icon="database" href="/platform/browser/core-features/contexts">
    Persist cookies, authentication state, and application data across sessions — no need to log in on every run.
  </Card>

  <Card title="Viewports" icon="display" href="/platform/browser/core-features/viewports">
    Configure the screen size and resolution of your browser sessions to match any device or layout requirement.
  </Card>

  <Card title="Session metadata" icon="tag" href="/platform/browser/core-features/session-metadata">
    Tag sessions with custom key-value data to organize, filter, and query your automation runs.
  </Card>

  <Card title="Browser Extensions" icon="puzzle-piece" href="/platform/browser/core-features/browser-extensions">
    Load your own Chrome extensions into sessions to augment browser behavior or bypass site-specific challenges.
  </Card>
</CardGroup>

## Quick reference

| Feature                                                                      | What it does                                                       | When to use it                                                           |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| [**Contexts**](/platform/browser/core-features/contexts)                     | Persists cookies, auth tokens, and browser storage across sessions | Any workflow that requires login — avoids re-authenticating on every run |
| [**Viewports**](/platform/browser/core-features/viewports)                   | Sets the browser window width and height                           | Visual testing, screenshots, or layouts that are viewport-dependent      |
| [**Session metadata**](/platform/browser/core-features/session-metadata)     | Attaches custom JSON to a session for querying later               | Organizing sessions by test run, environment, team, or status            |
| [**Browser extensions**](/platform/browser/core-features/browser-extensions) | Loads a Chrome extension into the session                          | Custom page behavior, ad blocking, or site-specific workarounds          |

## All features are set at session creation

Every core feature is configured when you create a session. Pass your settings in the `browserSettings` object:

```typescript theme={null}
const session = await bb.sessions.create({
  browserSettings: {
    viewport: { width: 1920, height: 1080 },
    solveCaptchas: true,
  },
  context: { id: contextId, persist: true },
});
```

See the [Create Session API reference](/reference/api/create-a-session) for the full list of options.
