catgirl(7)
π catgirl β the manual, but make it cute π
okay bestie so this is catgirl(7), from the Miscellaneous Information Manual, and I'm literally about to give you the whole entire tour. sit down, hydrate, put your hair up. π
β¨ NAME β¨
catgirl β IRC client π
πΈ DESCRIPTION πΈ
catgirl(7) is a terminal IRC client. that's it. that's the whole vibe. a whole IRC client, in your terminal, being gorgeous. π
Screenshot: imagine, if you will, text on a screen, next to names in a selection of colours. π¦ (yes that's the actual screenshot description and honestly? iconic. no notes.)
π« Notable Features π«
- Tab complete β the nicks you saw or got mentioned most recently get completed first, and commas are inserted between multiple nicks. so you can spam a whole group chat's worth of names without typing them out. slay.
- Prompt β the prompt literally tells you whether your input is gonna be read as a command or sent as a message. no guessing, no accidental commands, we love clarity in this house. β¨
- Split scroll β keeps the latest messages in view while you're scrolling. so you never lose the plot mid-yap. π
- URL detection β recent URLs from a particular user, or ones matching a substring, can be opened or copied. π«Ά
- Nick coloring β the color generation is based on usernames and stays stable across nick changes. and mentions of users inside messages get colored too. the consistency?? immaculate. π
- Topic diffing β the modified part of a channel topic change is highlighted. you see exactly what changed. π
- Ignore β you can toggle the visibility of filtered messages. filtered stays filtered until you say otherwise, bestie.
- Security β on FreeBSD and OpenBSD, the
restrictoption enables tight sandboxing. And sandboxing is always used on OpenBSD. no opt-out, no cap. π
π Non-features π
like, on purpose. these are the things catgirl does NOT do and we are at peace with it.
- Dynamic configuration β all configuration happens in a simple text file or on the command line. that's it. that's the whole system. π
- Multi-network β use a terminal multiplexer like
screen(1)ortmux(1)(or honestly just your regular terminal emulator tabs) to connectcatgirlto multiple networks. multi-network, just not from inside catgirl itself. - Reconnection β when the connection to the server is lost,
catgirlexits. periodt. you can run it in a loop or connect it to a bouncer, such aspounce: https://git.causal.agency/pounce - CTCP β apart from ACTION, this protocol is useless at best and enables abuse at worst. so. yeah. π
- Protocol coverage β IRCv3 extensions are implemented only where they contribute to the intended user experience. we're not implementing stuff for the sake of it.
- Cleartext IRC β TLS is now ubiquitous and certificates are easy to obtain. so, no. π
π§ INSTALLING π§
catgirl requires ncurses and libtls, provided by either LibreTLS: https://git.causal.agency/libretls/about (that's the one for OpenSSL) or by LibreSSL. it targets FreeBSD, OpenBSD, macOS and Linux.
catgirl and libtls may be packaged for your system, so check the Repology pages, bestie:
catgirl: https://repology.org/project/catgirl/versionslibretls: https://repology.org/project/libretls/versions
then it's the classic trio:
$ ./configure
$ make all
# make install
Packagers are encouraged to patch in their own text macros in input.c. π«Ά
if you're installing libtls manually to /usr/local, for example, make sure /usr/local/lib appears in /etc/ld.so.conf or /etc/ld.so.conf.d/*, and be sure to run ldconfig(8) once the library is installed. also set PKG_CONFIG_PATH so ./configure can find it:
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
the sandman wrapper is provided for macOS to stop and start catgirl on system sleep and wake π΄β¨ to enable it, configure with:
$ ./configure --enable-sandman
π FILES π
here's the whole source lineup, one bullet each, no skips:
chat.hβ global state and declarationschat.cβ startup and event loopirc.cβ IRC connection and parsingui.cβ curses interfacewindow.cβ window managementinput.cβ input handlinghandle.cβ IRC message handlingcommand.cβ command handlingbuffer.cβ line wrappingedit.cβ line editingcomplete.cβ tab completeurl.cβ URL detectionfilter.cβ message filteringlog.cβ chat loggingconfig.cβ configuration parsingxdg.cβ XDG base directoriessandman.mβ sleep/wake wrapper for macOS
and the scripts folder, which is doing the absolute most (affectionate):
scripts/chat.tmux.confβ exampletmux(1)configuration for multiple networks and automatic reconnectsscripts/notify-send.scptβnotify-send(1)in AppleScriptscripts/build-chroot.shβ chroot builder for OpenBSD and FreeBSDscripts/chroot-prompt.shβ name prompt wrapper for chrootscripts/chroot-man.shβman(1)implementation for chrootscripts/sshd_configβsshd(8)configuration for public chroot
π«Ά CONTRIBUTING π«Ά
the upstream URL of this project is β¨https://git.causal.agency/catgirlβ©. contributions in any form can be sent to β¨list+catgirl@causal.agencyβ©. for sending patches by email, see β¨https://git-send-email.ioβ©. mailing list archives are available at β¨https://causal.agency/list/catgirl.htmlβ©.
monetary contributions can be donated via Liberapay: https://liberapay.com/june/donate πΈ
π SEE ALSO π
catgirl(1),sandman(1)- IRC bouncer:
pounce: https://git.causal.agency/pounce - June McEnroe, IRC Suite, https://text.causal.agency/010-irc-suite.txt, June 19, 2020.
okay that's the whole page, bestie. go forth, connect, be the main character of your own IRC network. π
and this absolute gem was brought to you by Causal Agency, dated July 9, 2023 β it's catgirl(7), you're welcome, mwah ππΈ
π¦ where this page comes from
- debian trixie: catgirl 2.2a-1 Β· GPL-3.0-or-later WITH OpenSSL exception
- ubuntu noble: catgirl 2.2-1build1 Β· GPL-3.0-or-later WITH OpenSSL exception
- ubuntu questing: catgirl 2.2a-1
- ubuntu resolute: catgirl 2.2a-1build1 Β· GPL-3.0-or-later WITH OpenSSL exception
- ubuntu stonking: catgirl 2.2a-1build1 Β· GPL-3.0-or-later WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms