{"id":13758396,"url":"https://github.com/clarkio/ttv-chat-bot","last_synced_at":"2025-07-21T05:03:42.890Z","repository":{"id":43486850,"uuid":"126224484","full_name":"clarkio/ttv-chat-bot","owner":"clarkio","description":"Twitch livestream bot that can control colors for overlays from Stream Elements, play sound effects, handle custom rewards (like text-to-speech) and more!","archived":false,"fork":false,"pushed_at":"2024-10-10T04:26:03.000Z","size":16139,"stargazers_count":72,"open_issues_count":53,"forks_count":30,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-18T15:07:37.493Z","etag":null,"topics":["bot","chatbot","hacktoberfest","hacktoberfest2022","javascript","js","livestream","nodejs","ts","twitch","typescript","web","websockets"],"latest_commit_sha":null,"homepage":"https://clarkio.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clarkio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-21T18:37:22.000Z","updated_at":"2024-11-08T08:27:50.000Z","dependencies_parsed_at":"2023-10-14T18:31:45.208Z","dependency_job_id":"b73cdd02-b660-4370-8cd6-06ea8d3e671b","html_url":"https://github.com/clarkio/ttv-chat-bot","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/clarkio/ttv-chat-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarkio%2Fttv-chat-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarkio%2Fttv-chat-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarkio%2Fttv-chat-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarkio%2Fttv-chat-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clarkio","download_url":"https://codeload.github.com/clarkio/ttv-chat-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarkio%2Fttv-chat-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266242072,"owners_count":23898102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","chatbot","hacktoberfest","hacktoberfest2022","javascript","js","livestream","nodejs","ts","twitch","typescript","web","websockets"],"created_at":"2024-08-03T13:00:29.376Z","updated_at":"2025-07-21T05:03:42.849Z","avatar_url":"https://github.com/clarkio.png","language":"TypeScript","funding_links":[],"categories":["Libraries"],"sub_categories":["JavaScript (Node.js)"],"readme":"\u003cdiv align=\"center\"\u003e\n  \n# ttv-chat-bot\n\n[![Known Vulnerabilities](https://snyk.io/test/github/clarkio/ttv-chat-bot/badge.svg)](https://snyk.io/test/github/clarkio/ttv-chat-bot)\n![GitHub](https://img.shields.io/github/license/clarkio/ttv-chat-bot)\n[![Discord](https://img.shields.io/discord/421902136457035777)](https://discord.gg/xB95beJ)\n[![Twitch Status](https://img.shields.io/twitch/status/clarkio)](https://twitch.tv/clarkio)\n\u003cbr\u003e\n[![Twitter Follow](https://img.shields.io/twitter/follow/_clarkio?style=social)](https://twitter.com/intent/follow?screen_name=_clarkio)\n\n\u003c/div\u003e\n\nTwitch livestream bot that can control colors for overlays from Stream Elements, play sound effects, handle custom rewards (like text-to-speech) and more!\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-15-orange.svg?style=flat-square)](#contributors)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n## Clarkio\nThis chatbot was built with 💙 live on stream with the programming community. Come and hang out with us over on Twitch!\n\n\u003e https://twitch.tv/clarkio\n\n## Getting Started\n\n1. Clone with: `git clone git@github.com:clarkio/ttv-chat-bot.git`\n1. Goto project: `cd ttv-chat-bot`\n1. Install node dependencies: `npm install`\n1. If on:\n   * **Debian/Ubuntu** run: `sudo apt install mpg123`\n   * **Windows** install: [cmdmp3](https://github.com/jimlawless/cmdmp3)\n   * **MacOS** you should have [afplay](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/afplay.1.html) already available\n1. Login on [https://twitch.tv](https://twitch.tv)\n1. Go to [https://twitchapps.com/tmi/](https://twitchapps.com/tmi/)\n   1. Click \"Connect with Twitch\"\n   1. Click \"Authorize\"\n   1. Copy the token value (starts with \"oauth:\")\n1. Rename the file `.env-example` to `.env`\n1. Update `TTV_CLIENT_TOKEN` with the token value you copied before in step 4.c\n1. Update `TTV_CLIENT_USERNAME` to your client username (defaults to \"clarkio\")\n1. For each overlay in streamelements (a.k.a. scenes) copy the URL to the scene and add it to the `.env` file as a new environment variable for each one.\n\n   Example: mainScene=https://streamelements.com/overlay/abc/123\n\n1. Get Streamelements JWT from your account and update `STREAMELEMENTS_JWT` in your `.env` file.\n\n## Run the Application\n\nPlease make sure you've completed all steps in the \"Getting Started\" section before attempting to run the app.\n\n### From Docker\n\n- (@roberttables) Set OBS_SOCKETS_SERVER=host.docker.internal:\u003cthe port your OBS Websockets server is running\u003e\n  - (@parithon) Note This dns name (host.docker.internal) only appears to work on Docker Desktop for Mac/Windows and not production environments nor other linux environments (Ubuntu)\n  - (@roberttables) In that case then you can use the override through docker0 bridge which exists in linux environments\n\n#### Windows\n\n#### MacOS\n\n#### Linux\n\n### From the Command Line (CLI)\n\n1. Change to the directory of the project `ttv-chat-bot` if you have not already done so.\n1. Run `npm start`\n1. Open your browser and go to [http://localhost:1337/scenes?sceneName=\u003cyour-scene-name-from-.env\u003e](http://localhost:1337/scenes?sceneName=)\n\n   Example: [http://localhost:1337/scenes?sceneName=mainScene](http://localhost:1337/scenes?sceneName=mainScene)\n\n### From VS Code\n\n1. Go to the debugger view and confirm the debugger is set to \"Server Start\"\n1. Press the \"Start Debugging\" button (the green play button)\n1. Open your browser and go to [http://localhost:1337/scenes?sceneName=\u003cyour-scene-name-from-.env\u003e](http://localhost:1337/scenes?sceneName=)\n\n   Example: [http://localhost:1337/scenes?sceneName=mainScene](http://localhost:1337/scenes?sceneName=mainScene)\n\n## Trying Things Out\n\nPlease make sure you've completed all steps in the \"Getting Started\" and \"Run the Application\" sections before attempting to try out the app.\n\n1. Open up a new browser tab or window and navigate to the chat for the Twitch channel you want to use (defaults to \"clarkio\" in the `.env` file under `TTV_CHANNELS`)\n\n   Example: [https://www.twitch.tv/popout/clarkio/chat](https://www.twitch.tv/popout/clarkio/chat)\n\n   \u003e If you'd like to have the client connect to another channel you can add it to the `TTV_CHANNELS` environment variable. The variable is comma-delimited so you can have it as clarkio,\"your channel name\" to connect to multiple channels\n\n1. Enter the following chat message \"!bulb go green\" and you should see your overlay change color in your other tab/window which loaded [http://localhost:1337/scenes?sceneName=mainScene](http://localhost:1337/scenes?sceneName=mainScene)\n\n   \u003e WARNING: the implementation is currently based off of an overlay being blue by default and will alter the hue from that. If your overlay default color is different it will not exactly change to the color you may be intending. We are working on making this better to support different default overlay colors.\n\n## Twitch Viewers that have helped contribute to the project (in no particular order):\n\nWant to contribute? Check out our [Code of Conduct](CODE_OF_CONDUCT.md) and [Contributing](CONTRIBUTING.md) docs. This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.  Contributions of any kind welcome!\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n- sockelo\n- [frenck](https://github.com/frenck)\n- [tallpants](https://github.com/tallpants)\n- wwsean08\n- l2ival\n- ikoakmaindehoas\n- codephobia\n- styler\n- [TheMartesLive](https://github.com/TheMartes)\n- [eeevans](https://github.com/eeevans)\n- TheMichaelJolley\n- @jaredpsimpson\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/jakegny\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/6787885?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJake Nylund\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=jakegny\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://michaeljolley.com/\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/1228996?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMichael Jolley\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=MichaelJolley\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/CodemanCodes\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/46641880?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCodemanCodes\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=CodemanCodes\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/jaredpsimpson\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/1933150?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ejaredpsimpson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=jaredpsimpson\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/eeevans\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/272717?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEdward Evans\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=eeevans\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://nmarch213.github.io/Portfolio/\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/14193159?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNicholas March\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=nmarch213\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/PatPat1567\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/41209202?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePatPat1567\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/issues?q=author%3APatPat1567\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://timmykokke.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/2283621?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTimmy Kokke\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=sorskoot\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.mcduboiswebservices.com\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/39778093?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMichael duBois\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=MichaelCduBois\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://lannonbr.com\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/3685876?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBenjamin Lannon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=lannonbr\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/OiYouYeahYou\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/20130059?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJason Allan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=OiYouYeahYou\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://toefrog.github.io/Blog/\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/1122675?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eChris Gargotta\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=ToeFrog\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-ToeFrog\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Wingysam\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/18403742?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eWingysam\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-Wingysam\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/LuckyNoS7evin\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/30657709?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLuckyNoS7evin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=LuckyNoS7evin\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://wwsean08.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/839261?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSean Smith\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/clarkio/ttv-chat-bot/commits?author=wwsean08\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarkio%2Fttv-chat-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclarkio%2Fttv-chat-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarkio%2Fttv-chat-bot/lists"}