Whisper Chat is a lightweight chat server with a web-based monitoring dashboard. This project is in very early development and is not yet ready for production use.
- Basic real-time chat functionality
- Web dashboard for monitoring connections and activity
- Simple client/server architecture using TCP sockets
- JSON-based message protocol
- Auto-logging of all chat activity
- Command-line client interface
whisper-chat/
├── whisper_chat.py # Main server application (chat server + dashboard)
├── client.py # Command-line client implementation
├── templates/ # Contains HTML templates for the dashboard
│ └── dashboard.html # Dashboard template
├── static/ # Stores static assets like CSS and JavaScript
│ ├── styles.css # Dashboard styling
│ └── dashboard.js # Dashboard interactivity
├── site-data/ # Metadata and icons for web browsers
│ ├── android-chrome-192x192.png # Android Chrome icon (192x192)
│ ├── android-chrome-512x512.png # Android Chrome icon (512x512)
│ ├── apple-touch-icon.png # Apple touch icon for iOS devices
│ ├── favicon.ico # Standard favicon
│ ├── favicon-16x16.png # Small favicon (16x16)
│ ├── favicon-32x32.png # Standard favicon (32x32)
│ ├── icon-144x144.png # Windows tile icon (144x144)
│ └── site.webmanifest # Web app manifest file
└── logs/ # Automatically generated chat logs
- Python 3.6+
- Flask (server only)
-
Clone the repository:
git clone https://github.com/yourusername/whisper-chat.git cd whisper-chat
-
Install dependencies for the server:
pip install flask
python whisper_chat.py
This will:
- Start the chat server on port 9999
- Launch the admin dashboard on port 8080
- Open your web browser to the dashboard
The client is a simple command-line application that connects to the Whisper Chat server:
python client.py
When you run the client:
- Enter your username when prompted
- Chat messages will appear in the terminal
- Type your messages and press Enter to send
- Type 'exit' to disconnect from the server
Example usage:
$ python client.py
Enter your username: Alice
Connecting to chat server...
Connected as Alice. Type 'exit' to quit.
[SYSTEM] Alice has joined the chat
Bob: Hello Alice!
Hello Bob!
[SYSTEM] Charlie has joined the chat
exit
Disconnecting...
The client and server communicate using a simple JSON-based protocol:
{
"type": "connect",
"username": "username"
}
{
"type": "message",
"username": "username",
"content": "message text"
}
{
"type": "disconnect",
"username": "username"
}
{
"type": "system",
"content": "system message text"
}
Future development plans include:
- End-to-end encryption
- User authentication
- Private messaging
- Chat rooms/channels
- File sharing
- Mobile client applications
- GUI client application
As this project is in early development, please reach out before submitting pull requests. All contributions are welcome!
This project is open-source and available under the GPL-3.0 License
This software is provided "as is" without warranty of any kind. Use at your own risk.