mirror of
https://github.com/kyledickey/chatterm.git
synced 2026-10-31 12:05:33 +00:00
A Twitch.tv chat client in the terminal, supporting moderator actions
- Go 99.4%
- HTML 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/ISSUE_TEMPLATE | ||
| db | ||
| models | ||
| twitch | ||
| types | ||
| utils | ||
| .gitignore | ||
| channel_input.png | ||
| chat_view.png | ||
| go.mod | ||
| go.sum | ||
| info_view.png | ||
| LICENSE | ||
| main.go | ||
| README.md | ||
Chatterm
Twitch chat in the terminal, with moderator actions.
⚡ 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):
git clone https://github.com/zigzter/chatterm.gitcd chattermgo build --tags "fts5" ../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 searchfrom:usernamerestricts search to messages sent by that userchannel:channelNamerestricts search to messages in that channel- Supports wildcards and is case insensitive:
kek*will findKEKW - Supports
AND,NOT, andORkeywords./search tf2 OR ow2will 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.jsonfile to add/remove users under thewatched-userskey


