# rctv

[![PyPI Version](https://img.shields.io/pypi/v/rctv.svg)](https://pypi.org/project/rctv/)
[![Python Versions](https://img.shields.io/pypi/pyversions/rctv.svg)](https://pypi.org/project/rctv/)
[![License](https://img.shields.io/github/license/fcjr/rctv.py.svg)](https://github.com/fcjr/rctv.py/blob/main/LICENSE)
[![UV Friendly](https://img.shields.io/badge/uv-friendly-blue)](https://github.com/astral-sh/uv)

Quick CLI for displaying Recurse Center TV in fullscreen.

## Install

Recommended (fast, reproducible):

```bash
uv tool install rctv
```

Run without installing:

```bash
uvx rctv
```

With pip:

```bash
pip install rctv
```

## Usage

```bash
# Basic usage with token
RCTV_TOKEN=your_token_here rctv

# Or set the token once
export RCTV_TOKEN=your_token_here
rctv
```

The app will:
- Fetch apps from the RCTV API
- Display each page in fullscreen
- Rotate through pages based on timing from the API
- Automatically reload and loop continuously

Press `Cmd+Q` (macOS) or `Alt+F4` (Linux/Windows) to exit.

## Development

```bash
uv sync
uv run rctv                          # run the CLI using local code

# optional: editable install
uv pip install -e .

./scripts/release.sh                 # release a new version
```

## Notes

- Requires `RCTV_TOKEN` environment variable with your Recurse Center TV token
- Uses pywebview for cross-platform fullscreen display
- Automatically reloads apps after each complete rotation
- On Linux, requires GTK, Qt, or CEF for webview backend
- On macOS, uses native WebKit
- On Windows, uses Edge WebView2
