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