A secure end-to-end encrypted terminal-based chat client
Project description
Terminal Chat Client
A secure, end-to-end encrypted terminal-based chat application with a beautiful UI.
Features
- End-to-end encryption (E2EE) using Fernet symmetric encryption
- Real-time messaging via WebSockets
- Beautiful terminal UI powered by Textual
- Auto-reconnection with exponential backoff
- Message history with scroll-back support
- Cross-platform (Windows, macOS, Linux)
- System notifications for new messages
Installation
Prerequisites
- Python 3.8 or higher
- pip (Python package installer)
Quick Install
pip install terminal-chat-client
Alternative: Install from Wheel File
If you received a .whl file:
pip install terminal_chat_client-1.0.0-py3-none-any.whl
Alternative: Install from GitHub
pip install git+https://github.com/yourusername/terminal-chat.git
Usage
Starting the Client
Simply run:
terminal-chat
First Time Setup
- When you first launch the client, you'll see a login screen
- Choose "Register" to create a new account
- Enter a unique username and password
- After registration, you'll be automatically logged in
Chatting
- Type your message in the input field at the bottom
- Press Enter to send
- Messages are automatically encrypted before sending
- You'll see messages from other users in real-time
Commands
The client supports the following slash commands:
/help- Show available commands/quitor/exit- Exit the application/clear- Clear the message history from screen/config- Show current configuration
Configuration
The client stores configuration in ~/.terminal-chat/config.json. You can customize:
{
"server_url": "https://terminal-chat.fuadmuhammed.com",
"auto_reconnect": true,
"reconnect_delay": 1,
"max_reconnect_delay": 60,
"notification_sound": true,
"message_history_limit": 50
}
You can also override the server URL using environment variable:
export CHAT_SERVER_URL=https://terminal-chat.fuadmuhammed.com
terminal-chat
Or using command-line argument:
terminal-chat --server https://terminal-chat.fuadmuhammed.com
Encryption Keys
Your encryption key is automatically generated on first run and stored at:
~/.terminal-chat/encryption.key
IMPORTANT: Keep this file safe! If you lose it, you won't be able to decrypt old messages.
Platform-Specific Notes
Windows
On Windows, install Python from python.org, then:
pip install terminal-chat-client
terminal-chat
Linux
Most Linux distributions come with Python pre-installed:
pip install terminal-chat-client
terminal-chat
If pip is not found, install it first:
# Ubuntu/Debian
sudo apt install python3-pip
# Fedora
sudo dnf install python3-pip
# Arch
sudo pacman -S python-pip
macOS
Python 3 should be pre-installed. If not, install via Homebrew:
brew install python3
pip3 install terminal-chat-client
terminal-chat
Troubleshooting
Cannot connect to server
Check that:
- You have internet connectivity
- The server URL in config is correct
- Firewall is not blocking the connection
Command not found: terminal-chat
If you get "command not found" after installation:
# Add Python scripts to PATH (Linux/Mac)
export PATH="$HOME/.local/bin:$PATH"
# Or use python -m instead
python -m client.main
On Windows, make sure Python Scripts folder is in your PATH.
Python version issues
Check your Python version:
python --version
# or
python3 --version
Make sure it's 3.8 or higher. If you have multiple Python versions, use:
python3.8 -m pip install terminal-chat-client
python3.8 -m client.main
Uninstallation
pip uninstall terminal-chat-client
To remove all data:
rm -rf ~/.terminal-chat
Support
For issues or questions:
- Check the main README
- Contact the server administrator
- Report bugs at: https://github.com/yourusername/terminal-chat/issues
Security
- All messages are encrypted end-to-end
- The server cannot read your messages
- Your password is hashed with bcrypt
- Always use HTTPS/WSS in production
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file terminal_chat_client-1.0.0.tar.gz.
File metadata
- Download URL: terminal_chat_client-1.0.0.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b00049bdfdee46f09920f01adb7a7643d69158a62a96ba44999eafa11106dfa
|
|
| MD5 |
a231f36aa1d9ba987ed9957e01cb8ddc
|
|
| BLAKE2b-256 |
c9cca4cd4ec9719bc63513b6dba4722dccedc4aa7c6046364284c665eb3fac63
|
File details
Details for the file terminal_chat_client-1.0.0-py3-none-any.whl.
File metadata
- Download URL: terminal_chat_client-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7435b8665f9d2af0739f19c3e5cf7d52884019e7f556c1d430dbed6cf4540cf1
|
|
| MD5 |
4c7a11ab2472a713863a6d4ced75c19d
|
|
| BLAKE2b-256 |
c9662830b67e661d8a81ffb96395f4b6ac69729a37ef6ea16319802a536ec84e
|