IRC Client Library 5.1.0 released!

Version 5.1.0 of the Kitteh IRC Client Library has been released!

Introducing, batch support!

  • Holds events until the end of a batch unless rejected at the start event below.
  • ClientBatchStartEvent ClientBatchEndEvent and ClientBatchMessageEvent for observing and controlling.
  • BatchReferenceTag tracks information on a tag.


  • Updated documentation to be more consistent in referencing TLS.
  • Deprecated AcceptingTrustManagerFactory
    • It will be gone in 6.0.0
    • Use InsecureTrustManagerFactory instead, not that you should.
  • Added support for ISUPPORT NICKLEN and KICKLEN information.

IRC Client Library 5.0.1 released!

Version 5.0.1 of the Kitteh IRC Client Library has been released!

Two bugs fixed:

  • Twitch support now properly registers event listening.
  • Changing out the message sending queue before connection no longer eats outgoing messages.
    • Necessary for functioning Twitch support.

IRC Client Library 5.0.0 released!

Version 5.0.0 of the Kitteh IRC Client Library has been released!

It's time for the next major release!

Client builder rework

The Client builder has had a lot of methods renamed and shifted into subclasses to allow for a clearer flow of information. You'll want to take a look at the javadocs, but it is mostly straightforward. Below is an example of updated simple building code:

Client client = Client.builder().nick("Kitteh").server().host("").then().buildAndConnect();

Authentication refactor

The authentication classes saw a light rearrange. If you use NickServ authentication you'll need to make some changes in your code. Check the javadocs for more information. These changes will allow for easier future improvements.

Improved DNS resolution

Improved DNS handling is planned for a future release and the breaking change necessary has been made in 5.0.0 to ensure this can happen before the next major release. Some InetSocketAddress API has been replaced with a resolution-free HostWithPort class.

Proxy support

You can now connect over a SOCKS proxy! See the proxy() section of the builder to set that up.

Separation of listeners

KICL's default listeners (used to power the library) have been split up into lots of little listeners that largely accomplish one goal each. This way, it is easier to swap out a single listener if you wish to modify how KICL processes a message. You can modify this even in the builder, preventing construction, should you wish. Check out DefaultListeners for the list of listeners registered. KICL's Twitch code takes advantage of the listener separation to unregister the listener for one of the earliest messages a server sends on connection, because Twitch's IRC servers send a different message.

Twitch changes

Now you can simply call one method to apply Twitch support to your Client. TwitchSupport.addSupport() will add the Twitch-specific listener mentioned above, add a second Twitch listener for a variety of Twitch-related events, register the capabilities and message tags, and disables querying for channel information that Twitch doesn't support. Call the method before you connect the Client, and you're all set!

In addition, support for the Twitch whisper event has been added.


  • The JSR305 annotations have been replaced with the Checker Framework. Your IDE should seamlessly handle this.
  • Start of Java Platform Module System support with an automatic name in the manifest.
    • org.kitteh.irc.client.library
  • WebIRC support now matches IRCv3 spec and sends the command before capability requesting.
    • Also took advantage of the Client builder rework to rename "user" to "gateway" to match the spec.
  • The final STS capability is now supported. Draft support remains as well.
  • Updated to Netty 4.1.31.


I wish to thank the following contributors for their work on this release:

  • kashike
    • Client builder rework
    • Authentication refactor
    • JPMS support
    • JSR305 to Checker Framework transition
    • Bootstrap fix after proxy support was added
  • Carsten (MoriTanosuke)
    • Addition of SOCKS proxy support
  • Tim Hagemann (kumpelblase2)
    • Twitch whisper support
  • Jos Ahrens (Zarthus)
    • Updating the pom to use https links to this site
  • Adam Williams (lol768)
    • STS final spec testing

IRC Client Library 4.0.3 released!

Version 4.0.3 of the Kitteh IRC Client Library has been released!

This release fixes a bug that caused colons at the start of a message to be inappropriately removed.

IRC Client Library 4.0.2 released!

Version 4.0.2 of the Kitteh IRC Client Library has been released!

This release fixes a bug introduced in 4.0.0 that untracked channels when any user parted them.