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

# browser_session

> Developer-mode browsers: a separate Chrome the companion launches, without the user's logins.

Developer-mode browsers: a separate Chrome the companion launches, without the user's logins. Only launch one when the user explicitly asks for it, or when a tool reported that an operation needs developer mode (heap snapshots, Lighthouse, raw CDP). For everyday work use the user's shared tabs. Each named context is a separate Chrome with its own persistent profile; several can run in parallel. launch/close/status take a context (default "default"); contexts lists saved profiles; delete removes a stopped context's profile.

<Note>Everyday work happens in the user's shared tabs. The dashboard's Settings page decides whether a separate browser may open at all (Only when needed, Always, Never).</Note>

## Parameters

<ParamField body="action" type="enum" required>
  One of: `launch`, `status`, `close`, `contexts`, `delete`.
</ParamField>

<ParamField body="context" type="string">
  Context name, e.g. "work" or "personal" (default "default")
</ParamField>

<ParamField body="all" type="boolean">
  close: close every running context
</ParamField>

<ParamField body="url" type="string">
  Initial URL for launch
</ParamField>

<ParamField body="headless" type="boolean">
  Launch without a window (watch it via the live view URL in browser\_status)
</ParamField>

<ParamField body="chromePath" type="string">
   
</ParamField>

<ParamField body="args" type="string[]">
  Extra Chrome switches
</ParamField>

<ParamField body="devtools" type="boolean">
  Open Chrome DevTools for every tab so the user can watch the standard panels while you work (default: true unless headless)
</ParamField>

<ParamField body="proxy" type="string">
  Proxy server for this browser, e.g. "[http://proxy:8080](http://proxy:8080)" or "socks5://127.0.0.1:1080"
</ParamField>

<ParamField body="extensions" type="string[]">
  Unpacked extension directories to load into this browser
</ParamField>

<ParamField body="downloadDir" type="string">
  Where downloads land (default \~/.browspark/downloads/\<context>)
</ParamField>

## Example

```json Launch the default context theme={null}
{
  "action": "launch"
}
```

```json Launch a named, headless context behind a proxy theme={null}
{
  "action": "launch",
  "context": "scraper",
  "headless": true,
  "proxy": "socks5://127.0.0.1:1080",
  "url": "https://example.com"
}
```

```json Close everything theme={null}
{
  "action": "close",
  "all": true
}
```
