Qchat uses a very simple protocol to send information between the client and server. The protocol consists of a keyword followed by an ampersand and then the information. Some of the keywords require a second piece of information, this is accomplished by adding another ampersand and the information. The protocol is also different between two servers and between a server an a client. The following table describes the entire protocol.
| Keyword | Data Path | Data | Example |
| TEXT | Server -> Server | Text messages | TEXT&mendolf says: hi there. |
| - | Client -> Server | - | TEXT&test says: this is a test. |
| - | Server -> Client | - | TEXT&I am sending text. |
| GO | Client -> Server | Channel name | GO&os2 |
| - | Server -> Client | - | GO&test |
| ADDCHANNEL | Client -> Server | Channel name | ADDCHANNEL&os2 |
| - | Server -> Client | - | ADDCHANNEL&test |
| - | Server -> Client | Channel name and # of users | ADDCHANNEL&test&10 |
| FILTER | Client -> Server | Username. | FILTER&mendolf |
| - | Server -> Client | - | FILTER&testing |
| UNFILTER | Client -> Server | Username | FILTER&mendolf |
| - | Server -> Client | - | FILTER&testing |
| STATUS | Client -> Server | None. | STATUS& |
| ADDUSER | Server -> Client | Username. | ADDUSER&mendolf |
| - | Server -> Server | Username and channel. | ADDUSER&mendolf&os2 |
| REMOVEUSER | Server -> Client | Username. | REMOVEUSER&mendolf |
| - | Server -> Server | - | REMOVEUSER&testing |
| REMOVECHANNEL | Server -> Client | Channel name. | REMOVECHANNEL&os2 |