erssi Shellter Edition

The modern irssi, tuned for IRCnet.

erssi Shellter Edition keeps your nick, gathers your mentions, encrypts what you ask it to and updates itself from signed releases. No root needed.

curl -fsSL https://raw.githubusercontent.com/y-o-o-z/erssi/main/shellter-install.sh | sh
  • Signed releases
  • No root, installs in your home
  • Binaries for Debian 13, FreeBSD 14 and 15

erssi 2026.10.6 in #shellter on IRCnet. On the left the window list: Notices, IRCnet, #shellter, Mentions. In the middle yooz (yooz@ircnet.pl) and kofany (kofany@irc.al) join and get op from oper, then people on the channel talk about the release: zuy asks whether 2026.10.6 is out, yooz says it is signed and on GitHub, kofany says --uninstall now removes only what the installer put there, saint says control bytes are drawn as a question mark, jacos says SHA256SUMS.sig checked out. On the right the nick list by rank: ops kofany, oper, yooz; voiced amiantos, jacos, shellter, zuy; then the rest.
erssi 2026.10.6 in #shellter, with the real nicks of the channel. The lines they say were written for this picture.

What an IRCnet user would otherwise script

Everything erssi brings stays: side panels, mouse support, 24-bit colour, image preview, a web frontend and irssi's Perl scripts. This edition adds the rest, and every command has a page in /help.

End-to-end encryption, built in

RPE2E natively, wire-compatible with repartee and its WeeChat and irssi scripts: XChaCha20-Poly1305 with per-sender keys, given only to people you accept. A message that cannot be read is never hidden. It protects what you say, not who talks to whom, and it has no forward secrecy.

A real erssi query between yooz and kofany: the first encrypted message cannot be read and asks for the key, kofany is accepted with /e2e accept, then every line is read and the status bar says E2E.
A real exchange: the first message asks for the key, one /e2e accept, then everything is read.

Side panels that stay put

Your windows on the left and the channel's nicks by rank on the right. Saved layouts come back after a restart exactly as they were.

The nick list of #shellter in erssi, by rank: ops kofany, oper and yooz in amber, voiced amiantos, jacos, shellter and zuy in blue, then the rest.

Your nick, kept

/keepnick takes it back the moment it is free: through MONITOR where the server offers it, otherwise ISON.

Mentions in one place

Private messages, notices from people and hilights in one window and a log, with a desktop notification through the terminal, also inside tmux.

One column for every line

The shellter theme puts messages, events and replies under one separator, in the colours of shellter.me; shellter-light for light terminals.

shellter
The same lines in the shellter theme: oper sets mode +o yooz, kofany joins, oper sets mode +o kofany, zuy asks whether 2026.10.6 is out.
shellter-light
The same lines in the shellter-light theme.

Search your logs

/search looks through the logs of a channel or every network in a separate process, so erssi carries on.

The full list: features.md.

Your session, also on the phone

erssi keeps running in tmux on your shell account. Reach the same session from a narrow ssh window or from a browser.

  • Readable on a narrow terminal. Long lines wrap and stay under the separator, even at 56 columns.
  • A web client when you need one. fe-web shares the session with a client such as NexusIRC; the web nick list follows the server.
  • Only you can open it. On a shared box fe-web listens on a Unix socket that only your account can reach.
The same #shellter conversation in erssi at 56 columns, without side panels, as on a phone over ssh: every message wraps under the separator.

Install in one line, update in two

Run it on your shell account. It goes to ~/.local/opt/erssi and keeps its settings in ~/.erssi, so it runs next to irssi.

1. Run the installer

It checks your system, the release's signature and the package before anything in your home changes.

curl -fsSL https://raw.githubusercontent.com/y-o-o-z/erssi/main/shellter-install.sh | sh

2. Start it inside tmux

The session survives logging out. The first start asks for a network, a nick and the theme, then connects.

tmux new -s irc erssi

3. Update when a release comes out

Then /upgrade in the running erssi keeps your windows; TLS connections reconnect once.

erssi --check-update
erssi --update

Debian 13, FreeBSD 14 and 15, amd64

A ready-made binary, in seconds, installed only when the signature on its SHA256SUMS, its checksum and its manifest check out. The previous release stays for --rollback.

Other Linux and FreeBSD systems

Built from the newest signed release, with the test suite, in about two minutes. Needs GLib 2.70 or newer; missing packages are named for your administrator.

All options, --uninstall and what the installer verifies

Every release can be checked

The installer carries the release key and the commit of every release, and installs nothing that does not match. You can check the same things by hand.

git -c gpg.program=false -c gpg.openpgp.program=false \
    -c gpg.x509.program=false -c gpg.format=ssh \
    -c gpg.ssh.allowedSignersFile=utils/allowed_signers \
    verify-tag shellter-v2026.10.6

Run it in a clone of the repository; gpg is switched off so that only the SSH key counts. It must report a good signature with the fingerprint on the right. Compare it with one you got another way, for example by asking on #shellter.

The network-facing parts are reviewed, fuzzed and tested under sanitizers. What is protected and what is not.

shellter-v2026.10.6signed
Commit
bdf44f572
Release key
ED25519 SHA256:hF7dvX7vdTfqEsC9LHeujMoHf4NhWdqeBCvN6jXEDAw
SHA256SUMS.sig
good signature, namespace erssi-release
debian13-amd64
sha256 ce2330cf…b680e8e4d
freebsd14-amd64
sha256 49161cd1…cc696438a
freebsd15-amd64
sha256 849f4034…0347133c2
CI
6 of 6: build, shellcheck, installer, e2e-live, sanitizers, fuzz

New in 2026.10.6

Released on 25 October 2026: fixes from a full review of 2026.10.5.

  • terminal

    Nothing reaches your terminal raw. Control characters from the network are drawn as ? on every terminal type, so a channel name cannot set your clipboard or window title.

  • install

    --uninstall removes only its own files. Libraries and man pages of other software in the same prefix stay, and the installer names what it left.

  • fe-web

    A web frontend that holds under load. Too many new connections from one address are closed before TLS starts; new certificates get a random serial, the extensions browsers expect and 825 days.

  • e2e

    Steadier encryption. Key requests have a budget per sender, the keyring is cached, and freed plaintext is wiped.

  • core

    A safer /upgrade. It checks that it can write the session file first, and a failed /upgrade sends nothing twice.

  • docs

    man erssi. A manual page of its own, linked for an install in your home.

Questions? Ask on #shellter

The channel of shellter.me on IRCnet, where the Shellter Edition is made. Bugs and ideas can also go to the issue tracker.

# in erssi
/connect IRCnet
/join #shellter