qlpycon/README.md
xbl 7ca9795a39 modified: .gitignore
modified:   README.md
	new file:   install.sh
	renamed:    config.py -> lib/constants.py
	renamed:    cvars.py -> lib/cvars.py
	renamed:    formatter.py -> lib/formatter.py
	renamed:    network.py -> lib/network.py
	renamed:    parser.py -> lib/parser.py
	renamed:    qlpycon_config.py -> lib/settings.py
	renamed:    state.py -> lib/state.py
	renamed:    ui.py -> lib/ui.py
	modified:   main.py
	modified:   qlpycon.bash
	new file:   qlpycon.conf.example
2026-06-13 10:21:29 +02:00

2.2 KiB

qlpycon - Quake Live Python Console

Terminal client for monitoring and controlling Quake Live servers via ZMQ RCON.

Installation

curl -sSL https://6bit.ch/qlpycon/install.sh | bash

Or from a cloned repo:

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.

[connection]
password = ${QLPYCON_PASSWORD}

[servers]
ffa  = 10.13.12.93:28960
duel = 10.13.12.93:28961

Usage

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 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