Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
CATGIRL(1)		     General Commands Manual		      CATGIRL(1)

NAME
     catgirl -- IRC client

SYNOPSIS
     catgirl [-Relqv] [-C copy] [-H hash] [-I highlight] [-N notify] [-O open]
	     [-S bind] [-T[timestamp]] [-a plain] [-c cert] [-h host]
	     [-i ignore] [-j join] [-k priv] [-m mode] [-n nick] [-p port]
	     [-r real] [-s save] [-t trust] [-u user] [-w pass] [config ...]
     catgirl -o [-S bind] [-h host] [-p port] [config ...]
     catgirl -g cert

DESCRIPTION
     The  catgirl  IRC	client provides a curses interface for TLS-only Internet
     Relay Chat.  The only required option is -h, the host name to  connect  to.
     See  "EXAMPLES"  for managing further configuration.  Type /help in catgirl
     to view the list of "COMMANDS" and "KEY BINDINGS".

     Options can be loaded from files listed on the  command  line.   Files  are
     searched for in $XDG_CONFIG_DIRS/catgirl (usually ~/.config/catgirl) unless
     the  path	starts with `/', `./' or `../'.  Files and flags listed later on
     the command line take precedence over those listed earlier.

     Each option is placed on a line, and lines beginning with `#' are	ignored.
     The options are listed below following their corresponding flags.

     -C util | copy = util
	     Set  the utility used by /copy.  Subsequent copy options append ar-
	     guments to util.  The URL to copy is provided to util  on	standard
	     input.   The  default  is	the  first  available  of pbcopy(1), wl-
	     copy(1), xclip(1), xsel(1).

     -H seed,bound | hash = seed,bound
	     Set the initial seed of the nick and channel  color  hash	function
	     and  the maximum IRC color value produced by the function.  The de-
	     fault is 0,75.  To use only colors from the 16-color terminal  set,
	     use 0,15.	To disable nick and channel colors, use 0,0.

     -I pattern | highlight = pattern
	     Add a case-insensitive message highlight pattern, which may contain
	     `*',  `?' and `[]' wildcards as in glob(7).  The format of the pat-
	     tern is as follows:

		   nick[!user@host [command [channel [message]]]]

	     The commands which can be matched are: INVITE, JOIN, NICK,  NOTICE,
	     PART, PRIVMSG, QUIT, SETNAME.

     -N util | notify = util
	     Send  notifications using a utility.  Subsequent notify options ap-
	     pend arguments to util.  The window name and message  are	provided
	     to  util  as  two	additional  arguments,	appropriate  for notify-
	     send(1).

     -O util | open = util
	     Set the utility used by /open.  Subsequent open options append  ar-
	     guments  to  util.  The URL to open is provided to util as an argu-
	     ment.  The default is the first available of open(1), xdg-open(1).

     -R | restrict
	     Disable the /copy, /exec and /open commands, the notify option, and
	     viewing this manual with /help.

     -S host | bind = host
	     Bind to source address host when connecting to the server.  To con-
	     nect from any address over IPv4 only, use 0.0.0.0.  To connect from
	     any address over IPv6 only, use ::.

     -T[format] | timestamp [= format]
	     Show timestamps by default, in the  specified  strftime(3)  format.
	     The  format  string  may contain raw IRC formatting codes.  The de-
	     fault format is "%X".

     -a user:pass | sasl-plain = user:pass
	     Authenticate as user with pass using SASL PLAIN.  Leave pass  blank
	     to prompt for the password.

     -c path | cert = path
	     Load  the	TLS  client certificate from path.  The path is searched
	     for in the same manner as configuration files.  If the private  key
	     is in a separate file, it is loaded with priv.  With sasl-external,
	     authenticate  using  SASL	EXTERNAL.  Certificates can be generated
	     with -g.

     -e | sasl-external
	     Authenticate using SASL EXTERNAL, also known as  CertFP.	The  TLS
	     client certificate is loaded with cert.  See "Configuring CertFP".

     -g path
	     Generate  a TLS client certificate using openssl(1) and write it to
	     path.

     -h host | host = host
	     Connect to host.

     -i pattern | ignore = pattern
	     Add a case-insensitive message ignore pattern,  which  may  contain
	     `*',  `?' and `[]' wildcards as in glob(7).  The format of the pat-
	     tern is as follows:

		   nick[!user@host [command [channel [message]]]]

	     The commands which can be matched are: INVITE, JOIN, NICK,  NOTICE,
	     PART, PRIVMSG, QUIT, SETNAME.

     -j channels [keys] | join = channels [keys]
	     Join  the comma-separated list of channels with the optional comma-
	     separated list of channel keys.

     -k path | priv = priv
	     Load the TLS client private key from path.  The  path  is	searched
	     for in the same manner as configuration files.

     -l | log
	     Log       chat	  events       to	files	   in	   paths
	     $XDG_DATA_HOME/catgirl/log/network/channel/YYYY-MM-DD.log.

     -m mode | mode = mode
	     Set the user mode.

     -n nick [...] | nick = nick [...]
	     Set nickname to nick.  The default nickname is the value of the en-
	     vironment variable USER.  Additional space-separated nicks will  be
	     tried  in	order  if  the first is not available, and all nicks are
	     treated as highlight words.

     -o      Print the server certificate chain to standard output in PEM format
	     and exit.

     -p port | port = port
	     Connect to port.  The default port is 6697.

     -q | quiet
	     Raise the default message visibility  threshold  for  new	windows,
	     hiding general events (joins, quits, etc.).

     -r real | real = real
	     Set  realname  to	real.	The  default realname is the same as the
	     nickname.

     -s name | save = name
	     Save  and	 load	the   contents	 of   windows	from   name   in
	     $XDG_DATA_DIRS/catgirl,  or  an  absolute	or relative path if name
	     starts with `/', `./', or `../'.

     -t path | trust = path
	     Trust the self-signed certificate	loaded	from  path  and  disable
	     server  name  verification.   The	path is searched for in the same
	     manner as configuration files.  See  "Connecting  to  Servers  with
	     Self-signed Certificates".

     -u user | user = user
	     Set  username  to	user.	The  default username is the same as the
	     nickname.

     -v | debug
	     Log raw IRC messages to the <debug> window as well as standard  er-
	     ror if it is not a terminal.

     -w pass | pass = pass
	     Log  in  with the server password pass.  Leave pass blank to prompt
	     for the password.

   Configuring CertFP
     1.   Generate a new TLS client certificate:

		$ catgirl -g ~/.config/catgirl/example.pem

     2.   Connect to the server using the certificate:

		cert = example.pem
		# or: $ catgirl -c example.pem

     3.   Identify with services or use sasl-plain,  then  add	the  certificate
	  fingerprint to your account:

		/ns CERT ADD

     4.   Enable  SASL	EXTERNAL  to require successful authentication when con-
	  necting (not possible on all networks):

		cert = example.pem
		sasl-external
		# or: $ catgirl -e -c example.pem

   Connecting to Servers with Self-signed Certificates
     1.   Connect to the server and write its certificate to a file:

		$ catgirl -o -h irc.example.org > ~/.config/catgirl/example.pem

     2.   Configure catgirl to trust the certificate:

		trust = example.pem
		# or: $ catgirl -t example.pem

INTERFACE
     The catgirl interface is split into three areas.

   Status Line
     The top line of the terminal shows window statuses.  Only the currently ac-
     tive window and windows with activity are listed.	The status  line  for  a
     window might look like this:

	   1+ #ascii.town +3 ~7 @

     The  number  on  the left is the window number.  Following it may be one of
     `-', `+', `++', as well as `='.   These  indicate	the  message  visibility
     threshold and mute status of the window.

     On  the right side, the number following `+' indicates the number of unread
     messages.	The number following `~' indicates how many lines are below  the
     scroll  position.	 An `@' indicates that there is unsent input in the win-
     dow's "Input Line".

     catgirl will also set the terminal title, if possible, to the name  of  the
     network  and  active  window, followed by the unread count for that window,
     and the unread count for all other windows in parentheses.

   Chat Area
     The chat area shows messages and events.  Regular messages are  shown  with
     the nick between `<>' angle brackets.  Actions are shown with the nick pre-
     ceded by `*'.  Notices are shown with the nick between `-' hyphens.

     Blank lines are inserted into the chat as unread markers.

     While  scrolling,	the most recent 5 lines of chat are kept visible below a
     marker line.

   Input Line
     The bottom line of the terminal is where messages and commands are entered.
     When entering a message, action or notice, your nick appears on  the  left,
     as it would in the "Chat Area".  When entering a command, no nick is shown.

     Formatting  codes	are  shown  in the input line as reverse-video uppercase
     letters.  These will not appear in the sent message.

     Input that is too long to send as a single message will have  a  red  back-
     ground starting at the point where it will be split into a second message.

COMMANDS
     Any  unique prefix can be used to abbreviate a command.  For example, /join
     can be typed /j.

   Chat Commands
     /away [message]
	     Set or clear your away status.

     /cs command
	     Send a command to ChanServ.

     /invite nick
	     Invite a user to the channel.

     /join [channel [key]]
	     Join the named channel, the current channel, or the channel  you've
	     been invited to.

     /list [channel]
	     List channels.

     /me [action]
	     Send an action message.

     /msg nick message
	     Send a private message.

     /names  List users in the channel.

     /nick nick
	     Change nicknames.

     /notice message
	     Send a notice.

     /ns command
	     Send a command to NickServ.

     /ops    List channel operators.

     /part [message]
	     Leave the channel.

     /query nick
	     Start a private conversation.

     /quit [message]
	     Quit IRC.

     /quote command
	     Send a raw IRC command.  Use M-- to show unknown replies.

     /say message
	     Send a regular message.

     /setname name
	     Update realname if supported by the server.

     /topic [topic]
	     Show  or set the topic of the channel.  Press Tab twice to copy the
	     current topic.

     /whois [nick]
	     Query information about a user or yourself.

     /whowas nick
	     Query past information about a user.

   UI Commands
     /close [name | num]
	     Close the named, numbered or current window.

     /copy [nick | substring]
	     Copy the most recent URL from nick or matching substring.

     /debug  Toggle logging in the <debug> window.

     /exec command
	     Run command with SHELL and interpret its output  as  input  to  the
	     current window, including as commands.

     /help   View this manual.	Type q to return to catgirl.

     /help topic
	     List  the	server	help for a topic.  Try /help index for a list of
	     topics.

     /highlight [pattern]
	     List message highlight patterns or temporarily add a  pattern.   To
	     permanently add a pattern, use the highlight option.

     /ignore [pattern]
	     List message ignore patterns or temporarily add a pattern.  To per-
	     manently add a pattern, use the ignore option.

     /move [name] num
	     Move the named or current window to number.

     /o ...  Alias of /open.

     /open [count]
	     Open each of count most recent URLs.

     /open nick | substring
	     Open the most recent URL from nick or matching substring.

     /unhighlight pattern
	     Temporarily remove a message highlight pattern.

     /unignore pattern
	     Temporarily remove a message ignore pattern.

     /window
	     List all windows.

     /window name | substring
	     Switch to window by name or matching substring.

     /window num | /num
	     Switch to window by number.

   Operator Commands
     /ban [mask ...]
	     List or ban masks from the channel.

     /deop [nick ...]
	     Revoke channel operator status from users or yourself.

     /devoice [nick ...]
	     Revoke voice from users or yourself in the channel.

     /except [mask ...]
	     List or add masks to the channel ban exception list.

     /invex [mask ...]
	     List or add masks to the channel invite list.

     /kick nick [message]
	     Kick a user from the channel.

     /mode [modes] [param ...]
	     Show  or  set  channel modes.  In the <network> window, show or set
	     user modes.

     /op [nick ...]
	     Grant users or yourself channel operator status.

     /unban mask ...
	     Unban masks from the channel.

     /unexcept mask ...
	     Remove masks from the channel ban exception list.

     /uninvex mask ...
	     Remove masks from the channel invite list.

     /voice [nick ...]
	     Grant users or yourself voice in the channel.

KEY BINDINGS
     The catgirl interface provides emacs(1)-like line editing as well	as  keys
     for  IRC formatting.  The prefixes C- and M- represent the control and meta
     (alt) modifiers, respectively.

   Line Editing
     C-a     Move to beginning of line.
     C-b     Move left.
     C-d     Delete next character.
     C-e     Move to end of line.
     C-f     Move right.
     C-k     Delete to end of line.
     C-t     Transpose characters.
     C-u     Delete to beginning of line.
     C-w     Delete previous word.
     C-x     Expand a text macro beginning with `\'.
     C-y     Paste previously deleted text.
     M-Enter
	     Insert a newline without sending a command.
     M-b     Move to previous word.
     M-d     Delete next word.
     M-f     Move to next word.
     M-q     Collapse all whitespace.
     Tab     Complete nick, channel, command or macro.

     Arrow and navigation keys also work as expected.

   Window Keys
     C-l     Redraw the UI.
     C-n     Switch to next window.
     C-p     Switch to previous window.
     C-r     Scroll to previous line matching input.
     C-s     Scroll to next line matching input.
     C-v     Scroll down a page.
     M-+     Raise message visibility threshold, hiding ignored  messages,  gen-
	     eral events (joins, quits, etc.), or non-highlighted messages.
     M--     Lower  message  visibility  threshold, showing ignored messages and
	     unknown replies.
     M-=     Toggle mute.  Muted windows do not appear in the status line unless
	     you are mentioned.
     M-/     Switch to previously selected window.
     M-<     Scroll to top.
     M->     Scroll to bottom.
     M-n     Switch to window by number 0-9.
     M-a     Cycle through unread windows.
     M-l     List the contents of the  window  without	word-wrapping  and  with
	     timestamps.  Press Enter to return to catgirl.
     M-m     Insert a blank line in the window.
     M-n     Scroll to next highlight.
     M-p     Scroll to previous highlight.
     M-s     Reveal spoiler text.
     M-t     Toggle timestamps.
     M-u     Scroll to first unread line.
     M-v     Scroll up a page.

   IRC Formatting
     C-z C-v  Insert the next input character literally.
     C-z b    Toggle bold.
     C-z c    Set or reset color.
     C-z i    Toggle italics.
     C-z o    Reset formatting.
     C-z p    Manually toggle paste mode.
     C-z r    Toggle reverse color.
     C-z s    Set spoiler text (black on black).
     C-z u    Toggle underline.

     Some color codes can be inserted with the following:

     C-z A    gray	 C-z N	  brown (dark red)
     C-z B    blue	 C-z O	  orange (dark yellow)
     C-z C    cyan	 C-z P	  pink (light magenta)
     C-z G    green	 C-z R	  red
     C-z K    black	 C-z W	  white
     C-z M    magenta	 C-z Y	  yellow

     To  set  other colors, follow C-z c by one or two digits for the foreground
     color, optionally followed by a comma and one or two digits for  the  back-
     ground color.  To reset color, follow C-z c by a non-digit.

     The color numbers are as follows:

      0    white		    8	 yellow
      1    black		    9	 light green
      2    blue 		   10	 cyan
      3    green		   11	 light cyan
      4    red			   12	 light blue
      5    brown (dark red)	   13	 pink (light magenta)
      6    magenta		   14	 gray
      7    orange (dark yellow)    15	 light gray
     99    default

ENVIRONMENT
     SHELL   The shell used by /exec.  The default is /bin/sh.

     USER    The default nickname.

FILES
     $XDG_CONFIG_DIRS/catgirl
	     Configuration  files  are	searched  for first in $XDG_CONFIG_HOME,
	     usually ~/.config, followed by the colon-separated  list  of  paths
	     $XDG_CONFIG_DIRS, usually /etc/xdg.

     ~/.config/catgirl
	     The most likely location of configuration files.

     $XDG_DATA_DIRS/catgirl
	     Save  files  are  searched  for  first  in  $XDG_DATA_HOME, usually
	     ~/.local/share, followed  by  the	colon-separated  list  of  paths
	     $XDG_DATA_DIRS, usually /usr/local/share:/usr/share.

     ~/.local/share/catgirl
	     The most likely location of save files.

EXIT STATUS
     The catgirl client exits 0 if requested by the user, EX_UNAVAILABLE (69) if
     the connection is lost, and >0 if any other error occurs.

EXAMPLES
     Join #ascii.town from the command line:

	   $ catgirl -h irc.tilde.chat -j '#ascii.town'

     Create a configuration file in ~/.config/catgirl/tilde:

	   host = irc.tilde.chat
	   join = #ascii.town

     Load the configuration file:

	   $ catgirl tilde

STANDARDS
     Adam  and	Attila	Molnar,  invite-notify	Extension,  IRCv3 Working Group,
     https://ircv3.net/specs/extensions/invite-notify.

     Jack Allnutt, Val Lorentz, and Daniel Oaks, Modern IRC Client Protocol, ir-
     cdocs, https://modern.ircdocs.horse/index.html.

     Kiyoshi Aman, Kyle  Fuller,  Stephan  Kochen,  Alexey  Sokolov,  and  James
     Wheare,  Message  Tags, IRCv3 Working Group, https://ircv3.net/specs/exten-
     sions/message-tags.

     Kiyoshi   Aman,   extended-join	Extension,    IRCv3    Working	  Group,
     https://ircv3.net/specs/extensions/extended-join.

     Waldo  Bastian,  Ryan  Lortie,  and  Lennart Poettering, XDG Base Directory
     Specification, https://specifications.freedesktop.org/basedir-spec/basedir-
     spec-latest.html, November 24, 2010.

     Christine Dodrill, Ryan, and James Wheare, chghost Extension, IRCv3 Working
     Group, https://ircv3.net/specs/extensions/chghost.

     Kyle Fuller, Stephan Kochen, Alexey Sokolov, and James Wheare,  server-time
     Extension,  IRCv3 Working Group, https://ircv3.net/specs/extensions/server-
     time.

     Lee Hardy, Perry Lorier, Kevin L. Mitchell, Attila Molnar,  Daniel  Oakley,
     William  Pitcock,	and  James  Wheare, Client Capability Negotiation, IRCv3
     Working Group, https://ircv3.net/specs/core/capability-negotiation.

     S. Josefsson, The Base16, Base32, and  Base64  Data  Encodings,  IETF,  RFC
     4648, https://tools.ietf.org/html/rfc4648, October 2006.

     C.   Kalt,   Internet   Relay   Chat:  Client  Protocol,  IETF,  RFC  2812,
     https://tools.ietf.org/html/rfc2812, April 2000.

     Janne  Mareike  Koschinski,  setname  Extension,	IRCv3	Working   Group,
     https://ircv3.net/specs/extensions/setname.

     Mantas   Mikulnas,   userhost-in-names   Extension,  IRCv3  Working  Group,
     https://ircv3.net/specs/extensions/userhost-in-names.

     Daniel Oaks, IRC Formatting, ircdocs,  https://modern.ircdocs.horse/format-
     ting.html.

     Daniel   Oaks,   Standard	 Replies   Extension,	IRCv3	Working   Group,
     https://ircv3.net/specs/extensions/standard-replies.

     J. Oikarinen and D. Reed, Internet Relay Chat  Protocol,  IETF,  RFC  1459,
     https://tools.ietf.org/html/rfc1459, May 1993.

     William  Pitcock  and  Jilles  Tjoelker, IRCv3.1 SASL Authentication, IRCv3
     Working Group, https://ircv3.net/specs/extensions/sasl-3.1.

     William   Pitcock,   multi-prefix	 Extension,   IRCv3    Working	  Group,
     https://ircv3.net/specs/extensions/multi-prefix.

     James Wheare, Message IDs, IRCv3 Working Group, https://ircv3.net/specs/ex-
     tensions/message-ids.

     James     Wheare,	   reply    Client    Tag,    IRCv3    Working	  Group,
     https://ircv3.net/specs/client-tags/reply.

     K. Zeilenga, Ed., The PLAIN Simple Authentication and Security Layer (SASL)
     Mechanism,  IETF,	RFC  4616,  https://tools.ietf.org/html/rfc4616,  August
     2006.

   Extensions
     The  catgirl  client  implements the causal.agency/consumer vendor-specific
     IRCv3 capability offered by pounce(1).  The consumer position is stored  in
     the save file.

AUTHORS
     June McEnroe <june@causal.agency>

BUGS
     Send   mail   to	<list+catgirl@causal.agency>   or  join  #ascii.town  on
     irc.tilde.chat.

FreeBSD ports 15.quarterly	October 11, 2023		      CATGIRL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=catgirl&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help