A collection of utilities and tools for Twitch streamers
This project originally includes a Twitch chatbot and some overlays used in my Twitch channel (tinarskii). Inspired by thananon/twitch_tools and lucidkarn/luciabot. The project is written in TypeScript and uses Bun instead of Node.js, many features may be unavailable or not working as expected if you are not using Bun.
The project has a dedicated wiki for guides and documentation. Read more at the ManaoWiki Available in English and Thai. The source code of ManaoWiki is available at tinarskii/manao-wiki
For a more comprehensive list, check the ManaoWiki.
-
Moderation
Announce- Announce a message to the chatGame- Change stream's gameShoutout- Shoutout a userStream- Change stream's title
-
Economy
Balance- Check your balanceGamble- Gamble your moneyGive- Give money to another userAutobet- Automatically gamble multiple timesLeaderboard- Automatically gamble multiple timesSet- Set user's balance
-
Social
Eat- Chose a random food to eatHate- How much do you hate someone?Love- How much do you love someone?Stomp- Stomp on someone
-
Info
Help- Show help messageUptime- Show stream uptimeVersion- Show bot version
-
Preferences
Nickname- Change your nickname (Linked with the chat overlay)Currency- Change global currencyLanguage- Change bot language
-
Music
Song-Queue (sq)- Show the music queueSong-Default (sd)- Set default songs when the queue is emptySong-Remove (rm)- Remove a song from the queueSong-Skip (sk)- Skip the current songSong-Request (sr)- Add a song to the queueSong-Playing (np)- Show the current song
Chat Overlay- Show chat messages on the stream (Nickname command linked)Event Feed- Show recent events on the stream (Linked with economic commands)Music Player- Play music on the stream (Click now-playing box to hide the video)Soundboard Player- Play sound effects on the stream (Can be linked with channel points)
For an updated guide, see Linking Channel Points to Soundboard and Adding Custom Replies
Redeem to play sound
You can now add a new channel point rewards to play sounds on stream using the rewards manager. Add yours now! (Version 2.2.0 or higher): http://localhost:3000/manager/channel-points.
But if you want to control the soundboard yourself, go to the soundboard controller: http://localhost:3000/soundboard/controller.
Otherwise, you can use the soundboard player overlay: http://localhost:3000/soundboard/player.
(Click "Hide" button to hide the entire page and become audio player only).
Customized chat replies
The bot can now reply to user messages other than commands from specified keywords, This feature is for ManaoBot v2.2.0 or higher. You can manage custom replies at: http://localhost:3000/manager/replies
If you want to contribute to the project, please read the CONTRIBUTING.md file. However, if you have any questions, feel free to ask in the Discord server.
This project is licensed under the GNU General Public License version 3. For more info, refer to GNU Official Website
For an updated guide, see Retrieving Client ID and Secret from Twitch
You can get your Twitch API credentials by creating a new application (not extensions) in
the Twitch Developer Portal. Set "OAuth Redirect URL" to http://localhost:3000/, set the category
to "Chat Bot" and client type to "Confidential". After that, you will be redirected to the application page.
Get your client ID and client secret from the application's dashboard, and add them to your .env file.
After that, you can install TwitchCLI and run the following command to get your
access token:
twitch token -u -s "user:edit user:read:email chat:read chat:edit channel:moderate moderation:read moderator:manage:shoutouts moderator:manage:announcements channel:manage:moderators channel:manage:broadcast channel:read:vips channel:read:subscriptions channel:manage:vips channel:read:redemptions channel:manage:redemptions moderator:read:followers bits:read"You will receive a user access token and a refresh token, add them to your .env file.
Note: You should run the following command 2 times, once for the bot account and once for the broadcaster account, make sure
to logout of Twitch before running the command again. Put the access token and refresh token in the .env file accordingly.
Currently, Bun is only available for Linux and MacOS. If you are using Windows, you can use WSL or a virtual machine to
run the project.
Bun is now available for Windows, you can follow the official documentation
for the installation.
For further assistance about installing Bun, you may ask in the Bun official Discord server.
For an updated guide, see Adding Overlays in OBS
You can add the overlays to your stream by adding a new browser source in your streaming software (OBS, Streamlabs, etc.). You can copy the URL of the overlay you want to add and paste it in the URL field of the browser source. For music source, to interact with the player, find the "Interact" button. From there, you can set the YouTube Player volume and interact with the music player. You can also pause the video, it won't interrupt with the music player functions. If you want to skip the song manually, drag the time slider to the end of the video.
The URLs of the overlays are as follows (assuming you are running the bot locally):
- Chat Overlay:
http://localhost:3000/overlays/chat - Event Feed:
http://localhost:3000/overlays/feed - Music Player:
http://localhost:3000/overlays/music - Soundboard Player:
http://localhost:3000/soundboard/player
You can change the bot's prefix by modifying the PREFIX variable in the src/config.ts file.
No, not at the moment. However, if you want to help with translations, feel free to open a pull request.
Feel free to ask in the Discord server or open an issue on GitHub. If it's a security issue, join the Discord server and send me friend request to DM me directly (@acsp - Tin).