A Twitch.tv chat client in the terminal, supporting moderator actions
  • Go 99.4%
  • HTML 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2024-08-11 15:26:03 -07:00
.github/ISSUE_TEMPLATE Update issue templates 2024-08-04 09:52:22 -07:00
db Add ability to warn users, userid > username conv 2024-08-06 15:20:55 -07:00
models Add ability to warn users, userid > username conv 2024-08-06 15:20:55 -07:00
twitch Add announcement command 2024-08-11 15:26:03 -07:00
types Add announcement command 2024-08-11 15:26:03 -07:00
utils Fix default first chatter color 2024-08-03 20:12:46 -07:00
.gitignore Added sqlite3, storing username to id conversion 2024-01-05 23:33:37 -08:00
channel_input.png New line adjustments, new images in readme 2024-01-19 14:47:18 -08:00
chat_view.png New line adjustments, new images in readme 2024-01-19 14:47:18 -08:00
go.mod Replace config path setup with XDG compliance 2024-03-21 17:22:19 -07:00
go.sum Replace config path setup with XDG compliance 2024-03-21 17:22:19 -07:00
info_view.png New line adjustments, new images in readme 2024-01-19 14:47:18 -08:00
LICENSE Project init, Cobra install 2023-09-15 23:04:03 -07:00
main.go Fix backwards assertions 2024-07-29 22:32:41 -07:00
README.md Add announcement command 2024-08-11 15:26:03 -07:00

Chatterm

Twitch chat in the terminal, with moderator actions.

Chat app preview image

Chat app preview image

Chat app channel input image

⚡ Features

  • View and send messages.
  • Built-in authentication via Twitch.
  • Ban & timeout users, clear chat, query user info
  • Search received messsages, powered by the FTS5 extension of SQLite
  • Username autocomplete on @ mentions and / commands, triggered by pressing tab.

🔧 Tech Used

  • Bubble Tea for the terminal UI
  • Gorilla WebSocket for the websocket connection
  • SQLite for storage
  • Viper for configuration

🖥️ Supported Platforms

Currently only tested on Linux. macOS might work if you build it yourself.

📦 Installation

Cloning option (requires Go):

  1. git clone https://github.com/zigzter/chatterm.git
  2. cd chatterm
  3. go build --tags "fts5" .
  4. ./chatterm

If you have to re-auth for whatever reason, and the oauth request gets stuck loading, try removing the connection from Twitch Connections, then retry the auth.

Downloading binary option: Simply download the binary and run ./chatterm

🚀 Supported Commands

  • Ban a user: /ban username
  • Timeout a user: /ban username timeInSeconds
  • Search for messages: /search something to search
    • from:username restricts search to messages sent by that user
    • channel:channelName restricts search to messages in that channel
    • Supports wildcards and is case insensitive: kek* will find KEKW
    • Supports AND, NOT, and OR keywords. /search tf2 OR ow2 will find all messages that contain at least one of those
    • This search queries the local DB, so it will only find messages that you've received while in the chat rooms
  • Clear chat: /clear (this is the moderator clear, not a local one)
  • Get a user's info: /info username
  • Send an announcement: /announcement something to announce
  • Give a streamer a shoutout: /shoutout username (untested, only works if the channel you're in is live)
  • Warn a user, requiring them to acknowledge the warning before they can resume chatting: /warn username reason
  • Delete all locally stored chat messages: /clearall
  • Enable/disable shield mode: /shield on|off
  • Watch a user (highlight their messages): /watch username
    • To remove the user, re-run the command
    • You can also manually edit the $HOME/.config/chatterm.json file to add/remove users under the watched-users key