<Govind/>

TUI Chat

Wednesday, Sep 3, 2025

A tcp chat app made with golang and tview

Client screenshot

Features

  • Client and Server in single binary
  • Responsive Terminal UI
  • TCP based chat
  • Online user list
  • Unique username

Running the app

For Client mode:

./main

For Server mode:

./main server <host_address>

the port is 8080 🤷‍♂️

Connecting to the server

Connection screenshot

Pick a username.
Enter the server address and port.

The server will give a warning if the username is in use.

Notes

The clients all close when the server is closed.

The updation of user list is on the client side is done by sending a message from the server with a list of all the usersnames. This update message is differentiated from regular user messages by checking whether the first sequence of characters is “#srvc:”. If it matches it parses the message and updates the user list.

Users can send messages starting with “#srvc:” to just update the user list section with the text in the message.

TODO

(in no particular order) (probably won’t be done)

  • Add commands to client and server
  • Add admin privilages to users
  • Add different colors to users (Got this idea from the editor autocomplete while writing this)
  • Add different channels

Why

Idk.

I was bored in cs lab and wanted to make a chat app. Made this in 2 days and tweaked it over the next few days.

Github repo is here

Compiled binary is in the releases.