Skip to main content

A terminal-based encrypted chat system for LAN and remote connections

Project description

ChaTerminal

ChaTerminal is a cross-platform terminal-based encrypted chat system built with Python. It supports multiple users on a local network or via tunneling tools like Ngrok or LocalXpose, providing a lightweight and interactive chat experience — right from the terminal.

Python License Platform

Features

  • Encrypted communication using custom crypto utilities
  • Multi-user chat over LAN or tunneled internet
  • Color-coded messages with timestamp formatting
  • Auto-complete for commands via readline and TAB
  • Direct messaging using /dm <user> <message>
  • Username renaming with /rename <new_name>
  • List online users using /list
  • Admin controls: /kick <user> (admin-only)
  • Emote support: /me <action>
  • Help menu: /help displays command reference
  • User join/leave notifications
  • Sound alert for DMs and admin actions
  • Graceful client disconnect and server feedback
  • Color personalization based on username hash

Getting Started

Requirements

  • Python 3.9+
  • pip packages: colorama, pyfiglet, readline (Linux/macOS), pyreadline3 (Windows)

Installation

pip install ChaTerminal

Running the Server

python -m ChaTerminal init server
  • Enter a port (e.g., 5555) and the admin username
  • Displays local IP with instructions for LAN or tunneled access

Running the Client

In a new terminal window:

python -m ChaTerminal init client
  • Enter the server IP, port, and a unique username

Commands

Command Description
/dm <user> <msg> Send a private message
/kick <user> Kick a user (admin only)
/list View online users
/rename <name> Change your username
/me <action> Send an action/emote (e.g., waves)
/help Show all available commands

Networking Tips

To let others join:

  • Local network: Share the IP and port printed on server start
  • Ngrok: ngrok tcp <port>
  • LocalXpose: ./lx tcp <port>
  • Port Forwarding: Map the server's port on your router

Example

# Start server
$ python -m ChaTerminal init server
Port: 5555
Admin Username: admin

# Start client
$ python -m ChaTerminal init client
Server IP: 192.168.1.100
Server Port: 5555
Username: myname

Security Note

All messages are encrypted using the crypto_utils module before transmission. Ensure that this module uses secure encryption practices for production deployments.

License

This project is licensed under the MIT License. See LICENSE for more info.

Author

Gofaone Tlalang
GitHub: @Gofaone315

Contributors ✨

Thanks goes to these wonderful people:


ChaTerminal – Real-time encrypted chat, right from your terminal.

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

chaterminal-1.0.2.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

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

chaterminal-1.0.2-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file chaterminal-1.0.2.tar.gz.

File metadata

  • Download URL: chaterminal-1.0.2.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for chaterminal-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b4e1cc2c05e98c54aa9a10efd0afa9241605e25ddb10e4d67e8aa0bce82e1b5f
MD5 f1ab1ec460bef6693dc92f653c28cf50
BLAKE2b-256 4a3e3e6760ed2ba874ef47475be14f36dcbdcbe028764372c8ca1df97c45834c

See more details on using hashes here.

File details

Details for the file chaterminal-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: chaterminal-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for chaterminal-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1dadc27eb247a3e54937c3ab83ca8189c4bdb6f3e362009f68566445692cf68a
MD5 68c87698b35a204b252a4aa26ffb4a93
BLAKE2b-256 9d76c1d0e100d5c1ce9d2f29284ca99e6d8521918a00ccd561d4dc2dd8b7e42f

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