Change Log

2022-05-07 Version 1.4.0

  • Features:
    • Add support for IRCv3 standard-replies (#354), by @progval
    • Add support for SASL EXTERNAL (#352), by @progval
    • Add support for invite-notify (#359), by @progval
    • Add conf item server-visibility for setting default server visiblity (#361), by @SilverRainZ
    • Add support for server-time (#345), by @progval
    • Add /clear command for clearing messages of current buffer (#268), by @SilverRainZ
  • Bug fixes:
    • Fix workflow for building MS Windows release artifact (#360), by @lifeibiren
  • Changes:
    • Make the buffer menu apply to the right-clicked item instead of the active buffer (#353), by progval
    • Srain now accepting donations through OpenCollective (
    • Disable workflow for building debian release artifact since we have offical debian package (99d9d86)

2022-02-10 Version 1.3.2

  • Features:
    • Add French translation (#351), by @progval
  • Bug fixes:
    • Silence assertion failure on /part command (#348), by @progval
    • Silence “Unknown capability” warning on trailing whitespace (#349), by @progval
  • Changes:
    • Add tooltips to buttons with no text(#350), by @progval
    • Srain is added to offical repository of Debian, see Debian for details

2021-12-18 Version 1.3.1

  • Bug fixes:
    • Fix build of macOS (#339), by @SilverRainZ
    • Make channel messages with origin out of channels can be shown (#336), by @progval
    • Rejoin channels after NICKSERV authentication finishes (#274), by @SilverRainZ

2021-12-18 Version 1.2.5

2021-09-23 Version 1.3.0

  • Features:
    • Implement ISUPPORT parsing + the UTF8ONLY IRCv3 specification (#331), thanks to @progval
    • Add support for RPL_UMODEIS (#331), thanks to @progval
    • Make nick completion case-insensitive (#333), thanks to @progval
    • Add button for inserting emoji (#279)
  • Bug fixes:
    • Fix configuration syntax errors caused by trailing commas (#330), thanks to @progval

2021-07-18 Version 1.2.4

  • Bug fixes:
    • Fix bug casued by #316 (#319)
    • Fix crach when URL preview async task failed (#322)

2021-06-26 Version 1.2.3

  • Bug fixes:
    • Eliminate GDK warning (#316)

2021-05-30 Version 1.2.2

  • Changed:
    • Add IRC network (#311)
    • Updated Dutch translation (b6830e9)
  • Bug fixes:

2021-04-02 Version 1.2.1

  • Features:
  • Bug fixes:
    • Minor fixes (#290)

2021-02-28 Version 1.2.0

  • Features:

    • Switch build system from Make to Meson (#266)
    • Add FreeBSD implementations for srn_get_executable_{path,dir}, thanks to @wahjava
    • Add /quote command for sending special IRC commands, thanks to @hno (#283)
    • Add support for hiding server buffer (#287)
  • Bug fixes:

    • Fix an use-after-free BUG (#267)
    • Fix implicit declaration error on some systems, thanks to @lgbaldoni (#270)

2020-10-01 Version 1.1.3

  • Bug fixes:

    • Fix an use-after-free BUG (#267)

2020-08-10 Version 1.1.2


This release contains only improvement for MS Windows, user of other platform can ignore it.

  • Features:
    • Binary for MS Windows now can automatically built via Github Actions, thanks to @lifeibiren (#259), please refer to Windows for more details
  • Changes:
    • For ease of running on windows, Srain’s executable path is added to the search paths of {configuration,data} file. Thanks to @lifeibiren (#259)

2020-06-27 Version 1.1.1

  • Changes:
    • Improve auto-scroll policy of message list (#255)
  • Bug fixes:
    • Fix TLS certificate verification error on glib-networking 2.64.3 (#251)
    • Fix crash when connecting to an invalid host (#234)

2020-05-24 Version 1.1.0

  • Features:
    • Support multiple selection of message (#138)
    • Support jump to mentioned message (#243)
    • Nickname will be highlighted when mentioned (#243)
    • Auto build deb package (#238)
  • Changes:
    • Improve fcous control of UI
    • Replace appdata with metainfo (#240)
    • Validate metainfo with appstream-util (#242)
  • Bug fixes:
    • Some implicit declarations fixes (#236)
    • Some typo fixes (#239)

2020-04-11 Version 1.0.2

  • Features:
    • Add MAN documentation (deaf723)
    • Add more predefined IRC networks: DALnet, EFnet, IRCnet, Undernet and QuakeNet (#228)
  • Changes:
    • Build: Allow setting CC variable via environment (#224)
    • Add channel related messages to corresponding buffer as possible (#149)
    • Improve widget focus control (#229)
    • Drop unused icons (6239fe5)
    • Provide clearer error message when connecting (#233)
    • Update gentoo installation documentation Gentoo (ceb5ca3)
  • Bug fixes:
    • Truncate long message before sendisg (#227)
    • Deal with invalid UTF-8 string (50e7757)
    • Fix incorrect user number of channel user list (#230)
    • Fix incorrect icon install path (9f07380)

2020-03-14 Version 1.0.1

  • Features:
    • Auto rename to original nick when ghost quit (#198)
    • Add hackint IRC network (#201), thanks to @kpcyrd
    • Add Dutch translation (#215), thanks to @Vistaus
    • Add two FAQs to documentation (#217)
    • Add debian pack script (contrib#1), thanks to @tomac4t. Please refer to Debian to build a deb package
  • Changes:
    • Move continuous integration from travis CI to github actions (#203, #204), thanks to @tomac4t
    • Make header bar buttons repect default belief (#205, #218)
  • Bug fixes:
    • Fix case sensitivity issue for IRC messages (#202), thanks to @hhirtz
    • Fix invalid changelog section of appdata file (#214)
    • Fix missing dependences in documentation (#216), thanks to @avoidr

2020-02-24 Version 1.0.0

  • Changes:
  • Bug fixes:
    • Allow Srain runs without dbus secrets service (#195)
    • Fix nick generation logical (39ced08)


1.0.0 is the first stable release of Srain, enjoy!

2019-10-07 Version 1.0.0rc9999

  • Features:
    • Activate corresponding buffer when channel URL is clicked (#190)
    • Command alias support (#188)
    • List predefined servers via command, see /server for details (656f3e5)
  • Changes:
    • Replace all icons with freedesktop standard icons (#120)
  • Bug fixes:
    • Fix wrong usage of GError (#179)
    • Fix image preview problem when image is hard to detect type (#163)
    • Fix memory leak of pattern filter (9464a9e)
    • Fix the breaking “abort sending” icon (#144)
    • Fix the invite menu of user (9f98cbb)

2019-06-14 Version 1.0.0rc5

2019-05-13 Version 1.0.0rc4

  • Added:

    • New dependency libsecret
    • Add password storage support
    • Add command line options --no-auto, used to require Srain not to automatically connect to servers
    • Add russian translation, thanks to @tim77
    • Allow user send slash(/) prefixed message
  • Removed:

    • Drop all password fields in configuration file
  • Changed:

    • Enable CSD(Client-Side Decoration) by default
    • Update chinese translation

2019-04-14 Version 1.0.0rc3

2019-01-24 Version 1.0.0rc2

2018-09-10 Version 1.0.0rc1

2018-02-28 Version 0.06.4

  • Changed:

    • Change default application ID to im.srain.Srain
  • Added:

    • CTCP support, including request & response CLIENTINFO, FINGER, PING, SOURCE, TIME, VERSION, USERINFO messages. DCC message is not yet supported. Use command /ctcp for sending a CTCP request

    • Login method support, you can specify it by configuration file option server.login_method:

      • sasl_plain: SASL PLAIN authentication support, will use server.user.username as identity, and use server.user.passwd as password
    • Added documentation Support Tables used to show Srain’s features, inspried by

    • Added a semantic version parser, not yet used

    • Added appdata file which requier by application store, thanks to @cpba

    • openSUSE package is available, please refer to openSUSE for details, thanks to @alois

    • Flatpak package is available, please refer to Fedora for details, thanks to @cpba

  • Improved:

    • Fixed a logical error in IRC message parser: all parameters are equal whether matched by <middle> or <trailing>, thanks to @DanielOaks
    • Improved connection state control, you can smoothly disconnect/quit from server even it is unresponsive
    • Fixed truncated message output by /server list subcommand
    • Fixed crash at g_type_check_instance() under GLib 2.54.3+
    • Fixed: Do not free a SrianServerBuffer which has non-empty buffer
    • Ensure the QUIT message can be sent before application shutdown
    • Removed entry from desktop file, thanks to @TingPing
    • Fixed grammer of join message, thanks to @raindev
    • Re-enable CI for Srain: ci-status

2017-12-22 Version 0.06.3

  • Changed:
    • Configurable file option tls_not_verify in irc block in server block is renamed to tls_noverify, old option name is still supported
    • Command option tls-not-verify for /server and /connect is renamed to tls-noverify, old option name is still supported
  • Added:
    • Connect popover supports connect to predefined server
    • Join popover supports channel search
  • Improved:
    • Modified margin and padding of some widgets
    • Improved the style of unread message counter
    • Fixed markup parse error of decorator
    • Fixed crashing while connecting from connect popover
    • Fixed use after free while removing user
    • Improved the performance and extensibility of user list
    • Improved compatibility with older versions of GTK(> 3.16)
    • Refactor the code of chat panel, helpful for the next development

2017-09-12 Version 0.06.2

  • Added:
    • mIRC color support, can be disabled via setting render_mirc_color option in chat block in server block to false
  • Improved:
    • Better error reporting while operating the UI
    • IRC URL can be opened directly within the application
    • Text in input entry, connection panel and join panel will not be cleared while operation is not successful
    • Fixed: in some cases, nickname registration will case infinity loop
    • Decorator and filter now can process xml message
    • Imporved the handling of channel topic

2017-08-18 Version 0.06.1

  • Added:
    • Added GPL copyright statements
    • RPL_CHANNEL_URL (328) message support
    • Command line options support, type srain -h for help message
    • Support for Creating server and joining channel from IRC URL
    • New dependency libsoup
    • Add reconnect timer: if connection fails, Srain will wait for 5 seconds then try to connect again. If it still fails, waiting time will increase by 5 second
  • Improved:
    • Fixed the crash when QUIT
    • Fixed: avoid sending empty password
    • More empty parameters checks
    • Imporve server connection status control

2017-07-29 Version 0.06

  • Changed:
    • The third time of refactor ;-)
    • New command parser, for the syntax, refer to Syntax.
    • Changed the format of Chat log
    • The /relay & /unrelay command doesn’t support custom delimiter, this function will be implemented as python plugin in the future
    • Use reStructuredText for document instead of Markdown
  • Added:
    • Message filter: mechanism for filtering message
    • Message Decorator: mechanism for changing message
    • Install script for Gentoo, thanks to @rtlanceroad !
    • New command /rignore & /unrignore for ignore message using regular expression, thanks to @zwindl !
    • Config file support
    • Configurable log module, more convenient for developing and reporting issue
    • New Return value type, for more friendly error reporting
    • New command /server for IRC servers management
    • Srain home page is available at:
    • Srain help documentation is available at:
  • Removed:
    • Remove libircclient dependence
  • Improved:
    • Improve reconnection stuff: auto reconnect when ping time out
    • More accurate message mention
    • Display preview image in correct size
    • Any number of image links in message can be previewed
    • HTTP(and some other protocols) link, domain name, email address and IRC channel name in topic and messages can be rendered as hyper link
    • The sent message can be merged to last sent message
    • Fixed some bugs

2016-09-19 Version 0.05.1

  • Create missing directory: $XDG_CACHE_HOME/srain/avatars

2016-08-27 Version 0.05

  • Changed:
    • Port to libircclient
      • SSL connection support
      • Server password support
      • Channel password support
  • Added:
    • Convenience GtkPopover for connecting and joining
    • Nick popmenu
    • Translations: zh_CN
    • Forward message
    • Chat log
    • Colorful user list icon
    • Mentioned highlight
    • Desktop notification
  • Improved:
    • More friendly User interface
    • Stronger {upload,avatar} plugin
    • Fixed a lot of bugs

2016-04-30 Version 0.03

  • New interface between UI and IRC module
  • Multi-server support
  • Channel name is not case sensitive now
  • /quit command will close all SrainChan of a server
  • Fix GTK-Warning when close a SrainCHan


0.03 is a pre-release, some functions are no completed yet. it also has some undetected bugs.

2016-04-13 Version 0.02

  • Bugs fixed
  • Port to GTK+-3.20


0.02 is a pre-release, some functions are no completed yet. it also has some undetected bugs.

2016-04-07 Version 0.01

  • Implement basic functions of a IRC client
  • Themes: Silver Rain (light)
  • Simple python plugin support:
    • Auto upload image to pastebin (
    • Get github avatar according nickname
    • NB: plugin will separated from this repo in the future
  • Image preview from URL
  • Relay bot message transfrom
  • Nick auto completion
  • Combine message from same person


0.01 is a pre-release, some functions are no completed yet. it also has some undetected bugs.