SocketChat is a tool that allows you to chat with other devices on your LAN. Furthermore, it is supported with an auto-discovery system that discovers other devices running SocketChat in your LAN.
Python
4
2 commits
updated Sep 29, 2026
SocketChat is a tool that allows you to chat with other devices on your LAN. Furthermore, it is supported with an auto-discovery system that discovers other devices running SocketChat in your LAN.
Why I build SocketChat . Key Features . Installation & Quick start . How SocketChat works
https://github.com/user-attachments/assets/a204c379-d788-48ad-9f43-95625f036d8c
Communicating with computers in the same network as you doesn't require the public internet. Why do chatting tool require you to do all that unrelated stuff when all you want to do is send a message to the computer on another floor or somewhere else on the same network? It would be silly to try to send a message to a computer if you can't reach it over the public internet, right?
So I created SocketChat to help with this. You can start it with the command schat.
To discover/connect with nearby devices on your LAN, type /auto, or to connect directly toa specific device,
type /ip <the device's IP>. Both methods use end-to-end encryption.
The tool runs a listener in the background, allowing you to see if other devices are running discovery mode in SocketChat in your LAN,
and you can choose to connect to or ignore them.
/auto, or connect directly via /ip 192.168.x.x in case broadcasts are disabled.[!TIP] Quick Start: Install SocketChat via Docker to start using it easily.
1. Get the installer
curl -fsSL https://raw.githubusercontent.com/ALHANSHIM/SocketChat/main/installer.sh -o installer.sh
[!NOTE]
installer.shjust checks docker, pulls the image if you don't have it, and installs theschat-dockercommand.
2. Run it, then start chatting
bash installer.sh
schat-docker
1. Clone the repo
git clone https://github.com/ALHANSHIM/SocketChat.git
cd SocketChat
2. Install requirements & command
pip install -e .
That's it. From anywhere just type:
schat
[!NOTE] if pip complains on Linux with an
externally-managed-environmenterror, just use a venv and run the install again:
python3 -m venv myvenv
source myvenv/bin/activate
pip install -r requirements.txt
pip install -e .
The SocketChat application begins at the top level with only one starting point, which forks straight away. That is, the welcome page is displayed where the user interaction takes place alone while auto listening process goes in the background. You can follow either one of the two paths from the welcome page, namely auto discovering connection or IP connection; therefore, your choice forms the fork in the flow. The user interaction comes to an end right after that fork as both paths will be following the next stages independently, including key exchange, and reach the chatting page, which is the last point in the flow.
Auto Discovery consists of only two components, which are packet sender and listener. The packet sender continually sends broadcast packets on the entire LAN network until the listener gets some response. In case when the listener receives a broadcast packet, it asks the packet sender to respond to this particular device using unicast packets. Then when the listener receives a unicast packet, it establishes the connection with the particular device in the role of TCP client.
Python
96.0%
Shell
4.0%
SocketChat is a tool that allows you to chat with other devices on your LAN. Furthermore, it is supported with an auto-discovery system that discovers other devices running SocketChat in your LAN.
Python
4
2 commits
updated Sep 29, 2026
SocketChat is a tool that allows you to chat with other devices on your LAN. Furthermore, it is supported with an auto-discovery system that discovers other devices running SocketChat in your LAN.
Why I build SocketChat . Key Features . Installation & Quick start . How SocketChat works
https://github.com/user-attachments/assets/a204c379-d788-48ad-9f43-95625f036d8c
Communicating with computers in the same network as you doesn't require the public internet. Why do chatting tool require you to do all that unrelated stuff when all you want to do is send a message to the computer on another floor or somewhere else on the same network? It would be silly to try to send a message to a computer if you can't reach it over the public internet, right?
So I created SocketChat to help with this. You can start it with the command schat.
To discover/connect with nearby devices on your LAN, type /auto, or to connect directly toa specific device,
type /ip <the device's IP>. Both methods use end-to-end encryption.
The tool runs a listener in the background, allowing you to see if other devices are running discovery mode in SocketChat in your LAN,
and you can choose to connect to or ignore them.
/auto, or connect directly via /ip 192.168.x.x in case broadcasts are disabled.[!TIP] Quick Start: Install SocketChat via Docker to start using it easily.
1. Get the installer
curl -fsSL https://raw.githubusercontent.com/ALHANSHIM/SocketChat/main/installer.sh -o installer.sh
[!NOTE]
installer.shjust checks docker, pulls the image if you don't have it, and installs theschat-dockercommand.
2. Run it, then start chatting
bash installer.sh
schat-docker
1. Clone the repo
git clone https://github.com/ALHANSHIM/SocketChat.git
cd SocketChat
2. Install requirements & command
pip install -e .
That's it. From anywhere just type:
schat
[!NOTE] if pip complains on Linux with an
externally-managed-environmenterror, just use a venv and run the install again:
python3 -m venv myvenv
source myvenv/bin/activate
pip install -r requirements.txt
pip install -e .
The SocketChat application begins at the top level with only one starting point, which forks straight away. That is, the welcome page is displayed where the user interaction takes place alone while auto listening process goes in the background. You can follow either one of the two paths from the welcome page, namely auto discovering connection or IP connection; therefore, your choice forms the fork in the flow. The user interaction comes to an end right after that fork as both paths will be following the next stages independently, including key exchange, and reach the chatting page, which is the last point in the flow.
Auto Discovery consists of only two components, which are packet sender and listener. The packet sender continually sends broadcast packets on the entire LAN network until the listener gets some response. In case when the listener receives a broadcast packet, it asks the packet sender to respond to this particular device using unicast packets. Then when the listener receives a unicast packet, it establishes the connection with the particular device in the role of TCP client.
Python
96.0%
Shell
4.0%