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
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,
If you prefer, you can clone the AUR packages and then compile them with makepkg. For example,
&& &&
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:
-
?send <$path_to_file>
: sends the specified file to everyone on the network, example:?send ./myfile
Note: The received files can be found in
/tmp/termchat/<termchat-username>/<file_name>
Frequently Asked Questions
Q: Hosts are not disoverable
A:
-
Make sure that no firewall is running (example: ufw), and if that's the case either stop it or add termchat ports to the white list.
-
By default you need to allow port
5877/udp
andport X/tcp
,X
is a different with each run. Note that you can specify a custom tcp port as mentioned above and add it to the firewall whitelist.