# Introduction

The Stream React Video SDK is a toolkit for building video calling, audio rooms and livestreaming into your app. It ships with UI components, React hooks and context providers, and every call runs on Stream's global edge network for lower latency and higher reliability.

>
> **Tip:** This SDK is the client half of your integration. Call types, recording, transcription, webhooks and SIP are configured from your backend with a server-side SDK or the REST API, and the token your app connects with has to be signed there too. See the [server-side overview](https://getstream.io/video/docs/react/v2/server-side/) for what to build there, starting with [users and tokens](https://getstream.io/docs/platform/authentication/).
>

## Build with Stream CLI and Agent Skills

The [Stream CLI](https://getstream.io/cli/docs/) and [Agent Skills](https://getstream.io/agent-skills/docs/) provide AI coding agents, such as Claude Code, Cursor, and Codex, with the tools and knowledge necessary to build apps with Stream.

Install the CLI and add the skills to your project:

```bash
curl -fsSL https://getstream.io/cli.sh | bash
getstream skills stream-react
```

Once installed, invoke it from your agent:

```text
/stream Add Stream Video to my React app.
```

The `/stream` skill acts as a router, reading your request and dispatching it to the specialist skill. You can also invoke the `/stream-react` skill directly.

Stream Agent Skills can also be installed from [skills.sh](https://www.skills.sh/getstream/agent-skills/stream).

## Choose your path

- [Prebuilt components](https://getstream.io/video/docs/react/v2/basics/prebuilt/): Drop-in components that handle the entire call lifecycle with minimal code. Best when you want a working video or livestream UI without building from scratch.
- [Custom integration](https://getstream.io/video/docs/react/v2/basics/quickstart/): Full control over the client, call state and UI. Use hooks, context providers and composable components to build exactly the experience you need.

## Getting started

If you're new to Stream Video, start with these tutorials:

- [Video calling tutorial](https://getstream.io/video/sdk/react/tutorial/video-calling/): Build 1:1 and group calls.
- [Audio room tutorial](https://getstream.io/video/sdk/react/tutorial/audio-room/): Build a drop-in audio space.
- [Livestream tutorial](https://getstream.io/video/sdk/react/tutorial/livestreaming/): Broadcast to any audience size.

## What you'll learn

**Core concepts:**

- [Joining and creating calls](https://getstream.io/video/docs/react/v2/guides/joining-and-creating-calls/)
- [Camera and microphone management](https://getstream.io/video/docs/react/v2/guides/camera-and-microphone/)
- [Call and participant state](https://getstream.io/video/docs/react/v2/guides/call-and-participant-state/)
- [Using UI components effectively](https://getstream.io/video/docs/react/v2/ui-components/overview/)

**Advanced features:**

- [Picture-in-picture support](https://getstream.io/video/docs/react/v2/ui-cookbook/picture-in-picture/)
- [Ringing and call notifications](https://getstream.io/video/docs/react/v2/advanced/ringing-calls/)
- [Recording](https://getstream.io/video/docs/react/v2/advanced/recording/) and [livestreaming](https://getstream.io/video/docs/react/v2/guides/livestreaming/)
- [Permissions and moderation](https://getstream.io/video/docs/react/v2/guides/permissions-and-moderation/)
- [Audio and video filters](https://getstream.io/video/docs/react/v2/advanced/apply-video-filters/)

## FAQ

**Which browsers are supported?**

Chrome 136+, Firefox 137+, Edge 136+ and Safari 18.4+. The SDK also runs in WebView on Android and iOS. See [supported platforms](https://getstream.io/video/docs/react/v2/basics/supported-platforms/).

**Can users share their screen?**

On desktop browsers, yes. The call type needs the `screenshare` capability. See [screen sharing](https://getstream.io/video/docs/react/v2/guides/screensharing/).

**Does the call stay visible when the user switches tabs?**

Not by itself, but the [picture-in-picture](https://getstream.io/video/docs/react/v2/ui-cookbook/picture-in-picture/) cookbook shows how to float a participant's video in a window that stays visible even when the browser is minimized.

**Is there noise cancellation?**

Yes, on desktop browsers, through the [noise cancellation](https://getstream.io/video/docs/react/v2/guides/noise-cancellation/) plugin.

**Can I blur or replace backgrounds?**

Yes, on Chrome, Firefox and Edge 124+. Safari is experimental and mobile isn't supported yet. See [video filters](https://getstream.io/video/docs/react/v2/advanced/apply-video-filters/).

**Can calls be moderated automatically?**

Yes. [Call moderation](https://getstream.io/moderation/docs/node/integrations/call-moderation/) watches video keyframes and audio transcriptions in real time. Ask support to enable it.

## Feedback

If something is missing or could be improved, [contact us](https://getstream.io/contact/).

---

For the most recent version of this documentation, visit [https://getstream.io/video/docs/react/v2/](https://getstream.io/video/docs/react/v2/).