---
canonical_url: "https://docs.composio.dev/toolkits/kernel"
markdown_url: "https://docs.composio.dev/toolkits/kernel.md"
product: "platform"
version: null
last_updated: null
---

# Kernel

Kernel provides cloud browsers, computer controls, Playwright execution, session replays, and persistent browser profiles for building browser-based agents and automations.

- **Category:** developer tools
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 35
- **Triggers:** 0
- **Slug:** `KERNEL`
- **Version:** 00000000_00

## Tools

### Batch Computer Actions

**Slug:** `KERNEL_BATCH_COMPUTER_ACTIONS`

Execute 1-100 computer actions sequentially in a Kernel browser, stopping on the first error. Actions can click, type, press keys, and submit forms or cause other irreversible external effects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `actions` | array | Yes | Ordered computer actions (1-100); execution stops on the first error. |
| `id_or_name` | string | Yes | Browser session ID or name to control. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Browser Curl

**Slug:** `KERNEL_BROWSER_CURL`

Send a read-only GET, HEAD, or OPTIONS request through a Kernel browser's network stack, inheriting its cookies, TLS fingerprint, proxy settings, and default headers. For POST, PUT, PATCH, or DELETE, use Browser HTTP Request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Target HTTP or HTTPS URL. |
| `method` | string ("GET" | "HEAD" | "OPTIONS") | No | Read-only HTTP method for the target URL. |
| `headers` | object | No | Custom request headers merged with the browser's defaults. |
| `id_or_name` | string | Yes | Browser session ID or name. |
| `timeout_ms` | integer | No | Target request timeout in milliseconds (1000-60000). |
| `response_encoding` | string ("utf8" | "base64") | No | Return the response body as UTF-8 text or base64 for binary content. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Browser HTTP Request

**Slug:** `KERNEL_BROWSER_HTTP_REQUEST`

Send a state-changing POST, PUT, PATCH, or DELETE request through a Kernel browser's network stack, inheriting its cookies, TLS fingerprint, proxy settings, and default headers. The target may change external systems irreversibly. For GET, HEAD, or OPTIONS, use Browser Curl.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Target HTTP or HTTPS URL. |
| `body` | string | No | Request body for POST, PUT, or PATCH requests. |
| `method` | string ("POST" | "PUT" | "PATCH" | "DELETE") | Yes | State-changing HTTP method for the target URL. |
| `headers` | object | No | Custom request headers merged with the browser's defaults. |
| `id_or_name` | string | Yes | Browser session ID or name. |
| `timeout_ms` | integer | No | Target request timeout in milliseconds (1000-60000). |
| `response_encoding` | string ("utf8" | "base64") | No | Return the response body as UTF-8 text or base64 for binary content. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Click

**Slug:** `KERNEL_CLICK`

Click at browser viewport coordinates with an optional mouse button, click phase, modifiers, and repetition count. A click can submit forms, place orders, or cause other irreversible external effects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `x` | integer | Yes | Horizontal viewport coordinate. |
| `y` | integer | Yes | Vertical viewport coordinate. |
| `button` | string ("left" | "right" | "middle" | "back" | "forward") | No | Mouse button to use; omit for Kernel's default. |
| `hold_keys` | array | No | Modifier keys to hold during the click. |
| `click_type` | string ("down" | "up" | "click") | No | Mouse action phase; use click for a complete press and release. |
| `id_or_name` | string | Yes | Browser session ID or name to control. |
| `num_clicks` | integer | No | Number of click repetitions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Browser

**Slug:** `KERNEL_CREATE_BROWSER`

Create a Kernel browser session; defaults to a headless browser with a 60-second inactivity timeout.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `gpu` | boolean | No | Enable GPU acceleration; requires headless=false, us-east, and an eligible plan. |
| `name` | string | No | Unique active-session name containing only letters, numbers, dots, underscores, and hyphens. |
| `tags` | object | No | User-defined browser tags (maximum 50 key-value pairs). |
| `proxy` | object | No | Proxy selected by exactly one of mode, id, or name. |
| `memory` | string ("1GiB" | "2GiB" | "4GiB" | "8GiB" | "16GiB") | No | Non-GPU memory: headless supports 1/2/4GiB and headful supports 8/16GiB. |
| `region` | string ("us-east" | "us-west" | "eu-west" | "ap-southeast") | No | Fixed browser region; omission uses us-east and explicit selection can require a higher plan. |
| `vaults` | array | No | Project-scoped vault references linked immutably at creation. |
| `network` | object | No | Network allowlist, private-host routing, and per-destination proxy routes. |
| `profile` | object | No | Existing profile selected by exactly one of id or name, optionally saving changes. |
| `stealth` | boolean | No | Enable stealth mode and Kernel's CAPTCHA solver; without a proxy this selects Kernel's default stealth proxy. |
| `headless` | boolean | No | Run without a GUI. Defaults to true in this tool; headless sessions do not provide Live View or replays. |
| `location` | object | No | Session-only timezone and locale overrides. |
| `viewport` | object | No | Initial browser viewport dimensions and optional refresh rate. |
| `start_url` | string | No | URL to open best-effort when the session starts; navigation failure does not fail creation. |
| `telemetry` | object | No | Telemetry capture, category, export, and storage settings. |
| `extensions` | array | No | Extensions to load, each selected by exactly one of id or name. |
| `kiosk_mode` | boolean | No | Hide the address bar and tabs in headful Live View kiosk mode. |
| `video_memory` | string ("2GiB" | "4GiB") | No | GPU video memory; valid only when gpu is true. |
| `chrome_policy` | object | No | Chrome enterprise policy overrides, excluding Kernel-managed extension, proxy, CDP, and automation policies. |
| `timeout_seconds` | integer | No | Inactivity timeout in seconds (10-259200). Defaults to 60; Kernel checks inactivity about every five seconds. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Profile

**Slug:** `KERNEL_CREATE_PROFILE`

Create an empty persistent browser profile, optionally with a unique name, for reuse by later browser sessions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Optional profile name, unique within the logical project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Browser

**Slug:** `KERNEL_DELETE_BROWSER`

Permanently end and delete a Kernel browser session by ID or name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Browser session ID or active-session name to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Playwright Executor

**Slug:** `KERNEL_DELETE_PLAYWRIGHT_EXECUTOR`

Stop and permanently delete a named, non-default Playwright executor from a Kernel browser. Its running call fails, its name can be reused, and close_tab controls whether its tab is also closed. To restart the reserved default executor, use Restart Default Playwright Executor.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `close_tab` | boolean | No | Whether to close the named executor's tab when deleting it. |
| `browser_id` | string | Yes | Browser session ID or name whose Playwright executor should be deleted. |
| `executor_id` | string | Yes | Named Playwright executor to stop and delete. The reserved name 'default' is rejected. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Profile

**Slug:** `KERNEL_DELETE_PROFILE`

Permanently delete a browser profile by ID or name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Profile ID or exact profile name to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download Profile

**Slug:** `KERNEL_DOWNLOAD_PROFILE`

Download a profile's stored browser state. Current profiles return the requested tar.zst or uncompressed tar format; legacy profiles may return JSON regardless of the requested format. The profile must have captured state from a browser session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `format` | string ("tar.zst" | "tar") | No | Archive format requested for a current profile; Kernel defaults to tar.zst when omitted. Legacy profiles may return JSON regardless of this value. |
| `id_or_name` | string | Yes | Profile ID or name whose stored browser state archive will be downloaded. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Drag Mouse

**Slug:** `KERNEL_DRAG_MOUSE`

Drag a mouse button through an ordered path of browser viewport coordinates, with optional timing, linear-step, and modifier controls. A drag can move items, submit controls, or cause other irreversible external effects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path` | array | Yes | Ordered path of at least two [x, y] viewport coordinate pairs. |
| `delay` | integer | No | Delay in milliseconds between pressing the button and starting movement. |
| `button` | string ("left" | "middle" | "right") | No | Mouse button to hold while dragging; omit for Kernel's default. |
| `smooth` | boolean | No | Use human-like Bezier curves; when true, linear step settings are ignored. |
| `hold_keys` | array | No | Modifier keys to hold during the drag. |
| `id_or_name` | string | Yes | Browser session ID or name to control. |
| `duration_ms` | integer | No | Total smooth drag duration in milliseconds (50-10000); omit for automatic timing. |
| `step_delay_ms` | integer | No | Delay in milliseconds between linear drag steps, excluding the initial delay. |
| `steps_per_segment` | integer | No | Number of linear movement steps per path segment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Execute Playwright

**Slug:** `KERNEL_EXECUTE_PLAYWRIGHT`

Execute arbitrary TypeScript or JavaScript with Playwright access to the browser; the code may navigate, mutate pages, submit forms, or cause irreversible external effects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | TypeScript or JavaScript function body with page, context, browser, and webmcp variables; use return to populate result. |
| `executor` | string | No | Persistent executor name; omission uses default. Distinct named executors can run concurrently, with at most eight per browser. |
| `id_or_name` | string | Yes | Browser session ID or name to automate. |
| `timeout_sec` | integer | No | Maximum code execution time in seconds (1-300). |
| `idempotency_key` | string | No | Stable key that makes retries return the first execution result instead of running the code again. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Browser

**Slug:** `KERNEL_GET_BROWSER`

Get safe operational details for one browser session by ID or name, optionally including a deleted session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Browser session ID or name. |
| `include_deleted` | boolean | No | Allow lookup of a soft-deleted browser session. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Mouse Position

**Slug:** `KERNEL_GET_MOUSE_POSITION`

Get the current mouse cursor coordinates in a Kernel browser session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Browser session ID or name whose mouse position to read. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Profile

**Slug:** `KERNEL_GET_PROFILE`

Get one browser profile by its ID or exact name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Profile ID or exact profile name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Replay

**Slug:** `KERNEL_GET_REPLAY`

Download a completed browser replay as MP4. If the replay is still processing, the action asks the caller to retry later.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `replay_id` | string | Yes | Replay recording ID returned by List Replays. |
| `id_or_name` | string | Yes | Headful browser session ID or name that owns the replay. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Browsers

**Slug:** `KERNEL_LIST_BROWSERS`

List browser sessions, optionally filtered by lifecycle state, search text, tags, or region, one offset page at a time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | object | No | Tag key-value pairs that every returned browser must match exactly. |
| `limit` | integer | No | Maximum browser sessions to return in this page (1-100). |
| `query` | string | No | Search browser name, session ID, profile name or ID, proxy ID, or pool name. |
| `region` | string ("us-east" | "us-west" | "eu-west" | "ap-southeast") | No | Geographic region to match; omit to include every region. |
| `status` | string ("active" | "deleted" | "all") | No | Browser lifecycle state to return: active, deleted, or all. |
| `next_cursor` | integer | No | Continuation offset returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Playwright Executors

**Slug:** `KERNEL_LIST_PLAYWRIGHT_EXECUTORS`

List the default and named Playwright executors for a Kernel browser, including whether each is busy and its owned tab when available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Browser session ID or name whose Playwright executors to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Profiles

**Slug:** `KERNEL_LIST_PROFILES`

List browser profiles, optionally filtered by substring or exact name, one offset page at a time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Exact profile-name match using Kernel's case- and accent-insensitive production collation. |
| `limit` | integer | No | Maximum profiles to return in this page (1-100). |
| `query` | string | No | Case-insensitive substring match against profile name or ID. |
| `next_cursor` | integer | No | Continuation offset returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Replays

**Slug:** `KERNEL_LIST_REPLAYS`

List replay recordings for a headful browser session without returning signed viewer URLs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Headful browser session ID or name. Headless sessions do not support replays. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Move Mouse

**Slug:** `KERNEL_MOVE_MOUSE`

Move the cursor to browser viewport coordinates, optionally using a timed human-like path and held modifier keys.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `x` | integer | Yes | Horizontal viewport coordinate to move the cursor to. |
| `y` | integer | Yes | Vertical viewport coordinate to move the cursor to. |
| `smooth` | boolean | No | Use a human-like Bezier path instead of moving instantly. |
| `hold_keys` | array | No | Modifier keys to hold during the movement. |
| `id_or_name` | string | Yes | Browser session ID or name to control. |
| `duration_ms` | integer | No | Total smooth movement duration in milliseconds (50-5000); omit for automatic timing. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Press Key

**Slug:** `KERNEL_PRESS_KEY`

Press an ordered sequence of X11 keys or key chords in a browser, optionally holding modifiers or holding the sequence for a duration. Key presses may submit forms, activate controls, or trigger other irreversible external effects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `keys` | array | Yes | Ordered X11 key symbols or chords to press. Use names such as Return, Shift, Ctrl, Alt, or F5; chords such as Ctrl+t or Ctrl+Shift+Tab; and X11 punctuation names such as Ctrl+minus or Ctrl+plus. Ctrl+- is also accepted as an alias for Ctrl+minus. |
| `duration` | integer | No | Duration to hold the keys down in milliseconds; zero taps them. |
| `hold_keys` | array | No | Modifier keys to hold during the key press sequence. |
| `id_or_name` | string | Yes | Browser session ID or name to control. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Read Clipboard

**Slug:** `KERNEL_READ_CLIPBOARD`

Read the current text from a Kernel browser session's clipboard.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Browser session ID or name whose clipboard to read. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rename Profile

**Slug:** `KERNEL_RENAME_PROFILE`

Rename a Kernel browser profile by ID or exact name. Rename profiles only when they are not in use because sessions referencing the old name may fail to save their changes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | New profile name, unique within the logical project. |
| `id_or_name` | string | Yes | Profile ID or exact name to rename. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Restart Default Playwright Executor

**Slug:** `KERNEL_RESTART_DEFAULT_PLAYWRIGHT_EXECUTOR`

Restart a Kernel browser's reserved default Playwright executor. Its process is stopped and any running call fails irreversibly; queued and later calls run on the new process. This does not delete a named executor or close a tab.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `browser_id` | string | Yes | Browser session ID or name whose default Playwright executor should be restarted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Save Browser Profile

**Slug:** `KERNEL_SAVE_BROWSER_PROFILE`

Save a running browser's current state to exactly one destination profile ID or name, creating a named profile when needed and overwriting an existing destination. This restarts the browser, closes all active connections, reloads pages, and loses in-memory page state; reconnect after completion. It does not attach the profile or enable save_changes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id_or_name` | string | Yes | Browser session ID or name whose current state will be saved. |
| `destination` | object | Yes | Required destination containing exactly one profile ID or profile name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Scroll

**Slug:** `KERNEL_SCROLL`

Scroll horizontally or vertically at browser viewport coordinates, optionally while holding modifier keys.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `x` | integer | Yes | Horizontal viewport coordinate where scrolling occurs. |
| `y` | integer | Yes | Vertical viewport coordinate where scrolling occurs. |
| `delta_x` | integer | No | Horizontal scroll amount in wheel units; positive scrolls right and negative scrolls left. |
| `delta_y` | integer | No | Vertical scroll amount in wheel units; positive scrolls down and negative scrolls up. |
| `hold_keys` | array | No | Modifier keys to hold while scrolling. |
| `id_or_name` | string | Yes | Browser session ID or name to control. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set Cursor Visibility

**Slug:** `KERNEL_SET_CURSOR_VISIBILITY`

Hide or show the cursor in a Kernel browser session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hidden` | boolean | Yes | Whether to hide the cursor; set false to make it visible. |
| `id_or_name` | string | Yes | Browser session ID or name whose cursor visibility to set. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Start Replay

**Slug:** `KERNEL_START_REPLAY`

Start recording a headful Kernel browser session and return its replay identifier and recording metadata without exposing its signed viewer URL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `framerate` | integer | No | Recording framerate in frames per second (1-60); values above 20 require GPU to be enabled on the browser session. |
| `id_or_name` | string | Yes | Headful browser session ID or name to record. Headless sessions do not support replays. |
| `record_audio` | boolean | No | Record audio with the video; defaults to false for video-only recording. |
| `max_duration_in_seconds` | integer | No | Maximum recording duration in seconds. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Stop Replay

**Slug:** `KERNEL_STOP_REPLAY`

Stop an active replay recording for a Kernel browser identified by ID or name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `replay_id` | string | Yes | Replay recording ID to stop. |
| `browser_id` | string | Yes | Browser session ID or name that owns the replay recording. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Take Screenshot

**Slug:** `KERNEL_TAKE_SCREENSHOT`

Capture the full browser viewport or a rectangular region as a PNG download.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `region` | object | No | Optional crop rectangle; omit to capture the full browser viewport. |
| `id_or_name` | string | Yes | Browser session ID or name to capture. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Type Text

**Slug:** `KERNEL_TYPE_TEXT`

Type text into the currently focused browser element with an optional per-keystroke delay.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Text to type into the currently focused element. |
| `delay` | integer | No | Delay in milliseconds between keystrokes. |
| `id_or_name` | string | Yes | Browser session ID or name to control. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Browser

**Slug:** `KERNEL_UPDATE_BROWSER`

Update mutable settings on an existing Kernel browser session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New unique session name; use an empty string or null to clear it. |
| `tags` | object | No | Full replacement tag map; use an empty object to clear all tags. |
| `proxy` | object | No | Replacement proxy egress configuration. |
| `network` | object | No | Changes to the running session's egress allowlist. |
| `profile` | object | No | Profile to load when the session does not already have one attached. |
| `location` | object | No | Session-only timezone and locale overrides. |
| `viewport` | object | No | Replacement browser viewport configuration. |
| `start_url` | string | No | URL to open best-effort after the update; an empty string leaves the current page unchanged. |
| `telemetry` | object | No | Telemetry capture configuration updates. |
| `id_or_name` | string | Yes | Browser session ID or name to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload Browser Extensions

**Slug:** `KERNEL_UPLOAD_BROWSER_EXTENSIONS`

Upload and activate one or more unpacked Chromium extension ZIP archives in an existing running browser. This ad-hoc operation does not add extensions to Kernel's reusable extension catalog. Chromium may restart, disrupting active browser connections.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `extensions` | array | Yes | Extensions to upload and activate in the running browser. |
| `id_or_name` | string | Yes | Running browser session ID or name to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Write Clipboard

**Slug:** `KERNEL_WRITE_CLIPBOARD`

Write text to the system clipboard of a Kernel browser session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Text to write to the browser system clipboard. |
| `id_or_name` | string | Yes | Browser session ID or name to control. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
