Skip to main content

Nyx

Private terminal messenger on Nostr over Tor.

PyPI Python License

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

  1. Identity - Generates or imports a Nostr keypair (nsec/npub)
  2. Tor - Launches a private Tor process with obfs4 bridges for censorship resistance
  3. Relays - Connects to Nostr relays over Tor via WebSocket
  4. Messaging - Sends and receives NIP-17 gift-wrapped, NIP-44 encrypted messages
  5. 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)

Source distribution for nyxchat 0.3.2
File Size Uploaded
nyxchat-0.3.2.tar.gz 37.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nyxchat 0.3.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.3.10

1 release file

This release

0.3.2 This release

2 release files

0.3.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page