GETTING STARTED

Up and running
in seconds.

One command to install. One command to launch. Start chatting on your LAN immediately.

Installation

Quick Install

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

Downloads the latest release for your platform and installs to ~/.local/bin (Linux/macOS) or %LOCALAPPDATA%\MeshTalk (Windows).

Options:

--non-interactive skip prompts, accept defaults
--version TAG install a specific version
--install-dir DIR custom install directory
--prerelease include pre-release versions
--uninstall remove MeshTalk
--dry-run preview without installing

Manual Install

Download the .tar.gz for your platform from the latest release, extract it, and run ./meshtalk. The archive contains everything — no Python, Bun, or package manager needed.

Supported platforms:

✓ macOS (Intel + Apple Silicon)
✓ Linux x64 (glibc 2.38+)
✓ Linux ARM64
✓ Windows x64

Quick Start

# Launch the TUI
$ ./meshtalk
# The TUI starts an attached backend automatically.
# Press Ctrl+P for commands.
# Peers on your LAN appear automatically.

MeshTalk creates fresh state in ~/.meshtalk. The TUI shows peers on the left sidebar and conversations on the right.

Remote Setup

For peers on different networks, configure a control service. Press Ctrl+P in the TUI and select Control server.

MeshTalk prefers direct UDP and automatically falls back to MeshTalk Relay when direct setup fails. While relayed, it keeps probing for direct connectivity and switches back after the new path is authenticated, without requiring a reconnect. LAN TCP remains the highest-priority path when available.

# Via CLI
$ meshtalk control set-url wss://control.example/v1/rendezvous
# The public server is pre-configured. Custom servers must use wss://.

Note: Production control services must use wss://. Plain ws:// is accepted only for localhost development.

Group Chats

# Create a named group
$ meshtalk room create "Project Team"
✓ Invite copied to clipboard
# Share the invite through a trusted channel
# On the other end:
$ meshtalk room join 'meshtalk-group:...'
# Send a message
$ meshtalk group_send "Project Team" "Hello team!"

Group messages are encrypted independently for each member. No shared group key. Offline members receive queued delivery.

Docker

# Pull images
$ docker pull ghcr.io/qincai-rui/meshtalk/control:latest
$ docker pull ghcr.io/qincai-rui/meshtalk/client:latest
# Run with docker compose
$ docker compose up -d
$ docker compose run -it client

Build from Source

Requires Bun and uv.

$ git clone https://github.com/QinCai-rui/MeshTalk.git
$ cd meshtalk
$ bun install
$ bun run meshtalk

Updating

# Update the current installation
$ ./meshtalk update --install
# Update a different installation
$ ./meshtalk update --install --dir /path/to/MeshTalk

Updates use QinCai-rui/MeshTalk by default. Configure another repo with meshtalk update repo.