MUD / Telnet Client
A terminal-based telnet client with Lisp scripting support, designed for MUD gaming — with TinTin++ compatibility.
Mudlark is a scriptable MUD and telnet client for the terminal. It implements RFC 854 telnet with NAWS and I/O logging, a readline-style input with history and tab-completion cycling, and a full TUI built on boba. All application logic is written in Ditty Lisp — C is used only for platform bindings.
Mudlark's design principle is "Lisp First": never rewrite Lisp in C
as an optimization shortcut. The hook system (add-hook,
remove-hook, run-hook) is C-level,
operating on per-session structs, and handlers are symbols resolved
at call time so they respect live rebinding. All sessions share one
Lisp environment, but each session keeps its own hook registry.
#read bridges TinTin++ config
into Lisp
#write saves scripts as Lisp (.lisp)
select()-based
runtime
--load searches lisp/,
lisp/contrib/, and installed paths
tintin-mode with ERT testsMudlark depends on ditty and boba (both via pkg-config). Install those first, then build standalone:
git clone https://github.com/chestso/mudlark
cd mudlark
./autogen.sh
mkdir -p build && cd build
PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig:$HOME/.local/lib64/pkgconfig \
../configure --prefix=$HOME/.local
make -j"$(nproc)"
make install