# QLPyCon - Quake Live Python Console Terminal client for monitoring and controlling Quake Live servers via ZMQ RCON. ## Installation ```bash curl -sSL https://6bit.ch/qlpycon/install.sh | bash ``` Or from a cloned repo: ```bash git clone https://git.6bit.ch/xbl/qlpycon.git cd qlpycon ./install.sh ``` The installer sets up a virtualenv, installs dependencies, and writes a launcher to `~/.local/bin/qlpycon`. ## Configuration Edit `qlpycon.conf` in your install directory. See `qlpycon.conf.example` for all options. ```ini [connection] password = ${QLPYCON_PASSWORD} [servers] ffa = 10.13.12.93:28960 duel = 10.13.12.93:28961 ``` ## Usage ```bash qlpycon ffa # connect by name qlpycon --host tcp://10.13.12.93:28960 --password secret # connect directly qlpycon --list # list configured servers ``` **Options:** - `--host URI` — ZMQ RCON endpoint - `--password PASS` — RCON password (or set `QLPYCON_PASSWORD` env var) - `--list` — list configured servers and exit - `-v` / `-vv` — verbose (INFO) or debug (DEBUG) logging - `--json FILE` — log all JSON events to file - `--unknown-log FILE` — log unparsed events (default: unknown_events.log) ## Features - Real-time kill/death/medal/team switch events - Team-aware colorized output with Quake color code support - Powerup pickup and carrier kill notifications - Server info panel (map, gametype, scores, players) - Tab autocomplete for cvars and commands with fuzzy matching - Argument suggestions for 25+ commands (bot names, maps, gametypes) - Command history (↑/↓) See [AUTOCOMPLETE.md](AUTOCOMPLETE.md) for input details. ## Architecture ``` main.py — entry point, arg parsing, signal handling qlpycon.conf — user configuration lib/ constants.py — weapons, teams, colors, limits settings.py — config file loader state.py — game state (server info, players, teams) network.py — ZMQ connections (RCON DEALER, stats SUB) parser.py — JSON event parsing formatter.py — message formatting and colorization ui.py — curses interface (info / output / input panels) cvars.py — cvar/command database and autocomplete ``` ## License WTFPL