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

# Installation

> Install BlindCast tools based on what you need: player for playback, CLI for encryption and upload, uploader for browser uploads, or the Docker key server for production.

Install only what you need. Each tool is independent.

## By use case

<Tabs>
  <Tab title="Play encrypted video">
    ```bash theme={null}
    pnpm add @blindcast/player hls.js
    ```

    `hls.js` is a peer dependency. See [Player docs](/player/overview).
  </Tab>

  <Tab title="Encrypt & upload (CLI)">
    ```bash theme={null}
    npm install -g @blindcast/cli
    ```

    Or use without installing: `npx @blindcast/cli <command>`. See [CLI docs](/cli/overview).
  </Tab>

  <Tab title="Browser upload SDK">
    ```bash theme={null}
    pnpm add @blindcast/uploader
    ```

    See [Uploader docs](/uploader/overview).
  </Tab>

  <Tab title="Production key server">
    ```bash theme={null}
    docker pull blindcast/keyserver
    ```

    See [Key Server docs](/key-server/overview).
  </Tab>
</Tabs>

## Requirements

| Tool           | Requirements                                                                                                                                              |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Player**     | Any modern browser with [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) (Chrome 37+, Firefox 34+, Safari 11+, Edge 79+) |
| **CLI**        | Node.js 18+                                                                                                                                               |
| **Uploader**   | Any modern browser with Web Crypto API                                                                                                                    |
| **Key Server** | Docker 20+                                                                                                                                                |

## TypeScript

All npm packages ship with TypeScript declarations. No `@types/*` packages needed. Set `"moduleResolution": "bundler"` or `"node16"` in `tsconfig.json`:

```json tsconfig.json theme={null}
{
  "compilerOptions": {
    "moduleResolution": "bundler",
    "target": "ES2020",
    "lib": ["ES2020", "DOM"]
  }
}
```

Next: [Quick Start](/getting-started/quick-start) — see encrypted playback in \~10 minutes.
