freq
Secure, stateless TUI chat and voice. Drop into a frequency and broadcast. Zero logs, zero identity, end-to-end encrypted.
Fullscreen and unmute for better experience
This is between two different devices on different Operating Systems and different terminals
Install
pip install freq-cli
Usage
freq
Inside the app:
| Command | Action | Example |
|---|---|---|
/tune <frequency> |
Join a frequency | /tune 104.5 or /tune flavortown |
/nick <name> |
Set your display name | /nick flavorpheus |
/leave |
Disconnect | /leave |
Ctrl+R |
Toggle audio streaming | Press Ctrl+R to start/stop |
| (Type anything else) | Send an encrypted message | Hello! |
How it works
- You type a frequency. The client uses Argon2id to derive a 32-byte AES key from that string.
- The client connects to the relay server and joins a room identified by the SHA-256 hash of the AES key. The server never sees the frequency or the key.
- All messages and audio are encrypted with AES-256-GCM before leaving your machine.
- Audio uses real-time streaming — each ~100ms chunk is encrypted and sent individually. Multiple voices are mixed with numpy for overlapping audio.
- The server is a stateless blind relay. It broadcasts encrypted blobs to the room and stores nothing.
Security
| Layer | Implementation |
|---|---|
| Key derivation | Argon2id (64 MiB, 3 iterations) |
| Encryption | AES-256-GCM with random 12-byte nonce |
| Room identity | SHA-256 of AES key (server never sees frequency) |
| Transport | WSS (TLS) to relay server |
| Identity | None. No accounts, no keys on disk, no persistent state. |
Requirements
- Python 3.10+
- A microphone (for audio streaming)
- A terminal that supports 256 colors
Metadata
Release files for freq-cli 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| freq_cli-0.1.4.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| freq_cli-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.4 kB
Release files / freq_cli-0.1.4.tar.gz
| Download URL | freq_cli-0.1.4.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19896304cef5f62446136805aa58d4d727aca0147f2e84a509bc2b59a125946f
|
|
BLAKE2b-256 checksum How to use checksums |
d714ba17e1894ff863d62d36519025c4e0f89a624f86c7b3657a31c3525165d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / freq_cli-0.1.4-py3-none-any.whl
| Download URL | freq_cli-0.1.4-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3aa9ceb44bf9d2160b57328aa7790f68cb38f45a594d39d58ccdd713eb4cf157
|
|
BLAKE2b-256 checksum How to use checksums |
56e8e5b0660f5083933b214eaaf8eb7b060eed357a65c3f9e7983b640acbd515
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|