Metadata-Version: 2.4
Name: ric-chat-app
Version: 0.1.3
Summary: A small TLS-encrypted terminal chat app (server + curses client).
Author: Ricardo Carrillo
License: MIT
Project-URL: Homepage, https://github.com/rickycarrillo3/ric_chat_app
Project-URL: Repository, https://github.com/rickycarrillo3/ric_chat_app
Keywords: chat,tls,curses,sockets,terminal
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"

# ric-chat-app

A small, TLS-encrypted terminal chat app — a threaded socket **server** and a
**curses client**, plus a demo **time bot**. All traffic is encrypted and pinned
to a self-signed certificate (encryption + MITM protection).

## For chatters (install & run)

```bash
pip install ric-chat-app
chat-client
```

That's it — `chat-client` connects to the hosted server out of the box, over TLS.
Pick a name when prompted and start chatting. Type `!exit` to leave.

Want the current time in chat? If the time bot is running, send `!time`.

## Running your own server

```bash
pip install ric-chat-app
# generate the server's key pair (see DEPLOYMENT.md for the exact command)
chat-server
```

Point clients at your server with an environment variable or a `.env` file in the
directory you run from:

```bash
CHAT_MODE=aws AWS_HOST=<your.server.ip> chat-client
# or CHAT_MODE=local for a server on 127.0.0.1
```

## Commands

| Command        | What it does                                  |
|----------------|-----------------------------------------------|
| `chat-client`  | Launches the curses chat UI                   |
| `chat-server`  | Runs the chat server (usually via systemd)    |
| `chat-timebot` | Runs the `!time` bot                          |

## Developing

```bash
git clone https://github.com/rickycarrillo3/ric_chat_app
cd ric_chat_app
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest
```

See **[DEPLOYMENT.md](DEPLOYMENT.md)** for the full picture: how TLS pinning works,
the package layout, the CI/CD pipeline, and how to deploy/update the VPS.
