Title: Port of the week: catgirl irc client
Author: Solène
Date: 22 February 2021
Tags: openbsd70 openbsd irc catgirl portoftheweek
Description: 

# Introduction

In this Port of the Week I will introduce you to the IRC client
catgirl.  While there are already many IRC clients available (and good
ones), there was a niche that wasn't filled yet, between minimalism
(ii, irCII) and full featured clients (irssi, weechat) in the terminal
world.  Here comes catgirl, a simple IRC client coming with enough
features to be comfortable to use for heavy IRC users.

Catgirl has the following features: tab completion, split scrolling,
URL detection, nick coloring, ignores filter.  On the other hand, it
doesn't support non-TLS networks, CCTP, multi networks or dynamic
configuration.  If you want to use catgirl with multiples networks, you
have to run it once per network.

Catgirl will be available as a package in OpenBSD starting with version
6.9.

OpenBSD security bonus: catgirl features a very good use of unveil to
reduce file system access to the minimum required
(configuration+logs+certs), reducing the severity of an exploit.  It
also has a restricted mode when using the -R parameter that reduce
features like notifications or url handling and tight the pledge list
(allowing systems calls).
Catgirl official website
# Configuration

A simple configuration file to connect to the irc.tilde.chat server
would look like the following file that must be stored under
~/.config/catgirl/tilde

```Catgirl configuration file sample
nick = solene_nickname
real = Solene
host = irc.tilde.chat
join = #foobar-channel
```

You can then run catgirl and use the configuration file but passing the
config file name as parameter.

```shell command to start catgirl
$ catgirl tilde
```

# Usage and tips

I recommend reading catgirl man page, everything is well explained
there.  I will cover most basics needs here.
Catgirl man page
Catgirl only display one window at a time, it is not possible to split
the display, but if you scroll up you will see the last displayed lines
and the text stream while keeping the upper part displaying the
history, it is a neat way to browse the history without cutting
yourself from what's going on in the channel.

Channels can be browsed from keyboard using Ctrl+N or Ctrl+P like in
Irssi or by typing /window NUMBER, with number being the buffer number.
Alt+NUMBER could also be used to switch directly to buffer NUMBER.

Searches in buffer could be used by typing a word in your input and
using Ctrl+R to search backward or Ctrl+S for searching forward (given
you are in the history of course).

Finally, my most favorite feature which is missing in minimal clients
is Alt+A, jumping to next buffers I have to read (also yes, catgirl
keep a line with information about how many messages in channels since
last time you didn't read them).  Even better, when you press alt+A
while there is nothing to read, you jump back to the channel you
manually selected last, this allow to quickly read what you missed and
return to the channel you spend all your time on.

# Conclusion

I really love this IRC client, it replaced Irssi that I used for years
really easily because most of the key bindings are the same, but I am
also very happy to use a client that is a lot safer (on OpenBSD).  It
can be used with tmux for persistence but also connect to multiple
servers and make it manageable.