A Matrix chat client with voice calls that just work.
Themes, profiles, plugins and a calm interface. Built for macOS, Linux and iPhone/iPad.
Download · Features · Install · Build from source · Changelog
Diddy is built on Cinny and adds what everyday chat with friends and teams needs: reliable voice calls, screen sharing with sound, rich profiles and a polished, themeable interface. It speaks plain Matrix, so it works with any homeserver and with end-to-end encrypted rooms.
|
Join a voice room in one click. Calls work on macOS, where Cinny's web client hangs, and on Linux, including encrypted rooms. Noise suppression is built in, and the headphone button mutes microphone and sound together. |
Streams stay sharp even when Diddy is in the background. Share with system audio on macOS 14.2+ and Linux, switch the sound on or off from the call bar, and pull any stream to the front with a click. |
Name colors, banners, badges and animated name plates. Everyone running Diddy sees them on the profile card, in the member list and in the chat. |
|
From Light and Silver to Dark, Daaark, Butter, Diddy, Red, Green, Purple and Amber. Pick one in Settings → Appearance, or follow the system. |
A sandboxed plugin system with a built-in gallery (to-do, timer, calendar and more), a soundboard with MyInstants import, and a full set of app sounds you can switch off or replace. |
Online, Idle, Do Not Disturb and Invisible. Do Not Disturb silences message sounds, notifications and the call ring, and syncs across your devices. |
More details:
- Chat: voice messages that show up as voice messages in Element, a right-click menu with Copy Text, Join All Rooms for spaces, and a calm member list split by online and offline.
- Music stays loud: with Voice processing off, Diddy records the microphone directly through Core Audio, so macOS no longer ducks other apps when you join a call.
- Call alerts: on iOS, optional push alerts through ntfy ("Name is calling you") when someone calls and the app is closed.
- Connection profiles: if a homeserver is down, open another one in its own window with a separate login and data store. Your existing account and keys stay untouched.
- No auto-update: Diddy only changes when you install a new version.
Ten built-in themes, from light to dark (Settings → Appearance):
![]() |
![]() |
| Pick a theme | Design your profile card |
All images show example data and are generated from the real app, see docs/screenshots.
| macOS | Linux | iPhone / iPad | |
|---|---|---|---|
| Chat, rooms, encryption | ✅ | ✅ Electron | 🧪 native app, new |
| Voice calls | ✅ | ✅ also encrypted | 🧪 |
| Screen sharing | ✅ | 🧪 Wayland portal / X11 picker | 🧪 full screen on iOS 27+, otherwise Diddy only |
| …with system sound | ✅ macOS 14.2+ | 🧪 other apps, not Diddy's own sound | 🧪 app sound |
| Connection profiles | ✅ macOS 14+ | 🧪 untested | 🧪 multiple accounts |
| Voice messages | ✅ | 🧪 | ❌ |
| Change app icon | ✅ | 🧪 | 🧪 |
✅ works and is tested · 🧪 built, but not yet tested in daily use · ❌ not supported (yet)
Downloads are on the Releases page. Pushing a version tag (vX.Y.Z) builds everything automatically: the macOS DMG, Linux AppImage, DEB and RPM, the iOS IPA and SHA256SUMS.
macOS (Apple Silicon)
- Open
Diddy_*_aarch64.dmgand drag Diddy to Applications. - The app is not notarized yet, so run this once in a terminal:
xattr -cr /Applications/Diddy.app
- Start Diddy and allow the microphone. For stream sound, also allow Screen & System Audio Recording.
Linux
| Package | Command |
|---|---|
| AppImage | chmod +x Diddy_*.AppImage && ./Diddy_*.AppImage |
| Debian / Ubuntu | sudo apt install ./Diddy_*.deb |
| Fedora / openSUSE | sudo dnf install ./Diddy_*.rpm |
| NixOS | nix run .#diddy in a checkout, see the NixOS guide (German) |
[!NOTE] All current Linux packages use Electron (Chromium): NixOS, AppImage and DEB. System sound capture uses a bundled helper on top of PipeWire's PulseAudio interface or PulseAudio. When moving over from the old Tauri build, sign in once more and verify the new device; your old keys stay in the previous storage.
No Linux machine? You can try Linux and NixOS on a Mac with UTM: VM guide (German).
iPhone / iPad
A native app in a Discord-like style (SwiftUI, matrix-rust-sdk, LiveKit), not a web view. The Build iOS workflow produces the IPA. Without a paid Apple account, install it with AltStore, SideStore or Sideloadly. Details, server requirements and build steps: ios/README.md.
The iOS app is in beta. Voice channels in encrypted rooms are end-to-end encrypted like Element Call, but without key rotation when someone leaves yet; devices get the media key from the LiveKit participant list. Hardening is planned (ios/SECURITY-TODO.md).
On the Mac, Diddy shows Apple emoji. On Linux it uses the Apple Color Emoji font automatically once it is installed, and falls back to your system emoji (Noto) otherwise. Settings → Appearance → Emoji tells you whether the font was found.
Important
Apple emoji are Apple's artwork: not freely licensed and not redistributable. Diddy therefore does not ship them in any package. Install them for yourself and at your own responsibility.
With the community build samuelngs/apple-emoji-ttf:
mkdir -p ~/.local/share/fonts
curl -L -o ~/.local/share/fonts/AppleColorEmoji.ttf \
https://github.com/samuelngs/apple-emoji-ttf/releases/latest/download/AppleColorEmoji-Linux.ttf
fc-cache -fRestart Diddy afterwards. The file is over 100 MB. On NixOS there is an optional, unfree package (not part of the default diddy package):
fonts.packages = [ inputs.diddy.packages.${pkgs.system}.apple-color-emoji ];The most helpful thing is the log file. It lives at ~/Library/Logs/Diddy/app.log on macOS, ~/.local/state/diddy/app.log on Linux and %LOCALAPPDATA%\Diddy\Logs\app.log on Windows. In the app, Settings → About → Diagnostics → Open Folder opens the folder. The log contains technical events and errors, never message text.
macOS: Node 24, Rust and the Tauri prerequisites.
(cd cinny && npm ci) && npm ci && npm run tauri -- buildLinux: (cd cinny && npm ci && npm run build), then (cd electron && npm ci && npm run dist:linux) (needs a C compiler, pkg-config and libpulse development files). NixOS: nix build .#diddy. For development with Electron see the NixOS guide (German).
Tests that need no hardware:
cd cinny && npm test # JavaScript
cd electron && npm test # Linux shell (Electron)
cd src-tauri && cargo test --lib -- --test-threads=1 # native
cd cinny && npm run build && npm run test:e2e # browser smoke test (Playwright, Chromium)On macOS, start the native tests with DYLD_LIBRARY_PATH=/usr/lib/swift.
AGPL-3.0, like Cinny.


