fetching version... — Open source, GPLv3

Private messaging, peer to peer.

MeshTalk discovers peers on your LAN and punches through NATs for remote connections. Messages are end-to-end encrypted. No servers store your data.

~/meshtalk
$ meshtalk
  ███╗   ███╗███████╗███████╗██╗  ██╗████████╗ █████╗ ██╗     ██╗  ██╗
  ████╗ ████║██╔════╝██╔════╝██║  ██║╚══██╔══╝██╔══██╗██║     ██║ ██╔╝
  ██╔████╔██║█████╗  ███████╗███████║   ██║   ███████║██║     █████╔╝
  ██║╚██╔╝██║██╔══╝  ╚════██║██╔══██║   ██║   ██╔══██║██║     ██╔═██╗
  ██║ ╚═╝ ██║███████╗███████║██║  ██║   ██║   ██║  ██║███████╗██║  ██╗
  ╚═╝     ╚═╝╚══════╝╚══════╝╚═╝  ╚═╝   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝
discover › 3 peers found you › Welp, there goes the camp's internet connection... ami › MeshTalk still works, we're on LAN :) you › sending the photos now ⤓ sunset.jpg · 4.2 MiB ✓ delivered

ARCHITECTURE

How MeshTalk connects you

LAN peers connect directly. Remote peers use STUN hole punching with a DERP relay fallback — all encrypted.

LAN Discovery

UDP broadcast finds peers on your local network. No internet or server required. The lower peer ID opens an authenticated TCP connection.

NAT Traversal

STUN-assisted UDP hole punching for direct remote connections. When direct fails, MeshTalk Relay carries encrypted frames through the control service.

End-to-End Encryption

X25519 key exchange, AES-256-GCM encryption, Ed25519 signatures. The control service never sees your messages or room secrets.

OpenTUI / CLI
      
  local IPC
      
Python backend ──── LAN broadcast + TCP ──── LAN peers
      
      ├──── encrypted endpoint cards ──── control service
      
      ├──── STUN + reliable encrypted UDP ──── remote peers
      
      └──── MeshTalk Relay (fallback) ──── remote peers

CAPABILITIES

Built for real communication

🔒

E2EE Messages

Ephemeral X25519 keys and AES-256-GCM. Every message is encrypted for its recipient only.

👥

Group Chats

Named rooms with pairwise fan-out encryption. Offline members get queued delivery on reconnect.

📁

File Transfer

Send files up to 50 MiB directly. Each chunk gets its own ephemeral key for forward secrecy.

🖥️

TUI & CLI

Terminal-native interfaces. Works over SSH, in tmux, or anywhere your terminal goes.

🐳

Docker Support

Pre-built multi-arch images. Docker Compose setup for the control service and client.

🔄

Self-Updates

Built-in update mechanism. Run meshtalk update --install to stay current.

DOWNLOAD

Get MeshTalk

One-line install or manual download. Binaries include the backend, CLI, and TUI — no Python or Bun required at runtime.

Quick Install

curl -fsSL https://go.qincai.xyz/getmeshtalk | bash

Pass --non-interactive to skip prompts. Use --help for all options.

Linux requires glibc 2.38+ (Ubuntu 24.04+, Debian 13+, Fedora 39+). Build from source for older systems.

Start meshing.

Download MeshTalk, share a room invite, and talk privately. No accounts, no servers, no middlemen.