Please remove your client id from the public repository, while it’s public you usually don’t want to pass it around to make it easier to hijack. (Just include it with config.get)
I don’t know Python (I’m a c# guy), so let me ask a question I’ve seen in the past before someone more knowledgeable in that space comes by:
Are you using a library like twisted so your command processing doesn’t block your listener thread? (I see something called async twitch, but that only works if you have the processing happening off the listener)