Open source · Free for non-commercial use

Your voice,your server.

Halla is a complete voice communication ecosystem — a desktop client for Windows and Linux, a native Android app, and a self-hostable server. Encrypted Opus audio, channels with granular permissions, whisper, 4K screen sharing, and an open, documented protocol. No telemetry, no middlemen, no cost.

Low-latency OpusPer-channel encrypted voiceNo telemetry
Captura de tela do Halla: Janela Principal
A

Admin

speaking now

Live · 1080p60

WebRTC P2P

Ed25519 · verified UID

ChaCha20-Poly1305

Official server online — try it now

Permanent and temporary channels, open to the public, cross-platform access.

Opus voice 20 msChaCha20-Poly1305Ed25519 identityWebRTC 4K/60Open protocol v6WhisperFloating PTTTemporary channelsEd25519 badgesTLS + TOFU pinning3D audio and radio.halla-addon packsOpus voice 20 msChaCha20-Poly1305Ed25519 identityWebRTC 4K/60Open protocol v6WhisperFloating PTTTemporary channelsEd25519 badgesTLS + TOFU pinning3D audio and radio.halla-addon packs
WindowsLinuxAndroid 8.0+Qt 6 · C++17Kotlin + JNISQLite · MySQLDockersystemdPterodactylOptional TURNNon-commercial usept-BR · en · esWindowsLinuxAndroid 8.0+Qt 6 · C++17Kotlin + JNISQLite · MySQLDockersystemdPterodactylOptional TURNNon-commercial usept-BR · en · es
0platforms speaking the same protocol
0 msper Opus voice frame, over UDP
0pof resolution in screen sharing
v0open, documented protocol
0telemetry, ads or mandatory accounts
Ecosystem

One protocol, three projects — from your pocket to the datacenter

Desktop, Mobile and Server speak the same language: the open v6 protocol. Join the same server from your PC or phone, share your screen from either one, and host everything on your own infrastructure.

Halla Desktop

The full client for Windows and Linux, in C++17 with Qt 6. Icons drawn at runtime, instant light/dark theme, and every administration tool a community needs.

myserver.example.com
23 ms · 5/32
Lobby
Game room
AAdmin
Nnina
Pplayer_one
Meetingspassword
Temporary channel…
Push-to-talkWhisperGlobal hotkeysCall overlayWAV recording
GroupHalla/Halla

Halla Mobile

Native Android app (Kotlin + C++/JNI core) — no Qt, no wrapper. Voice with echo cancellation and noise suppression, silent reconnection when switching networks, and a foreground service that survives a locked screen.

Halla · Game room

3 in channel · connected

Floating PTT · over other apps

Floating PTTWi-Fi ↔ cellularMediaProjectionpt · en · es
GroupHalla/Halla-Mobile

Halla Server

Self-hostable server in C++/Qt: TLS on the control channel, pure relay voice — it never decrypts audio. SQLite or MySQL.

terminal

DockersystemdPterodactylOptional TURN
GroupHalla/HallaServer

Open protocol v6

public

The specification is open for anyone to implement compatible clients, bots and tools. The security layer — TLS, Ed25519 and AEAD voice — is mandatory in every version.

TCP + TLS 1.2+

control · JSON

UDP · Opus AEAD

voice · 20 ms

DTLS-SRTP P2P

screen · WebRTC

TLS

ServerQuery

Read the full specification
Features

Built for communities that take voice seriously

Every feature exists to give you total control: over the audio, the permissions and the infrastructure. No paid features, no ads, no mandatory accounts.

Low-latency voice

Opus codec with 20 ms frames, echo cancellation, noise removal, typing attenuation and automatic ducking. Push-to-talk (hotkey or mouse button), voice detection or continuous transmission.

48 kHz · opus · 20 ms

Screen sharing up to 4K/60

WebRTC P2P with DTLS-SRTP and hardware H.264 with VP8 fallback. PC audio captured without echo from the call's voices.

480p720p1080p2K4K30/60 fps
whisper

Whisper

Speak to a single channel, a channel and its subchannels, or a fixed list of users — with its own visual indicator, distinct from the normal speaking indicator.

granular

Channels and permissions

Tree with subchannels, on-demand temporary rooms, password-protected, moderated and linked channels. Groups with granular permissions and talk power.

bbcode

Text chat

Tabs per server and channel, BBCode with bold, italics, colors and links, emojis, offline messages and file transfer.

plugins

Add-ons

.halla-addon packs with a public C ABI shared between Desktop and Mobile: PCM audio hooks, radio effect and v6 data transport.

ed25519

Verifiable badges

Global badges tied to your UID, distributed through a signed Ed25519 registry and kept in cache — they even work offline.

wav · tts

Recording and TTS

Record calls locally to WAV, hear announcements via text-to-speech, and get sound alerts for connections and permissions.

admin

Moderated community

Poke, complaints, ban list, avatars, BBCode descriptions and multiple local identities with audio profiles.

v6

Open protocol

Publicly documented v6 specification for implementing clients, bots and tools. TCP/TLS control with JSON and encrypted UDP voice.

Interface

Clean, classic and straight to the point

The interface follows the tradition of the great voice clients: information-dense, easy to master, with light and dark themes switchable in real time — no restart needed.

Halla screenshot: main window with channel tree, info panel and tabbed chat

The main window in the dark theme: channels, info and chat in one place.

Security first

The server never hears what you say

Halla's security architecture is mandatory for every connection, regardless of protocol version. It is not a premium option — it is the default.

how audio travels

micOpus 20 msChaCha20-Poly1305

serverforwards encrypted without being able to decrypt

youvalidates AEAD tagdecodesspeaker

Ed25519 identity

Every client generates an Ed25519 key pair. Login requires signing a nonce challenge — and the UID is derived from the public key, never from what the client claims to be. Bans, groups and badges are tied to that identity.

Per-channel encrypted voice

Opus audio and transmissions encrypted with ChaCha20-Poly1305 (AEAD) using a 32-byte group key generated by the clients themselves. The server is a pure relay: it only forwards e2e_key envelopes it cannot open.

Key rotation

Whenever a channel's membership changes — someone joins, leaves or is moved — the group key is rotated and redistributed by the clients, sealed with ephemeral X25519. Forward secrecy built into the protocol, with no effort from the user.

TLS with TOFU pinning

The control channel runs over TLS 1.2+. On the first connection the certificate fingerprint is pinned; if it changes later, the client warns about a possible man-in-the-middle — SSH's trust model.

Keys in the OS vault

The private key is never kept in plain text: the Desktop uses Credential Manager, Keychain or Secret Service through QtKeychain; Mobile encrypts it with an AES key from the Android Keystore, with a portable password-protected backup.

Verified updates

Before installing any update, the client checks the SHA-256 checksum and only downloads from a fixed domain. On Mobile, the signed APK goes through apksigner verify before being published.

Open protocol v6

Documented for everyone. Closed to no one.

The full specification is public: anyone can implement compatible clients, bots and tools. The security layer — TLS, Ed25519 and AEAD voice — is mandatory in all versions.

Control

Authentication, channels, chat, states, moderation and WebRTC signaling — JSON messages, one per line, up to 2 MiB.

TCP + TLS 1.2+
9987
Voice

20 ms packets encrypted with ChaCha20-Poly1305 and a per-channel key. The server only relays them.

UDP · Opus AEAD
9987
Screen (modern)

Screen-share video and audio travel directly between clients; offer/answer and ICE go through the TLS control channel.

WebRTC P2P · DTLS-SRTP
dynamic
Screen (legacy)

Sliced, encrypted JPEG frames as an alternative that needs no native WebRTC SDK.

UDP · JPEG
9987
ServerQuery

Remote server administration, disabled by default and bound to localhost when enabled.

TCP + TLS
configurable

Login with proof of possession

C→S

hello

{ proto, uid, nick, idPub }

S→C

identity_challenge

{ nonce }

C→S

identity_proof

{ sig }

S→C

welcome

UID = hash(idPub) ✓

The server ignores the UID sent by the client and recalculates it from the public key. Identity spoofing becomes impractical.

Read the full specification
Changelog

Every release,
on the record

The full history since protocol v6 — the day end-to-end encryption became real. Pick a project and follow along: no hidden launches, no silent changes.

v1.1.24

Latest

Real voice DSP, built into the binary

View release
  • Added

    The official installer now ships a full voice DSP: RNNoise neural noise suppression, AUMDF acoustic echo cancellation and an 80 Hz high-pass filter — clean audio with no WebRTC SDK required.

  • Fixed

    In the distributed build, the noise-suppression and echo-cancellation checkboxes were previously no-ops (passthrough). Both now process every captured frame.

  • Fixed

    The speech cue (beep when your voice starts) now respects a muted microphone in both continuous and voice-activity modes.

  • Security

    CI now gates every release on measured echo cancellation (ERLE ≥ 12 dB) and noise suppression (≥ 10 dB) over synthetic signals.

v1.1.23

Whisper cue in voice-activity mode

View release
  • Fixed

    The whisper sound cue now plays the instant the whisper key or mouse button is pressed while in voice-activity mode — previously it only played in push-to-talk.

v1.1.22

Crosstalk guard

View release
  • Fixed

    The speaking indicator no longer lights up on two users at once: your microphone no longer retransmits the other party's voice, and the ring shows who is actually talking.

v1.1.21

Clean voice

View release
  • Fixed

    End of the crackling on voice activity: the transmission gate now uses audio hysteresis with attack and release ramps, so weak consonants between vowels no longer cut the stream.

  • Added

    Microphone boost up to +30 dB for quiet microphones, plus per-user volume from −60 to +30 dB, persisted across restarts.

  • Fixed

    Sent E2EE whispers and private messages are now readable to the sender: your own messages echo back decrypted with the recipient's key.

  • Security

    E2EE keys are now trusted automatically on first use (TOFU, like SSH) — the manual verification step is gone; identity changes still trigger an alert.

v1.1.20

Real-time voice DSP and lighter calls

View release
  • Added

    AEC3 echo cancellation and neural (RNN) noise suppression through the WebRTC Audio Processing Module, replacing the previous no-op passthrough.

  • Added

    Speech cue: a subtle beep confirms your voice is being detected, independent of the transmission state.

  • Performance

    Calls stop crackling and the app gets lighter on CPU and memory while someone is transmitting.

  • Changed

    Screen sharing defaults to 1080p (2K and 4K remain available) with the H.264 encoder on by default.

v1.1.19

Instant PTT and whisper

View release
  • Fixed

    Push-to-talk key and whisper list changes now apply immediately — no more reconnecting or reopening the options dialog for them to take effect.

  • Added

    Whisper reply hotkey: answer the last person who whispered to you with a single key.

v1.1.18

Protocol v6

Protocol v6: real end-to-end encryption

View release
  • Protocol

    Protocol v6: group keys are generated and distributed by the clients themselves — ephemeral X25519 + HKDF-SHA256 + AES-256-GCM. The server became an opaque relay: it can no longer decrypt voice, private chat, pokes or offline messages.

  • Security

    Every session publishes an X25519 key signed by your Ed25519 identity and validated during login — a malicious server can no longer substitute keys.

  • Security

    Private chat, pokes and offline messages are now pairwise-encrypted end-to-end between sender and recipient.

  • Security

    The crypto core is implemented through RFC 8410 without NIDs and is verified in CI against the official RFC 7748 (X25519) and NIST AES-256-GCM test vectors.

Showing releases since the protocol v6 rollout · September 2026

Full release history on GitHub
Download

Start talking in minutes

Free for personal, educational and community use: use, study, modify and redistribute without asking permission. Selling it or embedding it in a commercial product requires written authorization from the maintainers.

Halla Desktop

Windows · Linux · C++17 + Qt 6

Download the NSIS installer for Windows — the button always points to the latest published release. On Linux, build from source with CMake. The native WebRTC screen-sharing mode is optional and uses the prebuilt Halla WebRTC Builds SDK.

Build from source

bash — linux / windows
# Linux (installs dependencies if missing)
./build-linux.sh
./build/Halla

# Windows / manual — any platform
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Installers and binaries live in the repository's Releases tab.

CMake >= 3.21Qt 6.2+OpenSSLlibopusQtKeychain
Source code on GitHub
official server · open to the public

Join the official server and share your opinion

Permanent and temporary channels to test low-latency audio, screen sharing and the full ecosystem — from both Desktop and Mobile. Found a bug or have a suggestion? The feedback channel is official and direct.