• v1.0.0 7e94675b2f

    moho 1.0.0 Stable

    Salastil released this 2026-10-11 17:26:32 -04:00 | 120 commits to development since this release

    Major features

    • Five protocols in one window: IRC, Discord, Matrix with end-to-end encryption, Sneedchat, and Kick.
    • Discord voice and video: calls, cameras, screen sharing and Go Live, stage channels, the soundboard and per-person volume, all with Discord's DAVE end-to-end encryption.
    • Matrix: encrypted rooms with device verification and key backup, Element Call, sliding sync, spaces, and signing in by QR code from a phone.
    • Per-account Tor and SOCKS5 routing: Clearnet, Service tunnel or Strict - Strict sends every picture, link check and embed through the account's route too. Or send everything through Tor at once.
    • One mentions inbox across every service, link previews, YouTube cards that play in place, voice messages, polls, and exporting a conversation to disk.
    • A background daemon (nobilis) that keeps every connection alive with the window closed.
    • Discord forums: forum and media channels appear in the channel list and open as a pane of posts - title, tags, the first message's words, replies, age, picture and top reaction - with search, sorting, older posts, and a New Post form
    • A redesigned interface: Discord-shaped messages with date separators and an unread bar, red mention badges, a Ctrl+K quick switcher, keyboard navigation, a rail with mention counts and folders, a member list with faces, and motion throughout
    • Settings rebuilt: one click from the gear, a grouped rail with a search over every setting, and new Appearance (layout, spacing, zoom, clock, reduce motion), Notifications and Keybinds pages with a hotkey recorder
    • A one-box message composer: a + menu, Send only when there is something to send, Shift+Enter for a new line on every service, an attachment tray with spoilers, and dropped files going into the tray
    • Discord notices and permissions: Discord's own safety notices drawn as the cards they are, and a banner in place of the message box wherever nothing can be written
    • A rebuilt tray: an icon drawn for the system's colour scheme with the number of conversations waiting on it, a tooltip that says what is waiting, and a menu of what is new, Show/Hide, Status, Settings, Restart moho and Quit - Restart moho brings back both the window and the daemon
    • Status by service: the plaque and the tray offer only the statuses each service has - Discord all four, IRC away and back, Matrix online and offline, Kick and Sneedchat none - and Do not disturb silences desktop notifications on every service, and is Discord's real mode there
    • GIFs on every service: a linked GIF is drawn as the picture - silent, looping, without the player - whichever service it came from, and a GIF picker with trending, categories and search sends one from the composer. Klipy, Tenor and Giphy pages are never probed for what they are.
    • Idle detection: moho notices when nothing has been used for a while, from the system where it can say and from its own windows where it cannot, and puts an account that has an idle on Idle and back. It has a setting for it and for how long, and the plaque says Idle (away) while keeping what you chose checked.
    • Link cards on every service: a YouTube link gets a titled card with its channel on IRC, Matrix, Kick and Sneedchat as it does on Discord - including through Tor, which YouTube refuses the usual way - and one added in an edit, read back from history, or posted before cards existed gets its card too.
    • Kick events as cards: KICKs sent to a streamer, gifted subscriptions with who received them, subscriptions, raids, redeemed rewards, bans and timeouts, and the stream going live or ending are each a card in moho's own theme, sitting where a person's message does in every layout.
    • Conversations open where you stopped reading, as Discord's do: at the first unread when the run is short, otherwise at the end with a bar to go back by, and a return to a conversation no longer lands hundreds of messages up.

    Fixes, patches and changes

    • Fixed Kick's KICKs never being heard - they arrive on a subscription that was never opened - and drew KICKs, gifted subscriptions with their recipients, raids and redeemed rewards as cards (moho 7bae0ea, nobilis 95ee3b1)
    • Every other Kick event is a card too: subscriptions, bans, timeouts, unbans, a cleared chat, and the stream going live or ending (moho f118395, nobilis 23489f8)
    • Kick cards start at the picture's edge with the name where a name is in the log, in comfy and bubbles, with the same air above as a message (moho 64ade92)
    • A conversation opens as Discord's does, and the line from a visit is dropped when the conversation is left (moho 39dcba5)
    • Fixed an unpinned Kick message never leaving the screen (nobilis 81a33a1)
    • Fixed cancelling an outgoing IRC file offer that nobody had accepted doing nothing for the three minutes the offer lasts (nobilis b3e92b5)
    • Fixed the IRC capability list being cut short when a server sends it over several lines with the continuation mark in the other field (nobilis b3e92b5)
    • Fixed a removed account leaving six lists behind in memory, among them its silenced channels and what its network said about MONITOR (nobilis b3e92b5)
    • Fixed a raid of one viewer reading "1 viewers" (nobilis b3e92b5)
    • Every test was read; those that could not fail now can, tests that checked a copy of the code now check the code, and the untested cases mutation testing found are covered (moho 8a7e3e7, moho b0e6775, moho 47653c5, moho 09c060d, nobilis 2477514, nobilis b522fe6, nobilis b3e92b5)
    • Nothing in the code or documentation refers to the maintainer's own server any more (moho 97611c8, nobilis 1c70d32)
    • Documentation brought up to date with the settings pages, how a conversation opens, presence, link cards, Kick events and the daemon as it is (moho d99ad2b, nobilis 6a1bb8e)
    • Added idle detection with a setting for it and for how long (moho 23c87dd, nobilis 35ea0b7)
    • Added GIFs drawn as pictures on every service, and a GIF picker (moho 55248eb, nobilis 046fbb4)
    • Fixed a Sneedchat picture from the forum's uploads host - an AVIF, or an MP4 - not drawing: its domain is taken off and it is fetched through the account's route, clearnet or Tor (moho 07f4fc2, nobilis ca29a63)
    • Fixed the tray's number drifting from the client's: it is now counted by the window, by the rail's rule, and told to the tray whenever it changes (moho 1e314f8)
    • Fixed YouTube cards never appearing for an account on Tor: YouTube answers every Tor exit with a 403 on its card lookup, so the video's own page is read when that happens (moho 8064e79, nobilis 340342b)
    • Fixed link cards being lost when a message was edited, and missing from Matrix history, Discord catch-up and older messages (moho 638b02e, nobilis dab394f)
    • Fixed scrolling through a long run of unread messages snapping back to where the "new messages" bar appeared (moho 336335a)
    • The number beside a conversation is what is addressed to you - mentions in a channel, each unread message in a direct message - and the bold name is the sign of activity (moho 987f31c)
    • A muted channel keeps its mention count in the list, the rail, the switcher and the tray, and stops the popups; muting a Discord channel or direct message is now set on the account, so a phone is quiet too (moho 7803cc3, nobilis b0fa250)
    • Reworked the tray icon and menu, and dropped Restart daemon and Stop daemon from it (moho 24106e5)
    • Do not disturb now silences an account's desktop notifications and the taskbar flash; the tray no longer has a switch of its own for it (moho 53fb0f3)
    • Idle from the tray reaches Discord and IRC and leaves Matrix, Kick and Sneedchat as they were; a service is no longer asked for a status it does not have (moho c1bcb72, nobilis a8441ab)
    • Fixed Matrix's rate limit on changing status showing as M_LIMIT_EXCEEDED: a limited request now waits the time the server names, and a longer wait is applied when it is over (moho 0dfff0d, nobilis 43135c1)
    • Fixed the window being pulled back to the open conversation's server whenever you chose another: the daemon link coming up is acted on once, a refresh no longer follows the open conversation, and the tray is told only what changed (moho 745641a)
    • Matrix's invisible is called Offline in the plaque, its popout and the tray, which is what it sets (moho 745641a)
    • A room muted on a Matrix account can now be unmuted from the menu, including a mute set from Element (moho 745641a, nobilis 59db82c)
    • Server rail tiles now count the mentions waiting in them rather than the messages, and a muted room counts for nothing, mentions included (moho 0dc048c)
    • Fixed a room unmuted on a Matrix account still being drawn as muted; a mute or unmute the server did not take is now reported with its reason, and Matrix requests to a server that does not answer give up (moho 95f1784, nobilis d1bbcaf)
    • Discord requests now give up on a connection that has gone quiet, a history catch-up always releases its place, and the gateway logs what it receives and why a message is dropped (moho b151ef8, nobilis a34821e)
    • Fixed Discord reconnecting every few seconds after being told it is rate limited: it now waits out the minute Discord asks for (nobilis 59db82c)
    • Fixed Sneedchat pictures posted back to back by a script merging into one unusable link (moho 6edae7a)
    • Discord files staged together now go as one message, with an upload ring that fills as it uploads (moho 9888c80, nobilis 9690905)
    • Fixed the release mirror script printing a traceback while the release did not exist yet (moho a8d9f41)
    • Defined the design tokens the stylesheet used but never had, and applied one set across it (moho 9db25c8, moho 3cdfe37)
    • Added a screenshot harness for before-and-after pictures of the interface (moho 88375ba)
    • Unread channels now read as unread, mentions are red, and every badge is one style (moho 4ca37dd)
    • Added date separators to the message list (moho b2464e4)
    • Added Mark as read on channels, categories and servers, and Escape to read what you are in (moho 2745a2f)
    • Added a Ctrl+K quick switcher and keyboard navigation between channels (moho 1eef37e)
    • Voice panel: a horizontal microphone bar, the connection's real latency, and a share button (moho ad0f0c0, nobilis e0f6169)
    • Replies jump to the message they answer, and names and pictures open the profile (moho bf45147)
    • Added Copy and Copy text on every message, and Copy message link on Discord (moho 0033955)
    • The hover toolbar fades in, can be reached by keyboard, and offers Edit, Copy and your recent reactions (moho 57e1856)
    • Fixed six interface bugs: a nested voice button, folded categories hiding unread, muted channels hiding mentions, overlapping corners, the typing strip moving the log, and pinned rows missing their service mark (moho 6598043)
    • Pending sends dim only their text, failed ones can be deleted, and Up in an empty box edits your last message in a multi-line editor (moho 6a82c32)
    • Server rail: mention counts, folders that say what is waiting and stay open, an instant name flyout and a red close button (moho 8072b24)
    • Member list: faces, presence dots, and a click for the profile; Discord's member pictures now come with the list (moho c912ed3, nobilis 4099305)
    • Voice channel list: faces, muted and deafened marks, a speaking ring and a collapsible heading (moho 843288d)
    • Comfy messages in Discord's shape, amber mention rows, one code and quote style, and marked system lines (moho 3a7677e)
    • Buttons are primary, subtle or the one danger style, and the restarts ask first (moho 2c8609c)
    • Escape closes only the top layer, and full-page panels close on Escape (moho c5e7619)
    • Thread panel reads the display settings, groups replies and follows the newest (moho 33129f9)
    • Toasts slide in and out, come in three kinds, pause on hover and fold repeats (moho 2d1b8be)
    • Context menu: keyboard navigation, checked items, shortcut hints, and placement that holds while it animates (moho 4065963, moho fcb7df5)
    • A conversation opens at its first unread, with a bar saying how many are above (moho 55fd192)
    • Added hover fades, turning fold arrows, arriving messages, a reaction pop and growing overlays (moho 6d8a050)
    • Every dialog is built from one shared frame with a close button, kept focus and a scrim below the title bar (moho 5cb30ce, moho 420a2f7, moho 6a329c6)
    • Shift+Enter makes a new line on every service and pasted line breaks stay; IRC sends them as a batch or separate lines, Sneedchat as [br], Kick as one line (moho 9ba630c, nobilis ccc8de6)
    • Reply bar: its own surface, the author's face, Esc to cancel, and an @ switch to answer without pinging on Discord (moho f48185e, nobilis 918fcfa)
    • One style for the name, command and emoji lists, with member pictures and :shortcode emoji completion (moho 28d8b3c)
    • Lightbox: step through a conversation's pictures, wheel and pinch zoom with panning, and Copy picture (moho 817cb1e)
    • Emoji picker: walk it with the arrow keys, Enter picks the top result, and skin tones are remembered (moho 99fd0d3)
    • Attachment tray cards with name, size and a Discord spoiler toggle; dropped files go into the tray instead of being sent at once (moho 15e7061, nobilis 0f5669b)
    • Composer: one box with the + on the left and emoji, stickers, voice and Send on the right (moho a59c1ab)
    • Several pictures in one message lay out as a grid, and SPOILER_ files are blurred until clicked (moho 87ea3b8)
    • Pinned messages show as a banner over the log for Discord and Matrix, with a count on the header (moho 3a74cf0)
    • Reactions say what they are and who gave them on hover (moho 506140d, nobilis 1da3ad8)
    • User footer: muted and deafened are red, voice buttons stay on every service, and the status is a popout with a custom status for Discord and Matrix and Apply to all accounts (moho c026609, nobilis f280563)
    • The footer's join button is gone; the rail's + is the one way in, pinned under a rule above the settings cog while the server list scrolls (moho b4c1ced, moho dad5543)
    • Header: one 48px row across every column, filled toggles, and the channel topic from IRC, Matrix and Discord (moho 2ef9e35, nobilis 44d1611)
    • "(edited)" says when on hover, for edits seen live (moho 7f4c356, nobilis e51f139)
    • Incoming Discord and Matrix calls share one card style and stack (moho 59d4893)
    • Settings: the gear opens it directly, with Accounts and Downloads as pages, a search, one switch for every boolean and a saved tick (moho 66a0c0f, moho cc4c9f6)
    • Settings: added Appearance, Notifications and Keybinds pages, the last with a recorder for the global hotkey (moho fe6ad97, moho adca84d, moho 82a0bdf)
    • Accounts open by default with few accounts, Remove sits in a danger zone, and Join picks its account and says Join (moho f8dcccd)
    • Mentions page: service and unread filters, day groups, two-line bodies and put-away (moho 078fe41)
    • Room settings is a tabbed dialog instead of a popover (moho f8936c6)
    • Quiet buttons such as Cancel have their own fill, so they no longer vanish into a dialog (moho 50aaa97)
    • Fixed browsing an IRC network's channels freezing or blanking the window: the daemon holds the list and sends a page, it times out after a minute, and a refusal is reported (moho 2b41c5e, nobilis 152fdf1)
    • Channels in the list no longer jump to the top as messages arrive (moho 9f03d6b)
    • Fixed Discord's notices showing only a stand-in title: they are read as cards, and a banner replaces the message box in them and in channels this account cannot write in (moho ff7d313, moho d7c4215, moho 2a4f797, nobilis 1b270be, nobilis 97ac6bc, nobilis 7561b88)
    • A window whose page dies is reloaded and the reason logged, instead of being left empty (moho 6899694, moho 06bb812)
    • Discord forums, with live and archived posts read together (moho dd0c25e, nobilis d02bba0, nobilis 8363003, nobilis 3cf1a5b, nobilis 6abcb8e)
    • Added Rust crate tokio-util 0.7.19 (nobilis 9690905)
    • Channel rows in the sidebar now show a single # instead of two (moho ccdf090)
    • Typing anywhere in the window now goes into the message box, without clicking it first (moho b5f920f)
    • Added a formatting strip over selected text in the message box, offering the formats each service can carry (moho 9ca477c)
    • Added a right-click menu to every text field, with spelling suggestions, Undo, Cut, Copy, Paste and Select all (moho b2a6210)
    • Fixed YouTube cards not appearing on Sneedchat when YouTube refused a Tor exit, so most links there had none (moho 0368796, nobilis 71e6036)
    • Fixed live and premiere YouTube videos vanishing because they have no thumbnail yet (moho 916abd4)
    • Fixed YouTube links with the video id after other parameters, music.youtube.com and youtube-nocookie.com links getting no card (nobilis f8409fc)
    • Patched a flaw that let a message's content make moho load a local file (moho 7138201, nobilis f972611)
    • Strict routing now sends a Tor or proxy account's pictures, links and embeds through its route instead of directly (moho cee8604, nobilis a3897ba)
    • Discord voice and soundboard audio is now checked before it reaches the C decoder (nobilis 8eca16e)
    • Fixed Discord showing "connecting" after every successful resume (nobilis 52b0001)
    • Fixed reconnect waits growing to a minute and never resetting (nobilis 52b0001)
    • The interruption banner now counts down to the next reconnect attempt (moho 89da9ba)
    • Fixed Kick over Tor failing every channel lookup until a reconnect (nobilis 5755c4e)
    • Fixed failed Kick joins vanishing without a message (nobilis 5755c4e)
    • IRC now shows the server's own reason when it refuses a connection (nobilis 9eeab7e)
    • Fixed Disconnect and Remove showing a "cancelled" error (nobilis 8bcba8b)
    • Fixed new accounts not appearing on the server rail until a restart (moho e207224)
    • Joining a channel now opens it (moho e207224)
    • Removing an account now asks first (moho 16fa8a2)
    • Fixed the Matrix form saying matrix.org takes no new accounts (moho 16fa8a2)
    • Fixed Kick's mark drawing as a blank square in the accounts pane (moho 0ea63f5)
    • Fixed a cleared service interruption staying on screen (moho fd09b6b)
    • Conversations now show at start, before their account has connected (nobilis 7976452)
    • Fixed Kick follows being saved before Kick confirmed the channel exists (nobilis c2e40dd, nobilis 4d8f17b)
    • Kick requests are now spaced out, and a rate limit pauses every Kick request instead of retrying at once (nobilis f592a22, nobilis c99d52b, nobilis 2732d08)
    • Fixed a changed Sneedchat avatar never being fetched again (nobilis 04cb759)
    • Every media cache now expires old files, with a way to fetch removed pictures again (nobilis 25a0912, moho 9e67ca6)
    • Fixed Kick emotes removed by the cache sweep not drawing again (moho 70cd8d7)
    • Fixed Matrix reactions being counted more than once (nobilis 8ea9a70)
    • Fixed the scrollback being written to disk once per message (nobilis bd33f88)
    • Fixed the migration deleting the client's own config directory (nobilis 9e885a4, nobilis 207de58)
    • Fixed a removed account leaving its data behind (nobilis 2dd755e)
    • Fixed new members of an encrypted Matrix room not receiving its keys (nobilis b894dea)
    • Fixed two ways a Matrix sign-in could leave an account permanently unusable (nobilis ded9cc5)
    • Fixed sliding sync failing against Synapse (nobilis e2bb988)
    • Fixed Discord media links expiring on screen; they now refresh themselves (moho dc15c4b, nobilis f5a455b)
    • Repaired Discord messages stored with attachments in their text (nobilis 15007d6)
    • Fixed Discord streams opening a second connection (nobilis 7b64414)
    • Fixed lost video packets, phone streams and stream sound in Discord calls (nobilis 92dffca)
    • Fixed the Discord stream heartbeat using the wrong protocol version (nobilis 64dfa08)
    • Fixed a running upload being reported as failed (moho ee60271)
    • Fixed thumbnails opening as the thumbnail instead of the picture (moho 6af6ac3)
    • Fixed avif links not drawing as pictures (moho 1511c4b, nobilis 4e3c65d)
    • Fixed links in brackets not being recognised (nobilis dd450eb)
    • Fixed a full-size photo being downloaded to draw a thumbnail (nobilis 873a908)
    • Fixed a crash in the room preview panel (moho 04a6b7d)
    • Fixed call renegotiation not waiting for its answer (moho db0f651)
    • Fixed a screen share on Wayland asking twice (moho 2c146d9)
    • Discord no longer attempts what it puts behind a captcha (nobilis 8da2e7a)
    • The renderer now runs sandboxed (moho e791fcf)
    • The installer warns when Windows Smart App Control will block moho (moho 5a8d7f7)
    • The uninstaller now offers to remove saved sign-ins and history, and stops the daemon first (moho 76eabac)
    • Linux builds now run on Ubuntu 22.04 and later (moho 4c6e24b)
    • Updated Rust crate h2 from 0.4.15 to 0.4.19 (nobilis 2f5918e)
    • Added Rust crate opus2 0.4.0 (nobilis f9b5be5)
    • Added Rust crate aes-gcm 0.10.3 (nobilis 9d50723)
    • Added Rust crate chacha20poly1305 0.10.1 (nobilis 9d50723)
    • Added Rust crate davey 0.1.4 (nobilis 8ae2148)
    • Removed Rust crate async-trait 0.1.92 (nobilis cbb044d)
    • Removed Rust crate songbird 0.6.0 (nobilis cbb044d)
    • Added Rust crate socket2 0.6.5 (nobilis 92dffca)
    • Added Rust crate sonora 0.2.0 (nobilis 72ef1b5)
    • Updated Rust crate arti-client from 0.44.0 to 0.47.0 (nobilis c34b751)
    • Updated Rust crate matrix-sdk-common from 0.18.0 to 0.19.1 (nobilis c34b751)
    • Updated Rust crate matrix-sdk-crypto from 0.18.0 to 0.19.1 (nobilis c34b751)
    • Updated Rust crate matrix-sdk-sqlite from 0.18.0 to 0.19.1 (nobilis c34b751)
    • Updated Rust crate ruma-client-api from 0.24.0 to 0.25.0 (nobilis c34b751)
    • Updated Rust crate ruma-common from 0.19.0 to 0.20.0 (nobilis c34b751)
    • Updated Rust crate ruma-events from 0.34.0 to 0.35.0 (nobilis c34b751)
    • Updated Rust crate rusqlite from 0.37.0 to 0.40.2 (nobilis c34b751)
    • Updated Rust crate tor-rtcompat from 0.44.0 to 0.47.0 (nobilis c34b751)
    • Updated Rust crate rustls from 0.23.43 to 0.23.45 (nobilis 2f5918e)
    • Updated npm package electron-builder from 25.1.8 to 26.15.3 (moho e791fcf)
    • Updated npm package electron from 33.4.11 to 44.4.4 (moho 932a07a)
    • Added npm package lottie-web 5.13.0 (moho f67c753)
    • Added npm package happy-dom 15.11.7 (moho 53a6f92)
    • Added npm package vitest 2.1.9 (moho 53a6f92)

    Downloads

    File Platform
    moho-1.0.0.AppImage Linux x86_64 - mark it executable and run it
    moho-1.0.0.deb Debian / Ubuntu x86_64
    moho-1.0.0.exe Windows x64 - a per-user installer, no administrator needed

    The Windows installer is not code-signed. SmartScreen warns when you run it:
    choose More info, then Run anyway. If Windows 11's Smart App Control is on,
    moho installs but never opens; turn it off in Windows Security > App & browser
    control > Smart App Control settings
    . The installer checks and warns.

    Downloads
  • Salastil released this 2026-10-10 16:37:56 -04:00 | 132 commits to development since this release

    Major features

    • GIFs on every service: a linked GIF is drawn as the picture - silent, looping, without the player - whichever service it came from, and a GIF picker with trending, categories and search sends one from the composer. Klipy, Tenor and Giphy pages are never probed for what they are.
    • Idle detection: moho notices when nothing has been used for a while, from the system where it can say and from its own windows where it cannot, and puts an account that has an idle on Idle and back. It has a setting for it and for how long, and the plaque says Idle (away) while keeping what you chose checked.
    • Link cards on every service: a YouTube link gets a titled card with its channel on IRC, Matrix, Kick and Sneedchat as it does on Discord - including through Tor, which YouTube refuses the usual way - and one added in an edit, read back from history, or posted before cards existed gets its card too.

    Fixes, patches and changes

    • Added idle detection with a setting for it and for how long (moho 23c87dd, nobilis 35ea0b7)
    • Added GIFs drawn as pictures on every service, and a GIF picker (moho 55248eb, nobilis 046fbb4)
    • Fixed a Sneedchat picture from the forum's uploads host - an AVIF, or an MP4 - not drawing: its domain is taken off and it is fetched through the account's route, clearnet or Tor (moho 07f4fc2, nobilis ca29a63)
    • Fixed the tray's number drifting from the client's: it is now counted by the window, by the rail's rule, and told to the tray whenever it changes (moho 1e314f8)
    • Fixed YouTube cards never appearing for an account on Tor: YouTube answers every Tor exit with a 403 on its card lookup, so the video's own page is read when that happens (moho 8064e79, nobilis 340342b)
    • Fixed link cards being lost when a message was edited, and missing from Matrix history, Discord catch-up and older messages (moho 638b02e, nobilis dab394f)
    • Fixed scrolling through a long run of unread messages snapping back to where the "new messages" bar appeared (moho 336335a)
    • The number beside a conversation is what is addressed to you - mentions in a channel, each unread message in a direct message - and the bold name is the sign of activity (moho 987f31c)
    • A muted channel keeps its mention count in the list, the rail, the switcher and the tray, and stops the popups; muting a Discord channel or direct message is now set on the account, so a phone is quiet too (moho 7803cc3, nobilis b0fa250)

    Downloads

    File Platform
    moho-1.0.0-rc.5.AppImage Linux x86_64 - mark it executable and run it
    moho-1.0.0-rc.5.deb Debian / Ubuntu x86_64
    moho-1.0.0-rc.5.exe Windows x64 - a per-user installer, no administrator needed

    The Windows installer is not code-signed. SmartScreen warns when you run it:
    choose More info, then Run anyway. If Windows 11's Smart App Control is on,
    moho installs but never opens; turn it off in Windows Security > App & browser
    control > Smart App Control settings
    . The installer checks and warns.

    Downloads
  • Salastil released this 2026-10-09 15:40:14 -04:00 | 146 commits to development since this release

    Major features

    • A rebuilt tray: an icon drawn for the system's colour scheme with the number of conversations waiting on it, a tooltip that says what is waiting, and a menu of what is new, Show/Hide, Status, Settings, Restart moho and Quit - Restart moho brings back both the window and the daemon
    • Status by service: the plaque and the tray offer only the statuses each service has - Discord all four, IRC away and back, Matrix online and offline, Kick and Sneedchat none - and Do not disturb silences desktop notifications on every service, and is Discord's real mode there

    Fixes, patches and changes

    • Reworked the tray icon and menu, and dropped Restart daemon and Stop daemon from it (moho 24106e5)
    • Do not disturb now silences an account's desktop notifications and the taskbar flash; the tray no longer has a switch of its own for it (moho 53fb0f3)
    • Idle from the tray reaches Discord and IRC and leaves Matrix, Kick and Sneedchat as they were; a service is no longer asked for a status it does not have (moho c1bcb72, nobilis a8441ab)
    • Fixed Matrix's rate limit on changing status showing as M_LIMIT_EXCEEDED: a limited request now waits the time the server names, and a longer wait is applied when it is over (moho 0dfff0d, nobilis 43135c1)
    • Fixed the window being pulled back to the open conversation's server whenever you chose another: the daemon link coming up is acted on once, a refresh no longer follows the open conversation, and the tray is told only what changed (moho 745641a)
    • Matrix's invisible is called Offline in the plaque, its popout and the tray, which is what it sets (moho 745641a)
    • A room muted on a Matrix account can now be unmuted from the menu, including a mute set from Element (moho 745641a, nobilis 59db82c)
    • Server rail tiles now count the mentions waiting in them rather than the messages, and a muted room counts for nothing, mentions included (moho 0dc048c)
    • Fixed a room unmuted on a Matrix account still being drawn as muted; a mute or unmute the server did not take is now reported with its reason, and Matrix requests to a server that does not answer give up (moho 95f1784, nobilis d1bbcaf)
    • Discord requests now give up on a connection that has gone quiet, a history catch-up always releases its place, and the gateway logs what it receives and why a message is dropped (moho b151ef8, nobilis a34821e)
    • Fixed Discord reconnecting every few seconds after being told it is rate limited: it now waits out the minute Discord asks for (nobilis 59db82c)

    Downloads

    File Platform
    moho-1.0.0-rc.4.AppImage Linux x86_64 - mark it executable and run it
    moho-1.0.0-rc.4.deb Debian / Ubuntu x86_64
    moho-1.0.0-rc.4.exe Windows x64 - a per-user installer, no administrator needed

    The Windows installer is not code-signed. SmartScreen warns when you run it:
    choose More info, then Run anyway. If Windows 11's Smart App Control is on,
    moho installs but never opens; turn it off in Windows Security > App & browser
    control > Smart App Control settings
    . The installer checks and warns.

    Downloads
  • Salastil released this 2026-10-08 23:51:29 -04:00 | 158 commits to development since this release

    Major features

    • Discord forums: forum and media channels appear in the channel list and open as a pane of posts - title, tags, the first message's words, replies, age, picture and top reaction - with search, sorting, older posts, and a New Post form
    • A redesigned interface: Discord-shaped messages with date separators and an unread bar, red mention badges, a Ctrl+K quick switcher, keyboard navigation, a rail with mention counts and folders, a member list with faces, and motion throughout
    • Settings rebuilt: one click from the gear, a grouped rail with a search over every setting, and new Appearance (layout, spacing, zoom, clock, reduce motion), Notifications and Keybinds pages with a hotkey recorder
    • A one-box message composer: a + menu, Send only when there is something to send, Shift+Enter for a new line on every service, an attachment tray with spoilers, and dropped files going into the tray
    • Discord notices and permissions: Discord's own safety notices drawn as the cards they are, and a banner in place of the message box wherever nothing can be written

    Fixes, patches and changes

    • Fixed Sneedchat pictures posted back to back by a script merging into one unusable link (moho 6edae7a)
    • Discord files staged together now go as one message, with an upload ring that fills as it uploads (moho 9888c80, nobilis 9690905)
    • Fixed the release mirror script printing a traceback while the release did not exist yet (moho a8d9f41)
    • Defined the design tokens the stylesheet used but never had, and applied one set across it (moho 9db25c8, moho 3cdfe37)
    • Added a screenshot harness for before-and-after pictures of the interface (moho 88375ba)
    • Unread channels now read as unread, mentions are red, and every badge is one style (moho 4ca37dd)
    • Added date separators to the message list (moho b2464e4)
    • Added Mark as read on channels, categories and servers, and Escape to read what you are in (moho 2745a2f)
    • Added a Ctrl+K quick switcher and keyboard navigation between channels (moho 1eef37e)
    • Voice panel: a horizontal microphone bar, the connection's real latency, and a share button (moho ad0f0c0, nobilis e0f6169)
    • Replies jump to the message they answer, and names and pictures open the profile (moho bf45147)
    • Added Copy and Copy text on every message, and Copy message link on Discord (moho 0033955)
    • The hover toolbar fades in, can be reached by keyboard, and offers Edit, Copy and your recent reactions (moho 57e1856)
    • Fixed six interface bugs: a nested voice button, folded categories hiding unread, muted channels hiding mentions, overlapping corners, the typing strip moving the log, and pinned rows missing their service mark (moho 6598043)
    • Pending sends dim only their text, failed ones can be deleted, and Up in an empty box edits your last message in a multi-line editor (moho 6a82c32)
    • Server rail: mention counts, folders that say what is waiting and stay open, an instant name flyout and a red close button (moho 8072b24)
    • Member list: faces, presence dots, and a click for the profile; Discord's member pictures now come with the list (moho c912ed3, nobilis 4099305)
    • Voice channel list: faces, muted and deafened marks, a speaking ring and a collapsible heading (moho 843288d)
    • Comfy messages in Discord's shape, amber mention rows, one code and quote style, and marked system lines (moho 3a7677e)
    • Buttons are primary, subtle or the one danger style, and the restarts ask first (moho 2c8609c)
    • Escape closes only the top layer, and full-page panels close on Escape (moho c5e7619)
    • Thread panel reads the display settings, groups replies and follows the newest (moho 33129f9)
    • Toasts slide in and out, come in three kinds, pause on hover and fold repeats (moho 2d1b8be)
    • Context menu: keyboard navigation, checked items, shortcut hints, and placement that holds while it animates (moho 4065963, moho fcb7df5)
    • A conversation opens at its first unread, with a bar saying how many are above (moho 55fd192)
    • Added hover fades, turning fold arrows, arriving messages, a reaction pop and growing overlays (moho 6d8a050)
    • Every dialog is built from one shared frame with a close button, kept focus and a scrim below the title bar (moho 5cb30ce, moho 420a2f7, moho 6a329c6)
    • Shift+Enter makes a new line on every service and pasted line breaks stay; IRC sends them as a batch or separate lines, Sneedchat as [br], Kick as one line (moho 9ba630c, nobilis ccc8de6)
    • Reply bar: its own surface, the author's face, Esc to cancel, and an @ switch to answer without pinging on Discord (moho f48185e, nobilis 918fcfa)
    • One style for the name, command and emoji lists, with member pictures and :shortcode emoji completion (moho 28d8b3c)
    • Lightbox: step through a conversation's pictures, wheel and pinch zoom with panning, and Copy picture (moho 817cb1e)
    • Emoji picker: walk it with the arrow keys, Enter picks the top result, and skin tones are remembered (moho 99fd0d3)
    • Attachment tray cards with name, size and a Discord spoiler toggle; dropped files go into the tray instead of being sent at once (moho 15e7061, nobilis 0f5669b)
    • Composer: one box with the + on the left and emoji, stickers, voice and Send on the right (moho a59c1ab)
    • Several pictures in one message lay out as a grid, and SPOILER_ files are blurred until clicked (moho 87ea3b8)
    • Pinned messages show as a banner over the log for Discord and Matrix, with a count on the header (moho 3a74cf0)
    • Reactions say what they are and who gave them on hover (moho 506140d, nobilis 1da3ad8)
    • User footer: muted and deafened are red, voice buttons stay on every service, and the status is a popout with a custom status for Discord and Matrix and Apply to all accounts (moho c026609, nobilis f280563)
    • The footer's join button is gone; the rail's + is the one way in, pinned under a rule above the settings cog while the server list scrolls (moho b4c1ced, moho dad5543)
    • Header: one 48px row across every column, filled toggles, and the channel topic from IRC, Matrix and Discord (moho 2ef9e35, nobilis 44d1611)
    • "(edited)" says when on hover, for edits seen live (moho 7f4c356, nobilis e51f139)
    • Incoming Discord and Matrix calls share one card style and stack (moho 59d4893)
    • Settings: the gear opens it directly, with Accounts and Downloads as pages, a search, one switch for every boolean and a saved tick (moho 66a0c0f, moho cc4c9f6)
    • Settings: added Appearance, Notifications and Keybinds pages, the last with a recorder for the global hotkey (moho fe6ad97, moho adca84d, moho 82a0bdf)
    • Accounts open by default with few accounts, Remove sits in a danger zone, and Join picks its account and says Join (moho f8dcccd)
    • Mentions page: service and unread filters, day groups, two-line bodies and put-away (moho 078fe41)
    • Room settings is a tabbed dialog instead of a popover (moho f8936c6)
    • Quiet buttons such as Cancel have their own fill, so they no longer vanish into a dialog (moho 50aaa97)
    • Fixed browsing an IRC network's channels freezing or blanking the window: the daemon holds the list and sends a page, it times out after a minute, and a refusal is reported (moho 2b41c5e, nobilis 152fdf1)
    • Channels in the list no longer jump to the top as messages arrive (moho 9f03d6b)
    • Fixed Discord's notices showing only a stand-in title: they are read as cards, and a banner replaces the message box in them and in channels this account cannot write in (moho ff7d313, moho d7c4215, moho 2a4f797, nobilis 1b270be, nobilis 97ac6bc, nobilis 7561b88)
    • A window whose page dies is reloaded and the reason logged, instead of being left empty (moho 6899694, moho 06bb812)
    • Discord forums, with live and archived posts read together (moho dd0c25e, nobilis d02bba0, nobilis 8363003, nobilis 3cf1a5b, nobilis 6abcb8e)
    • Added Rust crate tokio-util 0.7.19 (nobilis 9690905)

    Downloads

    File Platform
    moho-1.0.0-rc.3.AppImage Linux x86_64 - mark it executable and run it
    moho-1.0.0-rc.3.deb Debian / Ubuntu x86_64
    moho-1.0.0-rc.3.exe Windows x64 - a per-user installer, no administrator needed

    The Windows installer is not code-signed. SmartScreen warns when you run it:
    choose More info, then Run anyway. If Windows 11's Smart App Control is on,
    moho installs but never opens; turn it off in Windows Security > App & browser
    control > Smart App Control settings
    . The installer checks and warns.

    Downloads
  • Salastil released this 2026-10-07 18:06:20 -04:00 | 228 commits to development since this release

    Major features

    • Five protocols in one window: IRC, Discord, Matrix with end-to-end encryption, Sneedchat, and Kick.
    • Discord voice and video: calls, cameras, screen sharing and Go Live, stage channels, the soundboard and per-person volume, all with Discord's DAVE end-to-end encryption.
    • Matrix: encrypted rooms with device verification and key backup, Element Call, sliding sync, spaces, and signing in by QR code from a phone.
    • Per-account Tor and SOCKS5 routing: Clearnet, Service tunnel or Strict - Strict sends every picture, link check and embed through the account's route too. Or send everything through Tor at once.
    • One mentions inbox across every service, link previews, YouTube cards that play in place, voice messages, polls, and exporting a conversation to disk.
    • A background daemon (nobilis) that keeps every connection alive with the window closed.

    Fixes, patches and changes

    • Channel rows in the sidebar now show a single # instead of two (moho ccdf090)
    • Typing anywhere in the window now goes into the message box, without clicking it first (moho b5f920f)
    • Added a formatting strip over selected text in the message box, offering the formats each service can carry (moho 9ca477c)
    • Added a right-click menu to every text field, with spelling suggestions, Undo, Cut, Copy, Paste and Select all (moho b2a6210)
    • Fixed YouTube cards not appearing on Sneedchat when YouTube refused a Tor exit, so most links there had none (moho 0368796, nobilis 71e6036)
    • Fixed live and premiere YouTube videos vanishing because they have no thumbnail yet (moho 916abd4)
    • Fixed YouTube links with the video id after other parameters, music.youtube.com and youtube-nocookie.com links getting no card (nobilis f8409fc)
    • Patched a flaw that let a message's content make moho load a local file (moho 7138201, nobilis f972611)
    • Strict routing now sends a Tor or proxy account's pictures, links and embeds through its route instead of directly (moho cee8604, nobilis a3897ba)
    • Discord voice and soundboard audio is now checked before it reaches the C decoder (nobilis 8eca16e)
    • Fixed Discord showing "connecting" after every successful resume (nobilis 52b0001)
    • Fixed reconnect waits growing to a minute and never resetting (nobilis 52b0001)
    • The interruption banner now counts down to the next reconnect attempt (moho 89da9ba)
    • Fixed Kick over Tor failing every channel lookup until a reconnect (nobilis 5755c4e)
    • Fixed failed Kick joins vanishing without a message (nobilis 5755c4e)
    • IRC now shows the server's own reason when it refuses a connection (nobilis 9eeab7e)
    • Fixed Disconnect and Remove showing a "cancelled" error (nobilis 8bcba8b)
    • Fixed new accounts not appearing on the server rail until a restart (moho e207224)
    • Joining a channel now opens it (moho e207224)
    • Removing an account now asks first (moho 16fa8a2)
    • Fixed the Matrix form saying matrix.org takes no new accounts (moho 16fa8a2)
    • Fixed Kick's mark drawing as a blank square in the accounts pane (moho 0ea63f5)
    • Fixed a cleared service interruption staying on screen (moho fd09b6b)
    • Conversations now show at start, before their account has connected (nobilis 7976452)
    • Fixed Kick follows being saved before Kick confirmed the channel exists (nobilis c2e40dd, nobilis 4d8f17b)
    • Kick requests are now spaced out, and a rate limit pauses every Kick request instead of retrying at once (nobilis f592a22, nobilis c99d52b, nobilis 2732d08)
    • Fixed a changed Sneedchat avatar never being fetched again (nobilis 04cb759)
    • Every media cache now expires old files, with a way to fetch removed pictures again (nobilis 25a0912, moho 9e67ca6)
    • Fixed Kick emotes removed by the cache sweep not drawing again (moho 70cd8d7)
    • Fixed Matrix reactions being counted more than once (nobilis 8ea9a70)
    • Fixed the scrollback being written to disk once per message (nobilis bd33f88)
    • Fixed the migration deleting the client's own config directory (nobilis 9e885a4, nobilis 207de58)
    • Fixed a removed account leaving its data behind (nobilis 2dd755e)
    • Fixed new members of an encrypted Matrix room not receiving its keys (nobilis b894dea)
    • Fixed two ways a Matrix sign-in could leave an account permanently unusable (nobilis ded9cc5)
    • Fixed sliding sync failing against Synapse (nobilis e2bb988)
    • Fixed Discord media links expiring on screen; they now refresh themselves (moho dc15c4b, nobilis f5a455b)
    • Repaired Discord messages stored with attachments in their text (nobilis 15007d6)
    • Fixed Discord streams opening a second connection (nobilis 7b64414)
    • Fixed lost video packets, phone streams and stream sound in Discord calls (nobilis 92dffca)
    • Fixed the Discord stream heartbeat using the wrong protocol version (nobilis 64dfa08)
    • Fixed a running upload being reported as failed (moho ee60271)
    • Fixed thumbnails opening as the thumbnail instead of the picture (moho 6af6ac3)
    • Fixed avif links not drawing as pictures (moho 1511c4b, nobilis 4e3c65d)
    • Fixed links in brackets not being recognised (nobilis dd450eb)
    • Fixed a full-size photo being downloaded to draw a thumbnail (nobilis 873a908)
    • Fixed a crash in the room preview panel (moho 04a6b7d)
    • Fixed call renegotiation not waiting for its answer (moho db0f651)
    • Fixed a screen share on Wayland asking twice (moho 2c146d9)
    • Discord no longer attempts what it puts behind a captcha (nobilis 8da2e7a)
    • The renderer now runs sandboxed (moho e791fcf)
    • The installer warns when Windows Smart App Control will block moho (moho 5a8d7f7)
    • The uninstaller now offers to remove saved sign-ins and history, and stops the daemon first (moho 76eabac)
    • Linux builds now run on Ubuntu 22.04 and later (moho 4c6e24b)
    • Updated Rust crate h2 from 0.4.15 to 0.4.19 (nobilis 2f5918e)
    • Added Rust crate opus2 0.4.0 (nobilis f9b5be5)
    • Added Rust crate aes-gcm 0.10.3 (nobilis 9d50723)
    • Added Rust crate chacha20poly1305 0.10.1 (nobilis 9d50723)
    • Added Rust crate davey 0.1.4 (nobilis 8ae2148)
    • Removed Rust crate async-trait 0.1.92 (nobilis cbb044d)
    • Removed Rust crate songbird 0.6.0 (nobilis cbb044d)
    • Added Rust crate socket2 0.6.5 (nobilis 92dffca)
    • Added Rust crate sonora 0.2.0 (nobilis 72ef1b5)
    • Updated Rust crate arti-client from 0.44.0 to 0.47.0 (nobilis c34b751)
    • Updated Rust crate matrix-sdk-common from 0.18.0 to 0.19.1 (nobilis c34b751)
    • Updated Rust crate matrix-sdk-crypto from 0.18.0 to 0.19.1 (nobilis c34b751)
    • Updated Rust crate matrix-sdk-sqlite from 0.18.0 to 0.19.1 (nobilis c34b751)
    • Updated Rust crate ruma-client-api from 0.24.0 to 0.25.0 (nobilis c34b751)
    • Updated Rust crate ruma-common from 0.19.0 to 0.20.0 (nobilis c34b751)
    • Updated Rust crate ruma-events from 0.34.0 to 0.35.0 (nobilis c34b751)
    • Updated Rust crate rusqlite from 0.37.0 to 0.40.2 (nobilis c34b751)
    • Updated Rust crate tor-rtcompat from 0.44.0 to 0.47.0 (nobilis c34b751)
    • Updated Rust crate rustls from 0.23.43 to 0.23.45 (nobilis 2f5918e)
    • Updated npm package electron-builder from 25.1.8 to 26.15.3 (moho e791fcf)
    • Updated npm package electron from 33.4.11 to 44.4.4 (moho 932a07a)
    • Added npm package lottie-web 5.13.0 (moho f67c753)
    • Added npm package happy-dom 15.11.7 (moho 53a6f92)
    • Added npm package vitest 2.1.9 (moho 53a6f92)

    Downloads

    File Platform
    moho-1.0.0-rc.2.AppImage Linux x86_64 - mark it executable and run it
    moho-1.0.0-rc.2.deb Debian / Ubuntu x86_64
    moho-1.0.0-rc.2.exe Windows x64 - a per-user installer, no administrator needed

    The Windows installer is not code-signed. SmartScreen warns when you run it:
    choose More info, then Run anyway. If Windows 11's Smart App Control is on,
    moho installs but never opens; turn it off in Windows Security > App & browser
    control > Smart App Control settings
    . The installer checks and warns.

    Downloads
  • Salastil released this 2026-10-04 16:31:43 -04:00 | 241 commits to development since this release

    Major features

    • Five protocols in one window: IRC, Discord, Matrix with end-to-end encryption, Sneedchat, and Kick.
    • Discord voice and video: calls, cameras, screen sharing and Go Live, stage channels, the soundboard and per-person volume, all with Discord's DAVE end-to-end encryption.
    • Matrix: encrypted rooms with device verification and key backup, Element Call, sliding sync, spaces, and signing in by QR code from a phone.
    • Per-account Tor and SOCKS5 routing: Clearnet, Service tunnel or Strict - Strict sends every picture, link check and embed through the account's route too. Or send everything through Tor at once.
    • One mentions inbox across every service, link previews, YouTube cards that play in place, voice messages, polls, and exporting a conversation to disk.
    • A background daemon (nobilis) that keeps every connection alive with the window closed.

    Fixes, patches and changes

    Downloads

    File Platform
    moho-1.0.0-rc.1.AppImage Linux x86_64 - mark it executable and run it
    moho-1.0.0-rc.1.deb Debian / Ubuntu x86_64
    moho-1.0.0-rc.1.exe Windows x64 - a per-user installer, no administrator needed

    The Windows installer is not code-signed. SmartScreen warns when you run it:
    choose More info, then Run anyway. If Windows 11's Smart App Control is on,
    moho installs but never opens; turn it off in Windows Security > App & browser
    control > Smart App Control settings
    . The installer checks and warns.

    Downloads