Skip to content

rune

ᚱune

Script the client, not just the game.

A fast, modern MUD client with careful terminal ergonomics and a Lua API that goes all the way down.

$ rune mud.example.com 4000

LINUX · MACOS · WINDOWS · SINGLE BINARY, NO RUNTIME

rune

Everything is Lua

Core client functionality is Lua: input handling, the UI, the keymap. All of it can be overridden.

GMCP · MCCP2 · TLS

Vitals and room data arrive as Lua events. Compression and encryption are on by default.

Panes · Bars · Pickers

Dock chat panes, render live status bars, open fuzzy-filtered pickers. Every UI component is scriptable.

Feels like your shell

Prefix-matching history, tab completion that learns names from server output, and Ctrl+E to edit the input line in $EDITOR.

Pickers for everything

Saved worlds, command history, your aliases, and every slash command sit one keypress away, fuzzy-filtered as you type. Scripts can open the same picker with their own items.

/connect worldsCtrl+R historyCtrl+T aliases

rune

Multiline, sent verbatim

Paste multiline text - or press Ctrl+Enter - and the input grows into a composer with numbered lines. Enter sends the draft exactly as written: no alias expansion, no splitting, no lost blank lines. Boards and mail editors just work.

Ctrl+Enter composeEnter send as written

rune — mud.arctic.org:2700

Your editor, mid-session

When a draft deserves better than a one-line box, Ctrl+E opens it in Vim, Emacs, or whatever $EDITOR points at. Save and quit, and the whole letter lands back in the composer, ready to send.

Ctrl+E edit in $EDITOR

rune — mud.arctic.org:2700

Tab completion that learns

Words the server has used complete after a single appearance - player names included. Keep pressing Tab and the candidates cycle on the status line; Shift+Tab goes back.

Tab complete / cycleShift+Tab back

rune — mud.arctic.org:2700