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

# Overview

Among other things, the Hyperbeam client-side JavaScript SDK allows you to:

* Connect to a virtual browser
* Control the virtual browser navigation programmatically
* Query the virtual browser state and listen to events
* Manage user control permissions
* Resize the browser
* Set local virtual browser volume

The library is published on [npm as @hyperbeam/web](https://www.npmjs.com/package/@hyperbeam/web).

## Installation

**Using npm:**

```bash Terminal theme={null}
$ npm install @hyperbeam/web --save
```

**Using UNPKG:**

```js JavaScript theme={null}
<script type="module">
  import Hyperbeam from "https://unpkg.com/@hyperbeam/web@latest/dist/index.js"
  // ...
</script>
```

## SDK Reference

> [card] [Initializing the SDK](https://docs.hyperbeam.com/client-sdk/javascript/reference.md#initializing-the-sdk)
>
> Create an instance of the HyperbeamClient object.

> [card] [The HyperbeamClient Object](https://docs.hyperbeam.com/client-sdk/javascript/reference.md#the-hyperbeamclient-object)
>
> Control the virtual browser, manage user permissions, and debug connection
> issues.

## Examples

> [card] [Loading a virtual browser](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#loading-a-virtual-browser)
>
> How to create an instance of the HyperbeamClient object.

> [card] [Destroying the embed](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#destroying-the-embed)
>
> How to tear down network connections and browser events.

> [card] [Setting video volume](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#setting-video-volume)
>
> How to set the local volume for the virtual browser.

> [card] [Getting user ID](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#getting-user-id)
>
> How to get the client's user ID.

> [card] [Pausing video stream](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#pausing-video-stream)
>
> How to pause/resume the local virtual browser video stream.

> [card] [Setting admin token](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#setting-admin-token)
>
> How to set the client's admin token.

> [card] [Setting permissions](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#setting-permissions)
>
> How to set user permissions based on a user's ID.

> [card] [Manual reconnection](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#manual-reconnection)
>
> How to manually reconnect.

> [card] [Resizing the browser](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#resizing-the-browser)
>
> How to resize the virtual browser to a specific width and height.

> [card] [Send events programmatically](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#send-events-programmatically)
>
> How to send keyboard, mouse, and wheel events to the virtual browser.

> [card] [Tighter control over keyboard events](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#tighter-control-over-keyboard-events)
>
> How to customize keyboard events sent the virtual browser.

> [card] [Control tabs programmatically](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#control-tabs-programmatically)
>
> How to use Hyperbeam's tab API.

> [card] [Listen to tab events](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#listen-to-tab-events)
>
> How to listen to tab events.

> [card] [Optimize server location](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#optimize-server-location)
>
> How to create a session with the optimal server location.


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