Skip to main content

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

  1. When you first launch the client, you'll see a login screen
  2. Choose "Register" to create a new account
  3. Enter a unique username and password
  4. 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
  • /quit or /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:

  1. You have internet connectivity
  2. The server URL in config is correct
  3. 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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

terminal_chat_client-1.0.0.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

terminal_chat_client-1.0.0-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

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

Hashes for terminal_chat_client-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5b00049bdfdee46f09920f01adb7a7643d69158a62a96ba44999eafa11106dfa
MD5 a231f36aa1d9ba987ed9957e01cb8ddc
BLAKE2b-256 c9cca4cd4ec9719bc63513b6dba4722dccedc4aa7c6046364284c665eb3fac63

See more details on using hashes here.

File details

Details for the file terminal_chat_client-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for terminal_chat_client-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7435b8665f9d2af0739f19c3e5cf7d52884019e7f556c1d430dbed6cf4540cf1
MD5 4c7a11ab2472a713863a6d4ced75c19d
BLAKE2b-256 c9662830b67e661d8a81ffb96395f4b6ac69729a37ef6ea16319802a536ec84e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page