Skip to content

prietus/murmur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Murmur

murmur.priet.us — A native, opinionated IRC client. Built in Rust with iced.

Murmur is a quiet client. Joins, parts, and noise fade into the background; conversation gets the foreground. Subtle by default, with /dimm for focus mode, inline media previews, tab-complete, command palette (⌘K), built-in emoji picker, per-channel logs, and SASL PLAIN / EXTERNAL (CertFP).

Status

Alpha. Tested on macOS. Linux/Windows builds produced by CI but not heavily tested yet.

IRCv3 support

Murmur attempts to establish the following IRCv3 capabilities with the server while connecting:

Identity & presence

  • account-tag — every message carries the sender's services account
  • extended-join — JOIN lines show services account when present
  • account-notify — see when other users log in/out of NickServ
  • away-notify — away users render dimmed in the member list
  • chghost — host/ident changes shown in place, no fake quit/join
  • echo-message — your own messages get a server-assigned msgid for editing/reacting
  • setname — change your realname mid-session with /setname <new realname>

Member list enrichment

  • multi-prefix — every channel prefix shown (@+nick, not just the highest)
  • userhost-in-namesident@host captured from NAMES for tooltips/whois

Protocol plumbing

  • message-tags + server-time + batch — IRCv3 message metadata + tagged batches
  • invite-notify — channel ops see who's being invited
  • cap-notify — react to CAP NEW / CAP DEL mid-session (bouncer network attach/detach)
  • labeled-response — response correlation for parallel commands
  • sts — Strict Transport Security, persists per host; forces TLS+port on next connect

Authentication

  • SASL PLAIN (password)
  • SASL EXTERNAL (CertFP — auto-selected when client_cert_path is set)
  • draft/sasl-ir — initial response on the first AUTHENTICATE line, skips the + challenge roundtrip

History & catch-up

  • draft/chathistory — server-side scrollback on channel attach (LATEST)
  • draft/chathistory TARGETS subcommand — /history shows active conversations
  • draft/event-playback — soju/bouncer replays joins/parts/nicks alongside PRIVMSGs in chathistory
  • IRCv3 standard replies (FAIL / WARN / NOTE) — rendered uniformly in the status buffer
  • RPL_ISUPPORT (005) parser — uses MODES= for op-bulk chunking, CHANTYPES= for /join validation

Modern drafts

  • draft/typing — "X is typing…" indicator below the input; sends +typing=active while you type
  • draft/multiline — receives BATCH multiline as a single message with line breaks
  • draft/read-marker — sends MARKREAD when you focus a channel
  • draft/message-redaction/delete removes your last message (or /delete <msgid>); incoming REDACTs render as tombstones
  • +draft/react/react <emoji> reacts to the latest message; reactions render as grouped badges

Server support varies — Ergo and Soju cover the most ground; Libera supports identity/presence/history but not the editing/redaction drafts.

Build from source

cargo build --release

On Linux you'll need a few system packages. E.g., on Debian (and derivatives):

sudo apt-get install -y libxkbcommon-dev libwayland-dev libxkbcommon-x11-dev pkg-config

The first run writes a commented config template to:

  • macOS: ~/Library/Application Support/murmur/config.toml
  • Linux: ~/.config/murmur/config.toml
  • Windows: %APPDATA%\murmur\config.toml

Edit nickname and server, restart, and you're in!

Pre-built binaries

See the Releases page.

License

MIT — see LICENSE.

About

A native, opinionated IRC client. Subtle by default.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors