commander = Commander('RezChat', cmd_cb=TestCmd()) def run(): while 1: data = sock.recv(4096) if not data: break data = data.decode() split_data = data.split("{") for x in range(1, len(split_data)): split_data[x] = "{" + split_data[x] output = json.loads(split_data[x]) output["message"] = output["message"].rstrip("\n") if output["sender"] is not None: commander.output([(output["color"], output["sender"] + "> "), output["message"]]) else: commander.output(("normal", output["message"])) t = Thread(target=run) t.daemon = True t.start() # start main loop commander.loop()