Nyx
Private terminal messenger on Nostr over Tor.
About
Nyx is a private, decentralized terminal messenger built on the Nostr protocol. All traffic is routed through Tor, making it resistant to censorship and surveillance. It features end-to-end encrypted messaging, file transfer, and full Persian/Arabic text support.
Features
- Nostr protocol - Decentralized social protocol with no central servers
- Tor integration - All traffic routed through Tor for anonymity
- End-to-end encryption - NIP-44 v2 encrypted direct messages (NIP-17 gift wrap)
- File transfer - Send and receive files over Blossom protocol with AES-GCM encryption
- Persian/Arabic support - Full BiDi text rendering and Arabic letter shaping
- Multiple themes - 6 built-in color themes (Midnight, Aurora, Sakura, Matrix, Sunset, Forest)
- Bridge support - Auto-fetch obfs4 bridges for censored regions
- Pure Python - No native dependencies, works on Windows/Linux/macOS
- Lightweight - Minimal resource usage, runs in any terminal
Install
pip install nyxchat
Run
nyx
First run auto-installs a local Tor and any missing Python deps.
Keys
| Key | Action |
|---|---|
| Up/Down | switch chat |
| Enter | send message (or save last file in chat) |
| Ctrl+N | add contact (npub / hex / @alias / user@domain) |
| Ctrl+E | your display name |
| Ctrl+U | your NIP-05 username |
| Ctrl+F | send a file |
| Ctrl+D | download last file in current chat |
| F2 | change theme |
| PgUp/PgDn | scroll |
| Esc/Ctrl+C | quit |
How It Works
- Identity - Generates or imports a Nostr keypair (nsec/npub)
- Tor - Launches a private Tor process with obfs4 bridges for censorship resistance
- Relays - Connects to Nostr relays over Tor via WebSocket
- Messaging - Sends and receives NIP-17 gift-wrapped, NIP-44 encrypted messages
- Files - Encrypts files with AES-GCM, uploads to Blossom servers over Tor
Config
~/.nyx/key your nsec (chmod 600)
~/.nyx/profile.json display name, username
~/.nyx/contacts.json contact list
~/.nyx/tor/ private Tor datadir
~/.nyx/bin/tor private Tor binary
Override with env NYX_HOME=/some/path.
Topics
nostr tor messenger privacy encryption terminal tui chat decentralized censorship-resistance obfs4 bridges persian arabic bidi
License
MIT
Metadata
Release files for nyxchat 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nyxchat-0.3.2.tar.gz | 37.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nyxchat-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 74.1 kB
Release files / nyxchat-0.3.2.tar.gz
| Download URL | nyxchat-0.3.2.tar.gz |
|---|---|
| Size | 37.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
041995ee590dd9d7abffb41feda2d7ef8ffce08b53a6b2dca9194d02930d551f
|
|
BLAKE2b-256 checksum How to use checksums |
ccfb305cf75824c9f10e2a2af5f5bf32b6df61fa4ecf4c06babe81e26c4729db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / nyxchat-0.3.2-py3-none-any.whl
| Download URL | nyxchat-0.3.2-py3-none-any.whl |
|---|---|
| Size | 37.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
55ebc60de953c4bb7007eb6b685c1c8dc94216269783688393794c5dc845c38b
|
|
BLAKE2b-256 checksum How to use checksums |
bed645dca7e3714e68455b4aeccd95dc1b869bbc4dadd8273fa88b5033858c2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|