HII(1)

πŸ“¦ version 1.1.5-unstable-2025-08, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, meet HII(1) β€” aka hii β€” from the General Commands Manual: it’s a filesystem based IRC client. It is heavily inspired by ii(1) but offers more features, e.g. built-in TLS support. slay.

✨ SYNOPSIS ✨

hii [-k key] [-c cert] [-r certs] [-f name] [-i prefix] [-n nick]
    [-p port] [-t] [-d] [-s] server [target ...]

πŸ¦‹ DESCRIPTION πŸ¦‹

Just as ii(1), hii creates a directory tree for the server β€” the master channel β€” containing subdirectories for every conversation started on that server. This includes public IRC channels and private conversations with other users. πŸ’…

On startup hii attempts to connect to the given server. If a connection was established successfully it automatically creates directories for the given targets (if any). Directories for users are only created automatically if the server supports the IRCv3.2 MONITOR command and the user is currently online. hii makes no attempt to reestablish the connection, it simply terminates when the connection to the IRC server is lost. 😭

The options are as follows:

  • -k key β€” Path to PEM encoded key used for client authorization using TLS, also known as CertFP. This requires -c and -t to be given as well.
  • -c cert β€” Certificate Path to PEM encoded certificate used for client authorization using TLS, also known as CertFP. This requires -k and -t to be given as well.
  • -r certs β€” Path to file containing root certificates. This requires -t to be given as well. Defaults to the host's root CA set.
  • -f name β€” Real name associated with the user's nick. Defaults to the user's login name.
  • -i prefix β€” Path to the root directory used for creating channel and server subdirectory. Default to ~/irc.
  • -n nick β€” Nick name used on the IRC server. Defaults to the user's login name.
  • -p port β€” TCP port used to connect to the IRC server. Defaults to 6667.
  • -t β€” Enables TLS, which is disabled by default.
  • -d β€” Write debug messages to standard output. Contrary to text in the out file the debug output is not sanitized and might contain ANSI escape sequences or other non-printable characters.
  • -s β€” Attempt SASL authentication using the SASL EXTERNAL method with TLS client certificates. This requires -k, -c, and -t to be given as well.

🌸 FILES 🌸

  • in β€” A FIFO used to send messages to the IRC server. If the message is prefixed with a backlash it is send to the server as is. Otherwise it is interpreted as a PRIVMSG and send to the target associated with the subdirectory. This file is removed on program termination.
  • out β€” A regular file containing messages received for the target associated with the subdirectory. This file is not removed on program termination.
  • id β€” A regular file containing a unique id for identifying the target associated with the subdirectory. This file does not exist in the master channel directory and is not removed on program termination.
  • usr β€” A UNIX domain socket which reports the nicks of all users currently present in an IRC channel. Nicks are separated by a newline and are written descending by last activity to the socket. The socket only exists in subdirectories associated with IRC channels and is closed on program termination.
  • log β€” A regular file containing received messages which either mention the user's nick or were received through private conversations. This file is not removed on program termination.

πŸ”₯ EXIT STATUS πŸ”₯

hii always exits with a non-zero exit status. periodt.

🌈 EXAMPLES 🌈

Connect to hackint and join the hii irc channel:

hii irc.hackint.org '#hii'

Connect to Libera.Chat and monitor all server messages:

hii irc.libera.chat &
tail -f ~/irc/irc.libera.chat/out

🫢 SEE ALSO 🫢

ii(1), tail(1), hii(5) β€” go read those too, bestie.

πŸ‘‘ STANDARDS πŸ‘‘

πŸ’œ AUTHORS πŸ’œ

SΓΆren Tempel <soeren@soeren-tempel.net> β€” iconic behavior.

πŸ’€ BUGS πŸ’€

hii has tight restrictions regarding directory names for both security and compatibility reasons. The problem with this being that directory names are not unique. For instance, joining a channel named #foo|bar and a channel named #foo/bar is not possible since they are assigned the same directory name. yeah, that’s the tea.


with love from the Debian side of the manual-verse, dated July 31, 2018 β€” this is HII(1), mwah πŸ’‹

πŸ“¦ where this page comes from