Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



15 Commits

Repository files navigation

gobol (گوبول)

A simple console based, cross-platform chat application. gobol is a compound of Go (the language) and bol/(بول) - the Urdu word for "talk", pronounced 'bole'.


You need to have Go installed and properly set up to build from source. Type:

>> go get

And the executable should appear in your workspace's bin directory. You can then add it to your PATH for convenience.


Start the application by typing:

>> gobol.exe -u "AlphanumericUsername" -p PORT_NUMBER

You can send messages to all added users by typing the message and hitting enter.

gobol has a built-in command interface. All commands are preceded by \\.

To add a user:


Where HOST is IP (IPv4 or IPv6) address of the target user, and PORT is the port number their instance of gobol is listening on. Multiple users can be added and any messages typed will be sent to all added users. The user for any incoming message is automatically added to chat participants. So if you, A, add B and send a message, B will automatically add you to their list.

Similarly, to remove a user:

\\ remove USERNAME

Note, this does not prevent the user from sending you messages. It only prevents your messages from being transmitted to the user.

To block a user, type any one of:

\\ block user USERNAME
\\ block ip IP_ADDRESS
\\ block port PORT_NUMBER

To unblock, replace block with unblock. Blocked users cannot send you messages. Nor can you message a blocked user (except for targeted messages). A blocked user does not know if it's blocked.

To send a targeted message:

@USERNAME @OTHERUSERNAME Hey, this is a targeted message.

Targeted messages are only seen by the users they are addressed to. The messages appear with the @USERNAME part so recipients know it is a targeted message.

To get a list of all users added to chat session:

\\ list

To quit, press Ctrl+Q.

Under the hood

gobol control flow


gobol is my first Go project. I started working on it midway through A Tour of Go. I find that having an idea to work on, instead of ploughing through "Hello World" examples, provides motivation to further learn a language. Especially if you are familiar with other languages.


Portable command-line chat application







No releases published


No packages published