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

# Requirements

> What you need before deploying Tandemn or using the CLI.

Tandemn System has two parts: a self-hosted control plane operated by an administrator and a CLI used by the people submitting inference jobs. The current deployment target is AWS.

## Server requirements

| Requirement         | Notes                                                                              |
| ------------------- | ---------------------------------------------------------------------------------- |
| Python 3.12+        | Required for the control plane.                                                    |
| `uv`                | Required for setup and dependency management.                                      |
| SkyPilot            | Installed by `setup.sh`; run `sky check` to verify cloud access.                   |
| AWS credentials     | Use `aws configure` or `~/.aws/credentials`.                                       |
| AWS IAM permissions | EC2 launch/terminate, S3 read/write to your bucket, and service quota read access. |
| S3 bucket           | Must exist in your AWS account and be set as `S3_UPLOAD_BUCKET` in `.env`.         |
| Redis               | Required for multi-replica chunked jobs.                                           |
| HuggingFace token   | Required for gated models such as Llama and Gemma; set `HF_TOKEN` in `.env`.       |

At minimum, AWS credentials need access to the EC2 instance types you plan to use, `s3:GetObject` and `s3:PutObject` on your bucket, and `servicequotas:GetServiceQuota` for quota tracking.

Install `uv` before running server setup:

```bash theme={null}
curl -LsSf https://astral.sh/uv/install.sh | sh
```

## CLI requirements

Users need a Python environment and the URL of the Tandemn server.

* Python 3.12 or newer
* `pip`
* The `tandemn` Python package
* `TD_SERVER_URL` set to the server URL

```bash theme={null}
pip install tandemn
export TD_SERVER_URL=<your-server-url>
tandemn check
```

## Recommended first setup

For an initial evaluation, use one administrator-managed server, one CLI user, and a small JSONL workload. Verify connectivity with `tandemn check` before submitting real workloads.

<Columns cols={2}>
  <Card title="Install server" icon="server" href="/getting-started/install-server">
    Install and start the control plane.
  </Card>

  <Card title="Install CLI" icon="terminal" href="/getting-started/install-cli">
    Set up a local CLI environment.
  </Card>
</Columns>
