|README(7)||FreeBSD Miscellaneous Information Manual||README(7)|
- Tab complete: most recently seen or mentioned nicks are completed first. Commas are inserted between multple nicks.
- Indicators: the prompt clearly shows whether input will be interpreted as a command or sent as a message. An indicator appears when scrolled up in the chat history.
- Nick coloring: color generation based on usernames remains stable across nick changes. Mentions of users in messages are colored.
- URL detection: recent URLs from a particular user or matching a substring can be opened or copied.
- Ignore: visibility of filtered messages can be toggled.
- Dynamic configuration: all configuration happens in a simple text file or on the command line.
- Multi-network: a terminal multiplexer such as
tmux(1) (or just your regular terminal
emulator tabs) can be used to connect
catgirlto multiple networks.
- Reconnection: when the connection to the server is lost,
catgirlexits. It can be run in a loop or connected to a bouncer, such as pounce.
- CTCP: apart from ACTION, this protocol is useless at best and enables abuse at worst.
- Cleartext IRC: TLS is now ubiquitous and certificates are easy to obtain.
catgirlrequires LibreSSL (
-ltls) and ncurses (
-lncursesw). It primarily targets FreeBSD and macOS, as well as Linux.
./configure make all sudo make install PREFIX=/usr/local
If your system installs LibreSSL in a non-standard path, set
./configure. For example,
If your system is incapable of providing LibreSSL, consider building it manually and installing to /usr/local, adding /usr/local/lib to /etc/ld.so.conf and running ldconfig(8) if needed. It may also be necessary to create /etc/ssl/cert.pem as a symbolic link to /etc/ssl/certs/ca-certificates.crt or similar path.
sandman wrapper is provided for macOS
to stop and start
catgirl on system sleep and wake.
Install it as follows:
make scripts/sandman sudo make install-sandman
- global state and declarations
- startup and event loop
- IRC connection and parsing
- curses interface
- IRC message handling
- input command handling
- line editing
- tab complete
- URL detection
- message filtering
- chat logging
- configuration parsing
- XDG base directories
IRC bouncer: pounce
|April 4, 2020||Causal Agency|