ii is a minimalist FIFO and filesystem-based IRC client. It creates an irc directory tree with server, channel and nick name directories. In every directory a FIFO in file and a normal out file is created.
Go to file
2021-12-25 12:10:10 +01:00
.gitignore merge my changes to master 2017-06-02 09:54:54 +02:00
arg.h Fix arg.h 2017-12-03 22:34:14 +01:00
CHANGES bump version to 1.8 2018-02-04 14:11:39 +01:00
config.mk Add a config option to link against system or shipped strlcpy 2018-06-02 14:25:28 +02:00
FAQ merge my changes to master 2017-06-02 09:54:54 +02:00
ii.1 merge my changes to master 2017-06-02 09:54:54 +02:00
ii.c Increase ping timeout for bad connections. 2021-12-25 12:10:10 +01:00
LICENSE bump version to 1.8 2018-02-04 14:11:39 +01:00
Makefile Add a config option to link against system or shipped strlcpy 2018-06-02 14:25:28 +02:00
README merge my changes to master 2017-06-02 09:54:54 +02:00
strlcpy.c merge my changes to master 2017-06-02 09:54:54 +02:00

Abstract
--------
ii is a minimalistic FIFO and filesystem based IRC client.  It creates an irc
directory tree with server, channel and nick name directories. In every
directory a FIFO file (in) and normal file (out) is placed.

The in file is used to communicate with the servers and the out files include
the server messages. For every channel and every nick name there will be new in
and out files.

The basic idea of this is to be able to communicate with an IRC server with
standard command line tools.  For example if you want to join a channel just do
echo "/j #channel" > in and ii creates a new channel directory with in and out
file.


Installation
------------
Edit config.mk to match your local setup. ii is installed into
/usr/local by default.

Afterwards enter the following command to build and install ii (if
necessary as root):

    $ make clean install


Running ii
------------
Simply invoke the 'ii' command with required arguments

To make ii a bit more comfortable use it in combination with the multitail
program and for example with vim. Run vim in the server directory and use
key mapping like:
map w1 :.w >> \#ii/in<cr>
map w2 :.w >> \#wmii/in<cr>
to post to channels.

If you use the next editor line for a new posting you can use ctrl-p for nick
completion if you wrote the nick in the past.
Thanks to Matthias Kopfermann for this hint.

You can find an example of how this nested environment could look like on:
http://nion.modprobe.de/blog/archives/440-Using-the-ii-irc-client.html


SSL/TLS support
---------------

Below is an example using OpenBSD relayd which sets up a TCP TLS relay
connection on localhost. A similar setup can be accomplished using
stunnel or netcat with TLS support. This also works for other programs
that don't support TLS natively.

/etc/relayd.conf:

	table <freenode> { irc.freenode.net }
	table <oftc> { irc.oftc.net }

	protocol "irctls" {
		tcp { nodelay, sack }
	}

	relay "freenode" {
		listen on 127.0.0.1 port 6668
		protocol "irctls"
		forward with tls to <freenode> port 6697
	}

	relay "oftc" {
		listen on 127.0.0.1 port 6669
		protocol "irctls"
		forward with tls to <oftc> port 6697
	}


Then connect:

	./irc -n nick -u name -s 127.0.0.1 -p 6668
	./irc -n nick -u name -s 127.0.0.1 -p 6669


Configuration
-------------
No configuration is needed.


Changelog
---------
Since I missed the chance to add a proper changelog right from the beginning,
please have a look at the commit messages on http://git.suckless.org/ii/
they are fairly descriptive on releases prior to 1.2.