Private messaging on the Lux Network - A fork of Session Desktop
Lux Messenger is a privacy-focused messaging application built on the Lux Network, leveraging post-quantum cryptography and decentralized storage nodes. This fork connects to the Lux SessionVM instead of the Oxen network.
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Lux Messenger │ │ luxfi/session │ │ luxcpp/session │
│ (Desktop) │────>│ Go VM + API │────>│ C++ Storage │
│ TypeScript/ │ │ │ │ (GPU-accel) │
│ Electron │ │ Post-Quantum │ │ │
└──────────────────┘ │ Crypto (FIPS) │ │ ML-KEM-768 │
└──────────────────┘ │ ML-DSA-65 │
└──────────────────┘
Copy the example configuration:
cp .env.lux .envOr set environment variables directly:
# Point to your Lux seed node
export LOCAL_DEVNET_SEED_URL=http://localhost:22023/
# Optional: custom file server
export LUX_FILE_SERVER=files.lux.networknpm installnpm run devnpm run build| Variable | Description | Default |
|---|---|---|
LOCAL_DEVNET_SEED_URL |
Seed node URL for custom network | (none - uses Session mainnet) |
LUX_FILE_SERVER |
File server hostname | filev2.getsession.org |
LUX_NETWORK_SERVER |
Network status server | networkv1.getsession.org |
NODE_APP_INSTANCE |
testnet for testnet mode |
(production) |
SESSION_DEBUG |
Enable debug logging | (disabled) |
- Start the Lux SessionVM node:
cd ~/work/lux/session
go run ./cmd/node- Configure desktop to connect:
export LOCAL_DEVNET_SEED_URL=http://localhost:22023/
npm run dev| Repository | Description |
|---|---|
| luxfi/session | Go implementation - VM + API layer |
| luxcpp/session | C++ storage server (GPU-accelerated) |
| luxfi/crypto | Post-quantum cryptography (ML-KEM, ML-DSA) |
| lux-tel/session-ios | iOS mobile client |
| lux-tel/session-android | Android mobile client |
| lux-tel/libsession-util | Shared native library |
Lux Messenger uses FIPS-compliant post-quantum cryptography:
- ML-KEM-768 (FIPS 203) - Key encapsulation mechanism
- ML-DSA-65 (FIPS 204) - Digital signatures
- XChaCha20-Poly1305 - Symmetric encryption (AEAD)
- Blake2b-256 - Session ID derivation
Session ID format: 07 + hex(Blake2b-256(KEM_pk || DSA_pk)) = 66 characters
| Feature | Session | Lux Messenger |
|---|---|---|
| Network | Oxen Service Nodes | Lux SessionVM |
| Cryptography | X25519/Ed25519 | ML-KEM-768/ML-DSA-65 (post-quantum) |
| Storage | Oxen snodes | Lux storage nodes (GPU-accelerated) |
| Configuration | Hardcoded | Environment-configurable |
ts/
├── session/
│ ├── apis/
│ │ ├── seed_node_api/ # Seed node discovery
│ │ ├── snode_api/ # Storage node API
│ │ └── file_server_api/ # File uploads
│ ├── crypto/ # Cryptographic operations
│ └── onions/ # Onion routing
├── state/
│ └── ducks/types/ # Feature flags
└── preload.js # Network configuration
Enable verbose logging for troubleshooting:
export SESSION_DEBUG=1
export SESSION_DEBUG_SWARM_POLLING=1
export SESSION_DEBUG_SNODE_POOL=1
npm run dev- Fork this repository
- Create a feature branch
- Make your changes
- Submit a pull request
GPL-3.0 - Same as upstream Session Desktop
This project is a fork of Session Desktop by the Session Technology Foundation.