Skip to content
ratspeakPublic

About

Ratspeak - a desktop/mobile client for Reticulum

Resources

Stars

220 stars

Watchers

4 watching

Forks

Repository files navigation

Ratspeak logo

Ratspeak

Ratspeak is a native desktop and mobile client for end-to-end encrypted direct conversations over Reticulum. It includes file/image sharing, experimental voice calls and voice messages, shared Channels, LoRa and Bluetooth connections, offline inbox support, and turn-based games. Channel hubs can read the messages they distribute.

Click here for iOS TestFlight Public Beta!

Docs | Build from source | rsReticulum | rsLXMF | rsLXST

License: AGPL-3.0-or-later Rust 1.89+ Status

Ratspeak running on desktop and mobile
Note: Ratspeak is currently in ALPHA. If you are looking for a more stable
experience, waiting for a later stable release is recommended.

What It Is

Ratspeak is for private messaging when the normal internet is unavailable, untrusted, or not the path you want to depend on. When your cell tower is down, when natural disaster hits, or when you just want an alternative. When you know the current system is broken.

It runs on Reticulum and LXMF, so conversations can happen over regular internet, compatible LoRa radios, WiFi and Bluetooth. The usable paths depend on your configured interfaces, hardware and platform.

There is no Ratspeak account server, no central database, no hub where everything routes through by default. Your Reticulum identity is generated on your device, and your messaging address is derived from it. No personal information is needed. A fresh profile needs an enabled interface before it can reach peers.

Current State

Ratspeak is in experimental/alpha status. That means there are bugs, there are quirks, and things are not perfect. If something isn't working up to your standards, or at all, open an issue with the details needed to reproduce it. Useful, direct feedback helps us fix things faster.

Current public packages are available for macOS, Windows, Linux and Android at ratspeak.org/download.html. The app also has an iOS TestFlight beta; TestFlight controls which build is currently offered and whether places are available. Choose the package matching your operating system and processor, and read its release notes for changes and platform limitations.

What You Get

  • Account-free messaging over Reticulum.
  • Store-and-forward messaging through a configured, reachable propagation node; availability and retention depend on that node.
  • Shared Channels with local history, member presence and optional desktop hub hosting. Hubs distribute live messages; local history is not a replay backlog.
  • Local Network, TCP, RNode/LoRa support, Bluetooth Peering, and more.
  • Contacts, discovered peers, path requests, interface status, propagation status, and transport health in the app.
  • Activity tools for understanding network and messaging events without leaving the app.
  • Experimental peer-to-peer voice calls over LXST (native microphone/speaker; incoming callers must be a contact or a recognized direct peer).
  • Experimental voice messages with local recording and playback.
  • Chess, Tic-Tac-Toe, and Four in a Row.
  • Built-in light/dark modes, selectable color themes, and adjustable text size.

Install

Get the current installers from ratspeak.org/download.html.

For setup help, see:

Build From Source

Advanced local-stack sharing in this source tree is described in Local Reticulum ownership.

The full build guide is here: Building from Source. It covers desktop prerequisites, Android APKs, iOS signing, and the required sibling checkout layout.

After installing the desktop prerequisites and Node.js 22.22.0, use the exact source helper for the current release:

git clone --branch v1.0.37 https://github.com/ratspeak/Ratspeak.git Ratspeak-source-tools
node Ratspeak-source-tools/scripts/release/checkout-release-source.mjs \
  --tag v1.0.37 --destination ratspeak-v1.0.37-source
cd ratspeak-v1.0.37-source
node Ratspeak/scripts/release/source-integrity.mjs verify-tags
cd Ratspeak
bash dashboard/build-css.sh
cd src-tauri
cargo tauri dev -- --locked

The helper creates the required Ratspeak, rsReticulum, rsLXMF, rsLXST and lrgp-rs sibling directories. Use a new destination if an existing tree contains work.

To reproduce a tagged Ratspeak release starting with v1.0.29, check out the Ratspeak vX.Y.Z tag and the matching annotated ratspeak-vX.Y.Z tag in each of rsReticulum, rsLXMF, rsLXST, and lrgp-rs. The exact commits in Ratspeak/release/dependency-set.json are authoritative; the coordinated tags are permanent readable aliases for that graph. From the sibling layout above, node Ratspeak/scripts/release/source-integrity.mjs verify-tags verifies every component version, annotated tag, and exact commit before a build.

For an automated exact checkout, use node scripts/release/checkout-release-source.mjs --tag vX.Y.Z --destination ../release-source from a tools checkout containing the helper. See Source packaging for plan mode, archive handling, and Nix packaging. Fetch component commit values from the selected release's manifest; component version values must not be used as standalone source tags.

For a release bundle, run cargo tauri build -- --locked from Ratspeak/src-tauri. Desktop bundles land under Ratspeak/src-tauri/target/release/bundle/.

To disable experimental voice, pass the Cargo flag after Tauri's separator: cargo tauri build -- --locked --no-default-features. Keep the rsLXST checkout; Cargo still resolves the declared path dependencies.

Voice (experimental)

Voice calls run on LXST over Reticulum links. A call does not use a central audio service, though its Reticulum path can include transport nodes. The stack is experimental:

  • Microphone and speaker access goes through the OS: RECORD_AUDIO and MODIFY_AUDIO_SETTINGS on Android, NSMicrophoneUsageDescription on macOS/iOS, the default audio device on Linux/Windows.
  • Incoming callers must be a contact or a recognized direct peer. Ratspeak recognizes a direct peer from a recent zero-hop announce or a cached zero-hop path. Blocked callers are rejected. Being eligible does not establish a usable audio connection; the recipient still needs to answer the call.
  • The lxst-voice Cargo feature is on by default. Disable it with cargo tauri dev -- --locked --no-default-features if you want to build Ratspeak without the voice stack.

Voice is experimental — expect rough edges. Codec quality, call setup, ringtones, and platform audio routing are all subject to change.

Platform Notes

  • iOS does not support general USB serial. Ratspeak's signed iOS builds support Local Network and multicast discovery; users must still grant the normal iOS Local Network permission. Notifications require user permission, and background execution remains subject to iOS lifecycle limits.
  • The current Windows EXE/MSI packages do not provide the Bluetooth Peer advertiser/peripheral role. Central-only operation requires the other device to advertise; see Bluetooth interfaces.
  • Linux Bluetooth Peer depends on BlueZ GATT server and LE advertising support.
  • Voice calls require microphone permission per platform; the prompt is triggered the first time you place or answer a call.

License

GNU Affero General Public License v3.0 or later. See LICENSE.

About

Ratspeak - a desktop/mobile client for Reticulum

Resources

Stars

220 stars

Watchers

4 watching

Forks

Releases

Contributors

Languages