Metadata-Version: 2.4
Name: thefluxtrain-cli
Version: 0.1.24
Summary: Command-line interface for TheFluxTrain APIs
Author-email: Saquib Alam <saquib764@gmail.com>
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: click>=8.1
Requires-Dist: httpx>=0.27
Requires-Dist: pyyaml>=6.0
Requires-Dist: pydantic>=2.0

# thefluxtrain-cli

Command-line interface for [TheFluxTrain](https://thefluxtrain.com) APIs.

## Install

```bash
pip install thefluxtrain-cli
# or
uv tool install thefluxtrain-cli
```

## Commands

```bash
tft login      # Device-code sign-in via thefluxtrain.com
tft logout     # Clear local credentials and local CLI data
tft sync       # Refresh the CLI command list
tft whoami     # Show logged-in user and API key id
tft commands   # List all available API commands
tft media info # Get video, audio, or image metadata via the API
```

## Quick start

```bash
tft login
tft commands
tft whoami
```

## How login works

1. `tft login` requests a device code from the API.
2. Open **https://thefluxtrain.com/cli/authorize** and sign in if needed.
3. Enter the code from your terminal and click **Authorize CLI**.
4. The CLI stores an API key in `~/.config/thefluxtrain/credentials.json`.
5. The CLI command list is refreshed automatically after login.

## Command list refresh

The CLI keeps its command list and help text up to date automatically. Run `tft sync` to refresh manually, then use `tft commands` and `tft <group> <command> --help` to discover what is available.

## Media metadata

Probing runs on the render service (MoviePy + ffmpeg):

```bash
tft media info --file ./clip.mp4
tft media info --url UPLOAD_URL --output json
```

Optional env var: `THEFLUXTRAIN_RENDER_API` (default `https://render.thefluxtrain.com`, same as frontend `VITE_RENDER_API`).

Use the `data` fields (`width`, `height`, `duration`) when building video-editor `createAsset` apply actions after `tft files upload`.
