Home

Awesome

<p align="center"> <img src="https://docs.google.com/drawings/d/e/2PACX-1vTCUOY5x1FQ-zWJdagKPLVWLTWDO3QCg9brYPOHZ6qqK6LndPTDM3sfp0599w1F4VatZfLITTZM33JW/pub?w=712&h=164"/> </p>

A distributed LAN chat application in the terminal (without needing a server!). Run the application in your terminal and write into the LAN!

Built on top of tui-rs to create the terminal UI and message-io to make the network connections.

Installation

You can use the cargo package manager in order to install it.

$ cargo install termchat --all-features

If you have ~/.cargo/bin in your PATH (or similar in your OS), you will be able to use termchat everywhere in your computer!

Also, you can download the last release for your machine from the releases.

Arch Linux

termchat can be installed from available AUR packages using an AUR helper. For example,

$ yay -S termchat

If you prefer, you can clone the AUR packages and then compile them with makepkg. For example,

$ git clone https://aur.archlinux.org/termchat.git && cd termchat && makepkg -si

How it works?

To not saturate the network, termchat uses only one multicast message at startup to find other termchat applications on the network. Once a new application has been found by multicast, a TCP connection is created between them.

Usage

Simply write:

$ termchat

to open the application in your terminal.

By default, your computer user name is used. You can use a different username with -u <name>

You can modify the multicast discovery address with -d <address>

You can set a custom tcp sever port with -t <port>

(see the application help for more info --help).

Commands

Termchat treats messages containings the following commands in a special way:

Config

Termchat store its configuration in a simple file located at $ConfigDir/termchat/config in Mac or Linux, or %USERPROFILE%\AppData\Roaming\termchat\config if using Windows.

Default config:

discovery_addr = "238.255.0.1:5877"
tcp_server_port = 0
user_name = "my_awesome_user_name"
terminal_bell = true

[theme]
message_colors = ["Blue", "Yellow", "Cyan", "Magenta"]
my_user_color = "Green"
date_color = "DarkGray"
system_info_color = ["Cyan", "LightCyan"]
system_warning_color = ["Yellow", "LightYellow"]
system_error_color = ["Red", "LightRed"]
chat_panel_color = "White"
progress_bar_color = "LightGreen"
command_color = "LightYellow"
input_panel_color = "White"

Frequently Asked Questions

Q: Hosts are not disoverable

A:

Q: Can I silence the terminal bell when I received a message?

A: Yeah! You can run termchat passing the flag --quiet-mode or simple -q.

Q: I can't see anything on my light themed desktop!!!

A: You can use termchat --theme light, also you can customize colors individually via the config file.