cio

a simple irc client
Download | Log | Files | Refs | README | LICENSE

cio.1 (3637B)


      1 .Dd April 2, 2026
      2 .Dt CIO 1
      3 .Os
      4 .Sh NAME
      5 .Nm cio
      6 .Nd a minimal IRC client
      7 .
      8 .Sh SYNOPSIS
      9 .Nm cio
     10 .Op Fl hvTV
     11 .Op Fl l Ar logfile
     12 .Op Fl n Ar nick
     13 .Op Fl p Ar port
     14 .Op Fl s Ar server
     15 .Op Fl u Ar user
     16 .Op Fl c Ar certfile
     17 .
     18 .Sh DESCRIPTION
     19 .Nm
     20 is a multiplexing curses interface for IRC featuring SASL authentication,
     21 infinite scrollback, and automatic reconnection.
     22 The options are as follows:
     23 .Bl -tag -width Ds
     24 .It Fl T
     25 Disable TLS and connect using a plaintext socket.
     26 .It Fl V
     27 Disable TLS hostname validation.
     28 .It Fl l Ar logfile
     29 Append all IRC activity, including timestamps and channel names, to
     30 .Ar logfile .
     31 .It Fl n Ar nick
     32 Set the IRC nickname.
     33 If not provided,
     34 .Nm
     35 will check the
     36 .Ev IRCNICK
     37 environment variable, then the
     38 .Ev USER
     39 variable.
     40 .It Fl p Ar port
     41 Connect to the server on
     42 .Ar port .
     43 Defaults to 6697.
     44 .It Fl s Ar server
     45 Connect to the IRC server at
     46 .Ar server .
     47 Defaults to irc.oftc.net.
     48 .It Fl u Ar user
     49 Set the IRC username (ident).
     50 Defaults to the value of the
     51 .Ev USER
     52 environment variable, or "anonymous".
     53 .It Fl c Ar certfile
     54 Use
     55 .Ar certfile
     56 as a TLS client certificate.
     57 This is used for both establishing the encrypted connection and for SASL
     58 EXTERNAL (CertFP) authentication.
     59 .El
     60 .
     61 .Sh COMMANDS
     62 .Ss Chat Commands
     63 Chat commands are submitted with a newline.
     64 They are not prepended with a '/'.
     65 Any text not matching a command is sent as a message to the currently
     66 focused channel.
     67 .Bl -tag -width Ds
     68 .It Ic j Ar #channel
     69 Join a given channel
     70 .It Ic l Op Ar #channel
     71 Leave the given channel(s), defaults to current channel.
     72 .It Ic m Ar recipient message
     73 Sends a private message.
     74 .It Ic r Ar message
     75 Sends a raw IRC message to the server.
     76 .It Ic q
     77 Quits
     78 .Nm .
     79 .El
     80 .Ss Interface Commands
     81 .Bl -tag -width Ds
     82 .It Ic ^n
     83 Increases focused window index by 1 (wrapping).
     84 .It Ic ^p
     85 Decreases focused window index by 1 (wrapping).
     86 .It Ic PAGEUP
     87 Scrolls chat up by 15 lines.
     88 .It Ic PAGEDOWN
     89 Scrolls chat down by 15 lines.
     90 .El
     91 .Ss Line Editing
     92 The following key bindings are available when entering text:
     93 .Bl -tag -width Ds
     94 .It Ic ^A
     95 Move cursor to the beginning of the line.
     96 .It Ic ^E
     97 Move cursor to the end of the line.
     98 .It Ic ^B No \&| Ic LEFTARROW
     99 Move cursor one character to the left.
    100 .It Ic ^F No \&| Ic RIGHTARROW
    101 Move cursor one character to the right.
    102 .It Ic ^K
    103 Delete from the cursor to the end of the line.
    104 .It Ic ^U
    105 Delete from the beginning of the line to the cursor.
    106 .It Ic ^D
    107 Delete character under the cursor.
    108 .It Ic ^H
    109 Delete character to the left of the cursor.
    110 .It Ic ^W
    111 Delete word to the left of the cursor.
    112 .It Ic BACKSPACE
    113 Delete character to the left of the cursor.
    114 .It Ic ENTER
    115 Submit current line.
    116 .El
    117 .
    118 .Sh ENVIRONMENT
    119 .Bl -tag -width Ds
    120 .It Ev USER
    121 The username to use.
    122 Overridden by
    123 .Fl u .
    124 .It Ev IRCNICK
    125 The nickname to use.
    126 Overridden by
    127 .Fl n .
    128 .It Ev IRCPASS
    129 The password to used for SASL PLAIN authentication.
    130 This is used if no certificate is provided via
    131 .Fl c .
    132 .El
    133 .
    134 .Sh EXIT STATUS
    135 .Nm
    136 exits 0 if requested by the user and >0 if any other error occurs.
    137 .Sh EXAMPLES
    138 .Ss Using CertFP
    139 .Bl -enum
    140 .It
    141 Generate a new TLS client certificate:
    142 .Bd -literal
    143 $ openssl req -x509 -newkey rsa:4096 -nodes -days 365 \\
    144 	-keyout user.pem -out user.pem -subj "/CN=CertFP"
    145 $ chmod 600 user.pem
    146 .Ed
    147 .It
    148 Connect to the server using the certificate:
    149 .Bd -literal
    150 $ cio -c user.pem
    151 .Ed
    152 .It
    153 Identify with the server normally then add the certificate fingerprint to
    154 your account:
    155 .Bd -literal
    156 m nickserv cert add
    157 .Ed
    158 .El
    159 .
    160 .Sh HISTORY
    161 .Nm
    162 is a fork of
    163 .Lk https://c9x.me/irc/ irc.c
    164 written by
    165 .An Quentin Carbonneaux Aq Mt qcarbonneaux@gmail.com .
    166 .
    167 .Sh AUTHORS
    168 .An Andrew Kloet Aq Mt andrew@kloet.net