Skip to content
/ ircfs Public

irc with a file system interface, limbo, from mercurial

Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit



97 Commits

Repository files navigation

# status

has been in use for quite some time.

# intro

ircfs is an irc client with a 9p2000 file system interface, an irc
library and a tk front-end for the filesystem (wm/irc).  all written
in limbo for use under inferno.

see the manual pages for details, ircfs(4) and wm-irc(1).

# download

the latest version can be found at:

# install

modify "mkconfig" if you do not have $ROOT set.  run "mk install"
to compile and install.  NOTE: just "mk" does not work, since the
module files (*.m) will be missing and compilation of source files
(*.b) will fail.

when building from within inferno, insert SYSHOST=Inferno and ROOT=
in the mk invocations to override the values in the mkconfig.

# licence & author

this code is in the public domain.  the code is written by mechiel
lukkien, reachable at

# example

to run ircfs on a remote machine and export its files, you can do the following.

on the remote machines, to start ircfs:

	once: mkdir /mnt/irc /mnt/irc/freenode $home/irclog $home/irclog/freenode
	emu -c0
	mount {ircfs -d -l $home/irclog/freenode -a net!!6667 -n ircfsuser freenode} /mnt/irc/freenode
	styxlisten -A net!*!6872 {export /mnt/irc}

and to mount the ircfs tree and start the gui wm/irc:

	once: mkdir /mnt/irc
	mount net!remotemachine!6872 /mnt/irc
	wm/irc -d /mnt/irc/freenode &

# example, with authentication

you should set up authentication, this should be outside the scope of this document...
to set this up, first run a signer:

	auth/changelogin yourusername	# enter password

make the $home/keyring/ircfs file:

	getauthinfo ircfs	# enter signer address and password

now either copy the ircfs to the styx client and server,
or do the getauthinfo again.  finally, replace the -A in
the mount and styxlisten calls earlier by "-k $home/keyring/ircfs".

# todo

- ircfs & wm/irc: make ircfs keep track of unread data.  when a client opens a file and reads the history, ircfs will send a "new data" meta-message when it switches from already-read to not-yet-read data.  ircfs should also indicate which data it wrote, so wm/irc's can mark the window as clean.
- wm/irc: make adding a window faster (tk-wise probably), so startup with many windows becomes faster.

- ircfs: when people come online (in channel) and have a window, put a meta-message in the window?  idea from sqweek
- read irc rfc's, try on many networks/channels
- ircfs: perhaps add the more obscure commands: info, ison, links, list, lusers, motd, note, servlist, squery?, stats, time, trace, version, userhost, whowas


irc with a file system interface, limbo, from mercurial






No releases published