Common code for implementing Twitch bots.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.2 KiB


The codebase currently consists mainly of unstable, experimental code. This will be stabilized over time, so the code should not be relied on or even used in its current state.


  • Banphrase API
  • Parallel command execution in channel with concurrency limits
  • Tag expansion
  • Owner commands to enable/disable features or otherwise modify conf

Broken after refactor:

  • chjoin login is in a bad state (no cooldowns, no rejoins on fail/banned-user, poor support for PART cooldown)
  • tracker: badges
  • tracker: twitch/rewardgift/domain => msg-param-domain
  • tracker: emotesets


  • Cooldown after executing delayed command doesn't (always) work

New features

  • Command execution pooling for sync commands

    • Channel tied to pool instance (also does banphrase checking)
    • Don't queue additional commands if too many commands are pending
  • Refactor command system for lookup-performance

  • Add command aliasing system

    • Virtual commands that map (per-channel) to real commands with fast lookup

Future work

  • Replace pubsub with EventSub

Quality of life

  • Debugging
    • Connection info
    • Map channels to connection
    • Show active channel config/state