1.Dd $Mdocdate: July 31 2018 $2.Dt HII 13.Os4.Sh NAME5.Nm hii6.Nd a filesystem based IRC client7.Sh SYNOPSIS8.Nm hii9.Op Fl k Pa key10.Op Fl c Pa cert11.Op Fl r Pa certs12.Op Fl f Ar name13.Op Fl i Pa prefix14.Op Fl n Ar nick15.Op Fl p Ar port16.Op Fl t17.Op Fl d18.Op Fl s19.Ar server20.Op Ar target ...21.Sh DESCRIPTION22.Nm23is a file-based IRC client.24It is heavily inspired by25.Xr ii 126but offers more features, e.g. built-in TLS support.27.Pp28Just as29.Xr ii 130.Nm31creates a directory tree for the server (the master channel) containing32subdirectories for every conversation started on that server.33This includes public IRC channels and private conversations with other34users.35.Pp36On startup37.Nm38attempts to connect to the given39.Ar server .40If a connection was established successfully it automatically creates41directories for the given42.Ar targets43(if any).44Directories for users are only created automatically if the server45supports the IRCv3.246.Em MONITOR47command and the user is currently online.48.Nm49makes no attempt to reestablish the connection, it simply terminates50when the connection to the IRC server is lost.51.Pp52The options are as follows:53.Bl -tag -width Ds54.It Fl k Pa key55Path to PEM encoded key used for client authorization using TLS, also56known as57.Em CertFP .58This requires59.Fl c60and61.Fl t62to be given as well.63.It Fl c Pa cert64Certificate65Path to PEM encoded certificate used for client authorization using TLS,66also known as67.Em CertFP .68This requires69.Fl k70and71.Fl t72to be given as well.73.It Fl r Pa certs74Path to file containing root certificates.75This requires76.Fl t77to be given as well.78Defaults to the host's root CA set.79.It Fl f Ar name80Real name associated with the user's nick.81Defaults to the user's login name.82.It Fl i Pa prefix83Path to the root directory used for creating channel and server84subdirectory.85Default to86.Pa ~/irc .87.It Fl n Ar nick88Nick name used on the IRC server.89Defaults to the user's login name.90.It Fl p Ar port91TCP port used to connect to the IRC server.92Defaults to 6667.93.It Fl t94Enables TLS, which is disabled by default.95.It Fl d96Write debug messages to standard output.97Contrary to text in the98.Pa out99file the debug output is not sanitized and might contain ANSI escape100sequences or other non-printable characters.101.It Fl s102Attempt SASL authentication using the SASL EXTERNAL method with TLS103client certificates.104This requires105.Fl k ,106.Fl c ,107and108.Fl t109to be given as well.110.El111.Sh FILES112.Bl -tag -width "usr"113.It Pa in114A FIFO used to send messages to the IRC server.115If the message is prefixed with a backlash it is send to the server as116is.117Otherwise it is interpreted as a118.Em PRIVMSG119and send to the target associated with the subdirectory.120This file is removed on program termination.121.It Pa out122A regular file containing messages received for the target associated123with the subdirectory.124This file is not removed on program termination.125.It Pa id126A regular file containing a unique id for identifying the target127associated with the subdirectory.128This file does not exist in the master channel directory and is not129removed on program termination.130.It Pa usr131A UNIX domain socket which reports the nicks of all users currently132present in an IRC channel.133Nicks are separated by a newline and are written descending by last134activity to the socket.135The socket only exists in subdirectories associated with IRC channels136and is closed on program termination.137.It Pa log138A regular file containing received messages which either mention the139user's nick or were received through private conversations.140This file is not removed on program termination.141.El142.Sh EXIT STATUS143.Nm144always exits with a non-zero exit status.145.Sh EXAMPLES146Connect to hackint and join the147.Nm148irc channel:149.Pp150.Dl hii irc.hackint.org '#hii'151.Pp152Connect to Libera.Chat and monitor all server messages:153.Bd -literal -offset indent154hii irc.libera.chat &155tail -f ~/irc/irc.libera.chat/out156.Ed157.Sh SEE ALSO158.Xr ii 1 ,159.Xr tail 1 ,160.Xr hii 5161.Sh STANDARDS162.Rs163.%A J. Oikarinen164.%A D. Reed165.%D May 1993166.%R RFC 1459167.%T Internet Relay Chat Protocol168.Re169.Pp170.Rs171.%A C. Kalt172.%D April 2000173.%R RFC 2812174.%T Internet Relay Chat: Client Protocol175.Re176.Pp177.Rs178.%A L. Hardy179.%A K. Aman180.%A W. Pitcock181.%U https://ircv3.net/specs/core/monitor-3.2.html182.%T IRCv3.2 Monitor183.Re184.Pp185.Rs186.%A A. Molnar187.%A W. Pitcock188.%U https://ircv3.net/specs/extensions/sasl-3.2.html189.%T IRCv3.2 SASL Authentication190.Re191.Sh AUTHORS192.An Sören Tempel Aq Mt soeren@soeren-tempel.net193.Sh BUGS194.Nm195has tight restrictions regarding directory names for both security and196compatibility reasons.197The problem with this being that directory names are not unique.198For instance, joining a channel named199.Em #foo|bar200and a channel named201.Em #foo/bar202is not possible since they are assigned the same directory name.