Skip to content

rune

ᚱune

A MUD client you can script.

Play in your terminal. Use Lua to define commands, react to server output, and arrange panes and status bars.

$ rune mud.example.com 4000

LINUX · MACOS · WINDOWS · SINGLE BINARY, NO RUNTIME

rune

Lua scripting

Define aliases, triggers, key bindings, and bar renderers. Customize the built-in scripts through the same Lua API.

GMCP · MCCP2 · TLS

Handle GMCP vitals and room data in Lua. Rune negotiates MCCP2 compression and uses TLS for tls:// connections.

Panes · Bars · Pickers

Arrange scrollable panes in rows and columns, render status bars, and open pickers from your scripts.

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.

Searchable pickers

Filter saved worlds, command history, aliases, and slash commands 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 line by line, preserving blank lines and whitespace. Use it for in-game boards and mail editors.

Ctrl+Enter composeEnter send as written

rune — mud.arctic.org:2700

Your editor, mid-session

Ctrl+E opens the draft in $EDITOR. Save and exit to return the edited text to Rune. Multiline text opens in the composer.

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