VoIRC (short for Voice over Internet Relay Chat) is a project that allows users to transmit voice over IRC by encoding a low bitrate audio codec over text. It works better than you would expect despite it being a joke. I like it and more importantly think it's funny. It was created by Adrian Siekierka (asiekierka on GitHub).
Its only glaring flaw is being written in an older version of Nim.
While it seems easy enough to install Nim with little destruction to
your computer, the builds appear to either randomly break or need
library nursing as the march of technological «progress» continues. The
use of ncurses is also a ding; I've had issues on some terminals with
F12 being recognized.
This is how messages appear to a conventional IRC client (try playing it, though you'll need to strip the newlines):
VoiRC01]TCgTk[]V6WA|&Id1_X..M+@hm(/'*Ts?)iQa^0AT4Nkkk\)OG-\Xvfuk/)
@+>zs_D<J=C#>7,Ym8#4MG/+wda=FSAxgjq>i}m%QpSd:LuxDc$8qzgdT:i]Vx@N)%
ezwL?U2rw"QpHR]Nb;4fQKA#msM.A+F:A@V:8\u1DF>xnakV@<`PZ)XhR^,nw]u&.L
^Bj9A8l>e5a]usf7i~$ns\,0RZ_!<hU<tPug&\Z?3vt<9b($u]igEzZD73'@i~0JgG
(0r58$8c2Isr3LC0T]v*Cy/UdjN>k!q[\vA41+a~5hIO?>lHu>+J(4w:?|*p3Xr~t%
&6^)1@J^pBJk`}wHJ8LGaDJ<Q}TbVUi^]X5ENZJVrW_"X(XcV'dD$GP^lxa+Ne
There are great side effects to text messages being voice: you can splice up audio much like a cassette tape, and conventional IRC logs and bouncers allow conversations to be replayed if missed.
If the links in this file are broken, see the bottom for archive.org URLs, which presumably have a longer life.
It is possible to run VoIRC without building it by running a compiled build:
https://asie.pl/files/voirc_build2_linux_x64.zip
Edit launch.sh and change the
irc.aspie.pl server and #voirc channel to
appropriate values.
Navigate to the directory in a terminal and run the script:
$ ./launch.sh <nick>
F12 to toggle
microphone broadcast.TROUBLESHOOTING: If you receive an error about the required files being missing, I recommend you try and build the project; see instructions below.
There are two parts that require building: the VoIRC Nim project itself, and then the two libraries (libsoundio and libcodec2) that it depends on.
I have failed to get VoIRC working with my own builds of the two libraries, so I have also included the pre-built versions provided by the author of VoIRC.
The following are complete build instructions.
Install the Nim version manager, choosenim:
$ curl https://nim-lang.org/choosenim/init.sh -sSf | sh
In every open terminal, add Nim to PATH:
$ export PATH="$HOME/.nimble/bin:$PATH"
Then install 0.19.2 (it will most likely need to compile; ensure you have build tools installed):
$ choosenim 0.19.2
https://github.com/asiekierka/voirc
And the libsoundio and libcodec2 builds (disregard the VoIRC build in this case):
https://asie.pl/files/voirc_build2_linux_x64.zip
... or source code:
https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/codec2/0.8.1-2/codec2_0.8.1.orig.tar.xz https://github.com/andrewrk/libsoundio/archive/1.1.0.tar.gz
y to every question:$ nimble install irc soundio ncurses
TROUBLESHOOTING: If you receive an error about failing to load
libcrypto.so or libssl.so, link the latest
installed version to the current directory and adjust the library
path:
$ ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.3 libcrypto.so.1.1
$ ln -s /usr/lib/x86_64-linux-gnu/libssl.so.3 libssl.so.1.1
$ LD_LIBRARY_PATH=. nimble install irc soundio ncurses
$ make
libsoundio.so and
libcodec2.so to be present in the library path. First, copy
the .so files you built (or downloaded) into the same
directory where the new voirc build can be found, then
run:$ LD_LIBRARY_PATH=. ./voirc <host> <nick> <channel>
TROUBLESHOOTING: If you receive an error about failing to load
libncursesw.so, check the directory of the library file on
your system (as root):
$ ldconfig -p | grep libncurses
libncursesw.so (libc6,x86-64) => /usr/lib/libncursesw.so
And then update the LD_LIBRARY_PATH to reflect it:
$ LD_LIBRARY_PATH=.:/usr/lib ./voirc <host> <nick> <channel>
libsoundio is a straight forward cmake project, however
changes in GCC require that additional flags be used.
Extract the libsoundio source code (URL found above).
In the directory of libsoundio's source code, create the build directory and configure cmake:
$ mkdir build && cd build
$ cmake .. -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_C_FLAGS="-Wno-error=switch"
$ make
.so file to the root of VoIRC's source
folder and name it libsoundio.so.libcodec2 is also a straight forward cmake project, however changes in GCC also require that additional flags be used.
Extract the libcodec2 source code (URL found above).
In the directory of libcodec2's source code, create the build directory and configure cmake:
$ mkdir build && cd build
$ cmake .. -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_INSTALL_PREFIX=$HOME/opt/libcodec2 \
-DCMAKE_C_FLAGS="-Wno-error=incompatible-pointer-types \
-Wno-error=implicit-function-declaration -fcommon"
$ make
.so file to the root of VoIRC's source
folder and name it libcodec2.so.If any of the VoIRC URLs are now broken, try this mirror:
https://archive.org/details/voirc_build2_linux_x64
https://archive.org/details/voirc-src-be94145
This page was last edited on 2026-09-13 21:35:27.
All original text, code, images and content on the MDKwiki is CC0 1.0 - we have a Git and an RSS feed that can be followed.
Let there be peace on Earth.