> ## Documentation Index
> Fetch the complete documentation index at: https://tbd-6fc993ce-mason-add-copy-page-to-context-menu.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

<Info>
  If you are already familiar with browser vendors and are looking to quickly switch to Kernel browsers, follow the instructions **[here](/browsers/create-a-browser)**.
</Info>

## Getting started

This quickstart guide will help you deploy and invoke your first browser automation on Kernel. You'll create a simple automation using Playwright, Computer Use, or a web agent framework like Browser Use.

<iframe width="672" height="378" src="https://www.youtube.com/embed/trMR8HM0Zgs?si=MBPx3qeT7oI78z45" title="Kernel Quickstart Video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />

## Prerequisites

* `brew` for the Kernel CLI
* `npm` or `pnpm` to generate a sample Kernel app
* A [Kernel account](https://dashboard.onkernel.com/sign-up)

> **Note:** You can also deploy and invoke apps using the [Kernel MCP server](/reference/mcp-server) from AI assistants (Cursor, Goose, Claude, etc.).

## 1. Download the sample app

```bash theme={null}
npx @onkernel/create-kernel-app sample-app
```

## 2. Install the Kernel CLI

```bash theme={null}
# Using brew
brew install onkernel/tap/kernel

# Using pnpm
pnpm install -g @onkernel/cli

# Using npm
npm install -g @onkernel/cli
```

Verify the installation exists:

```bash theme={null}
which kernel
```

## 3. Authenticate with Kernel

The easiest way to authenticate is using OAuth:

```bash theme={null}
kernel login
```

This will open your browser to complete the authentication flow. Your credentials will be securely stored and automatically refreshed.

## 4. Deploy the sample app on Kernel

<CodeGroup>
  ```bash Typescript / Javascript theme={null}
  cd sample-app
  kernel deploy index.ts # --env ANTHROPIC_API_KEY=XXX if Stagehand or Computer Use
  ```

  ```bash Python theme={null}
  cd sample-app
  kernel deploy main.py # --env ANTHROPIC_API_KEY=XXX if Browser Use or Computer Use
  ```
</CodeGroup>

## 5. Invoke the app

<CodeGroup>
  ```bash Typescript / Javascript theme={null}
  # Sample app
  kernel invoke ts-basic get-page-title --payload '{"url": "https://www.google.com"}'

  # Stagehand
  kernel invoke ts-stagehand stagehand-task --payload '{"query": "Best wired earbuds"}'

  # Computer Use
  kernel invoke ts-cu cu-task --payload '{"query": "Search for the top 3 restaurants in NYC according to Pete Wells"}'
  ```

  ```bash Python theme={null}
  # Sample app
  kernel invoke python-basic get-page-title --payload '{"url": "https://www.google.com"}'

  # Browser Use
  kernel invoke python-bu bu-task --payload '{"task": "Compare the price of gpt-4o and DeepSeek-V3"}'

  # Computer Use
  kernel invoke python-cu cu-task --payload '{"query": "Search for the top 3 restaurants in NYC according to Pete Wells"}'
  ```
</CodeGroup>

## Next steps

Nice work! With Kernel, you:

1. Developed an app that uses Playwright, Computer Use, or a web agent framework like Browser Use
2. Deployed and invoked it in the cloud

You can now update your browser automation with your own logic and deploy it again. Install our [MCP server](/reference/mcp-server) to give your coding agent our `search_docs` tool.

## Sample apps reference

These are the sample apps currently available when you run `npx @onkernel/create-kernel-app`:

| Template            | Description                                           | Framework                  | Query Parameters |
| ------------------- | ----------------------------------------------------- | -------------------------- | ---------------- |
| **sample-app**      | Returns the page title of a specified URL             | Playwright                 | `{ url }`        |
| **browser-use**     | Completes a specified task                            | Browser Use                | `{ task }`       |
| **stagehand**       | Returns the first result of a specified Google search | Stagehand                  | `{ query }`      |
| **advanced-sample** | Implements sample apps using advanced Kernel configs  | Playwright                 | n/a              |
| **computer-use**    | Implements an Anthropic Computer Use prompt loop      | Anthropic Computer Use API | `{ query }`      |
| **cua**             | Implements an OpenAI CUA prompt loop                  | OpenAI CUA API             | `{ task }`       |
