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.11
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.11.tar.gz | 38.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nyxchat-0.3.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 76.3 kB
Release files / nyxchat-0.3.11.tar.gz
| Download URL | nyxchat-0.3.11.tar.gz |
|---|---|
| Size | 38.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
57cc637cb63c1aedf9b2ec011e68094359d4b42b4acdb99ce5ab9ca7f0de7535
|
|
BLAKE2b-256 checksum How to use checksums |
a49828bd999409b3ae44800a2ef9c77f1447c664f6f02b3789e8eae25367904c
|
| 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.11-py3-none-any.whl
| Download URL | nyxchat-0.3.11-py3-none-any.whl |
|---|---|
| Size | 38.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
edb3381a86e151fdb17dce2e99c09d13030236efa408b4a261c6667080859396
|
|
BLAKE2b-256 checksum How to use checksums |
67ff1986654870fe3be4424c917e02365105a57f869a7dfa4f4cf6f050c03563
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|