Private chats, groups and calls over a peer-to-peer network.
Built for the desktop. Open source.
Download · Get started · What's new · Privacy
Desktop preview with sample data.
Open the latest release and choose the file for your platform.
| Download | Installation |
|---|---|
| Windows x64 · .exe | Run the installer. |
| macOS 12+ · .dmg | Drag Mosh to Applications. |
Windows installs without admin access. The macOS build supports Apple Silicon and Intel.
Windows and macOS packages are available. Android supports linked text chats while the app is open; Android packages are not published yet.
First launch and checksums
Release files are named mosh-<version>-setup.exe and
Mosh_<version>_universal.dmg. Each has a matching .sha256 checksum.
Mosh currently ships without a signature trusted by Windows or macOS. The macOS app has a self-signed signature and is not notarized. See the signing policy.
- Windows SmartScreen: choose More info, then Run anyway.
- macOS Gatekeeper: try opening the app once, then go to System Settings > Privacy & Security > Open Anyway.
On Windows, compare this output with the matching .sha256 file:
Get-FileHash .\mosh-*-setup.exe -Algorithm SHA256On macOS, put the DMG and its checksum in the same directory, then run:
shasum -a 256 -c Mosh_*_universal.dmg.sha256Mosh finds other devices automatically through the Moss network. Private chats and groups use end-to-end encryption. Messages travel without a central message server.
- Send messages, share files and voice notes, and make one-to-one voice calls.
- Keep personal chats, groups and public channels in one searchable list.
- See participants and shared files beside your chat on a wide window.
- Use English or Russian, with layouts for desktop and smaller screens.
Link a new installation using a trusted device's QR or private link, then confirm the code. Continue your text chats and recover available history. Each installation keeps its own keys and encrypted local storage.
- Choose your display name.
- Select This is my first device, or link a device you already use. Keep networking automatic unless you need to work around a VPN.
- Create a private chat and share its invitation. Your contact opens it in Mosh to join.
First-run setup with a sample name.
Setup saves your progress. Your name, devices and network preferences remain available in Settings. Existing installations with conversations or linked devices skip setup.
Setup guide · Private chat guide
- Private chats and groups are end-to-end encrypted. Public channels are signed, but their messages are not confidential.
- Discovery uses public trackers. Mosh does not provide anonymity, and participants can see device associations.
- Message history is encrypted locally. Crash reporting is off by default; you can enable it in Privacy settings.
How local history keys are stored
Windows and Linux use the OS credential store for the history key; Android uses Keystore. On macOS, the key is kept in a permission-restricted file in the app container. These choices and their limits are documented in the storage and threat model.
The app is Flutter and Riverpod over a Rust core, connected by
flutter_rust_bridge. The core owns OpenMLS, Moss transport, persistence and
voice calls.
Build from source and repository map
Use the toolchain versions from .github/actions/setup and rust-toolchain.toml. You also need Node.js and the native build tools for your platform. Start on Windows or macOS:
git clone --recursive https://github.com/redstone-md/mosh-flutter.git
cd mosh-flutter
node scripts/moss-prepare.mjs
flutter pub getOn macOS, prepare the native audio library before the first build:
brew install autoconf automake libtool
bash scripts/opus-prepare-macos.shThen run flutter run -d windows or flutter run -d macos on the matching
platform. Moss is built from the pinned submodule, including both macOS
architectures.
Moss preparation also reconstructs the pinned, patched OpenMLS source. Flutter
native builds and CI prepare it automatically. Before running Cargo or bridge
codegen directly in a fresh checkout, run node scripts/openmls-prepare.mjs.
The patch notes explain checksums and
offline builds.
| Location | Responsibility |
|---|---|
lib/ |
Flutter UI, feature state and generated Dart bindings |
mosh-core/ |
Rust runtime, encryption, transport and local persistence |
moss/ |
Pinned Go transport submodule |
docs/ADR/ |
Architecture decisions |
test/support/ |
Scripted dependencies shared by widget tests and previews |
The documentation index links to feature guides and decisions. See AGENTS.md for checks and contribution constraints, and the architecture map for runtime boundaries. The visual asset notes explain how to regenerate the screenshots and record the logo source and illustration prompts.
GNU GPL v3. Bundled Inter fonts use the SIL Open Font License.


