Skip to main content

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

Watch the Freq Demo

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.1.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freq_cli-0.1.1-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file freq_cli-0.1.1.tar.gz.

File metadata

  • Download URL: freq_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for freq_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 feab6db40e4f1126f182b31ee6763f3d6bb162416164836dc70e32139d4893b1
MD5 bb76b7bf09752853baae92864234235c
BLAKE2b-256 d6ff63d019fc41333e6ea35b96937c381d5cbf3b81e4ecdd9958f33b4a8918b8

See more details on using hashes here.

File details

Details for the file freq_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: freq_cli-0.1.1-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

Hashes for freq_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 000ec5b2d5599ad9966286019ca15a11db54e6cd7e7221391893c21a53ec0db1
MD5 103b337bd17d445ff931c7151fb879bd
BLAKE2b-256 38b5aae671555034ed8f2273aa467ee643652c115db9e207ecd1c4a401950a14

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page