Metadata-Version: 2.4
Name: tx-ai
Version: 0.1.0
Summary: Minimal Textual chat client for OpenRouter
License-Expression: MIT
License-File: LICENSE
Keywords: ai,chat,openrouter,terminal,textual
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Requires-Dist: loguru<1.0,>=0.7.3
Requires-Dist: openai<2.0,>=1.76.0
Requires-Dist: textual<1.0,>=0.61.0
Description-Content-Type: text/markdown

# tx-ai

Minimal terminal chat UI built with Textual, `uv`, OpenRouter, and the OpenAI Python client.

## Requirements

- Python 3.11+
- OpenRouter API key via `OPENROUTER_API_KEY` or the startup prompt

## Install

From this checkout:

```bash
python -m pip install .
```

Or with `uv`:

```bash
uv sync
```

## Run With An Env Key

```bash
uv run --env-file .env tx-ai
```

If installed with `pip`:

```bash
OPENROUTER_API_KEY=your_key_here tx-ai
```

## Run Without An Env Key

```bash
tx-ai
```

If `OPENROUTER_API_KEY` is not set, the app asks for your OpenRouter API key in the input box. That key is used for the current session only and is not saved.

## Build A Wheel

```bash
uv build
python -m pip install dist/tx_ai-0.1.0-py3-none-any.whl
```

## Publish

```bash
uv build
uv publish --token YOUR_PYPI_TOKEN
```

## Notes

- Model is currently hardcoded to `deepseek/deepseek-v4-flash`.
- The app keeps the conversation in memory for the current session only.
- If no API key is set, the app prompts for one at startup.
- Assistant replies and model thinking are rendered as Markdown.
- Runtime logs are written to `logs/tx-ai.log`.
