Secure, stateless TUI chat and voice. Drop into a frequency and broadcast.
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
freq_cli-0.1.4.tar.gz
(7.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file freq_cli-0.1.4.tar.gz.
File metadata
- Download URL: freq_cli-0.1.4.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19896304cef5f62446136805aa58d4d727aca0147f2e84a509bc2b59a125946f
|
|
| MD5 |
8d6d75563f6c932826023616471c6edf
|
|
| BLAKE2b-256 |
d714ba17e1894ff863d62d36519025c4e0f89a624f86c7b3657a31c3525165d4
|
File details
Details for the file freq_cli-0.1.4-py3-none-any.whl.
File metadata
- Download URL: freq_cli-0.1.4-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3aa9ceb44bf9d2160b57328aa7790f68cb38f45a594d39d58ccdd713eb4cf157
|
|
| MD5 |
34aba5fb974a1dd624ee490c99b2a292
|
|
| BLAKE2b-256 |
56e8e5b0660f5083933b214eaaf8eb7b060eed357a65c3f9e7983b640acbd515
|