A multipurpose twitch/discord bot written in TypeScript. This project is a monorepo, which contains the following packages:
- bot - The main bot package
- language - A simple interpreted dynamic programming language for describing chat bot commands and behavior based of Bex but in TypeScript.
Very opinionated stack, but it works for me.
Check the .todo file for the current feature set.
Bot uses an AI model to respond to messages in chat and discord DMs. The model is based of GODEL and will be trained on my own dataset in the future.
git clone https://github.com/Stormix/bot.git
cd bot
pnpm install
cp .env.example .env # and fill in the values
Name | Description |
---|---|
ENABLED |
Determines if the bot is enabled or not |
SENTRY_DSN |
Sentry.io DSN used for error logging and monitoring |
NODE_ENV |
Environment mode for Node.js (e.g. development, testing) |
TWITCH_CLIENT_ID |
Twitch API client ID used for accessing Twitch API |
TWITCH_ACCESS_TOKEN |
Twitch API access token used for authentication |
TWITCH_REFRESH_TOKEN |
Twitch API refresh token used for token refresh |
TWITCH_USERNAME |
Twitch account username for the bot |
DISCORD_TOKEN |
Discord API token used for authentication |
DISCORD_GUILD_ID |
Discord server/guild ID where the bot is installed |
DISCORD_OWNER_ID |
Discord user ID of the bot owner |
DATABASE_URL |
URL of the database used for the bot |
PORT |
API listening port |
REDIS_PORT |
Redis port |
REDIS_HOST |
Redis host |
REDIS_PASSWORD |
Redis password |
REDIS_USERNAME |
Redis username |
set DOCKER_BUILDKIT=1 && docker buildx build --progress=plain -t bot --no-cache .
docker run -dp 3000:3000 bot
If you come across any issues please report them here.
Thank you for considering contributing to this project! Please feel free to make any pull requests, or e-mail me a feature request you would like to see in the future to hello@stormix.co.
If you discover a security vulnerability within this project, please send an e-mail to hello@stormix.co, or create a pull request if possible. All security vulnerabilities will be promptly addressed.