{"id":15213042,"url":"https://github.com/kitsumed/foxymoe-discordbot","last_synced_at":"2026-02-16T17:35:39.250Z","repository":{"id":249901175,"uuid":"832833753","full_name":"kitsumed/FoxyMoe-DiscordBot","owner":"kitsumed","description":"FoxyMoe is a discord bot written in nodejs with discord.js. This is a chat bot that communicates via the oobabooga webui API.","archived":false,"fork":false,"pushed_at":"2025-03-10T22:19:15.000Z","size":5259,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T04:22:42.910Z","etag":null,"topics":["ai","chatbot","discord-bot","discord-js","oobabooga","rag"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/kitsumed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-23T20:11:01.000Z","updated_at":"2025-03-10T22:19:18.000Z","dependencies_parsed_at":"2024-07-24T03:26:01.878Z","dependency_job_id":"f93cab44-2cce-4c10-9f5a-549aa7673b97","html_url":"https://github.com/kitsumed/FoxyMoe-DiscordBot","commit_stats":{"total_commits":17,"total_committers":1,"mean_commits":17.0,"dds":0.0,"last_synced_commit":"88d153d116f42c357423e6ceab8f136ed2dab975"},"previous_names":["kitsumed/foxymoe-discordbot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitsumed%2FFoxyMoe-DiscordBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitsumed%2FFoxyMoe-DiscordBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitsumed%2FFoxyMoe-DiscordBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitsumed%2FFoxyMoe-DiscordBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kitsumed","download_url":"https://codeload.github.com/kitsumed/FoxyMoe-DiscordBot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248907031,"owners_count":21181266,"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":["ai","chatbot","discord-bot","discord-js","oobabooga","rag"],"created_at":"2024-09-28T09:20:20.525Z","updated_at":"2026-02-16T17:35:39.192Z","avatar_url":"https://github.com/kitsumed.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch3 align=\"center\"\u003eFoxyMoe Discord Bot\u003c/h3\u003e\n  \u003cp align=\"center\"\u003e\n    FoxyMoe is a discord bot written with discord.js. This is a chat bot that communicates via the oobabooga webui API.\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n    \u003cb\u003eChat Bot Showcase\u003c/b\u003e\n    \u003cvideo src=\"https://github.com/user-attachments/assets/259b8472-8421-4570-bc13-53abd0f1b94c\"\u003e\u003c/video\u003e\n    \u003ca href=\"SHOWCASE.md\"\u003eSee showcase configurations\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#ideas\"\u003eIdeas\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\nFoxyMoe was a project I started around 2022 as a joke between friends. At the time, the main objective was to make the bot join a voice channel and use [MoeGoe](https://github.com/CjangCjengh/MoeGoe) for TTS. However, MoeGoe stopped receiving updates the same year and encountered problems with certain characters, causing the bot to be unstable. Around one year later, I decided to pick back that project and rewrite most of the code, a V2, and this time focused on the other half of the original idea, the chat bot (with LLM).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n### Prerequisites\n1. [Node.js](https://nodejs.org)\n2. [Oobabooga WebUI (Github repo)](https://github.com/oobabooga/text-generation-webui) Follow the installation procedure in their [readme](https://github.com/oobabooga/text-generation-webui?tab=readme-ov-file#how-to-install)\n\u003e [!CAUTION]\n\u003e The chat bot showcase was done on oobabooga webui **v1.10.1**. If you plan to use embeddings (vector search) for the long term memory, you may have a problem with oobabooga as a module is missing. Please refer to [this issue](https://github.com/oobabooga/text-generation-webui/issues/4836#issuecomment-2241726323) to correct it.\n\n### Installation\nThis guide assume your already have installed Oobabooga webui, a model inside the webui and created a Discord Bot.\n\n1. Go into the root folder of your Oobabooga installation and locate the `CMD_FLAGS.TXT` file. Ensure that you have enabled the `--api` flag.\n   Here's a example of a correct configuration:\n   ```text\n    # Only used by the one-click installer.\n    # Example:\n    # --listen --api\n    --api\n   ```\n3. Clone this repo or download it as a zip file\n   ```cmd\n   git clone https://github.com/kitsumed/FoxyMoe-DiscordBot\n   ```\n4. Open a cmd into the root of the repo and install the npm packages of the project\n   ```cmd\n   npm install\n   ```\n5. Create a .env file in the root of the repo and configure your environement file with the following settings:\n\n   If you are unsure about your LLM informations, go back to where you downloaded the model, example of the Instruction Template and chat mode should be mentioned.\n   ```env\n   TOKEN=YOUR_DISCORD_BOT_TOKEN\n   ClientID=YOUR_DISCORD_BOT_CLIENT_ID\n   GuildID=YOUR_DISCORD_SERVER_ID\n    \n   OobaboogaApiEndpoint=http://127.0.0.1:5000\n   OobaboogaModelName=YOUR_MODEL_NAME\n   OobaboogaUseEmbeddings=true/false\n   OobaboogaChatMode=YOUR_MODEL_SUPPORTED_MODE\n   OobaboogaInstructionTemplateName=YOUR_MODEL_INSTRUCTION_TEMPLATE\n   ChatAiChannelID=YOUR_DISCORD_CHANNEL_ID\n   ```\n  \u003e [!NOTE]\n  \u003e Some values like the prompt temperature are hard-coded inside the ObaBogaAPI module. All Models should always work as the hard-coded values are only having a effect on the LLM completion generation, but they won't always achieve the best results possible.\n\n6. Deploy the commands to your Discord guild\n   ```cmd\n   node .\\deploy-commands.js\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\nThese are just the basics; other commands are also available.\n### How do I start the bot?\nOnce you completed the installation steps, go into the project root directory and start the bot with\n   ```cmd\n   node .\\index.js\n   ```\nDuring it's first execution, the bot should create a SQLite database.\n### How do I create a ObaBogaInstance?\nTo create a ObaBogaInstance, go into your discord server and write  `/config ai_text_generation manage action:Create`.\n\nEach instance has it's own system prompt and chat history and you can switch between them without restarting the bot.\nFor better results, I recommend including conversasion example at the end of your system prompt. If your bot name is `potato` and your user name is `chicken` the example should follow this format\n```text\nchicken: Hi there\npotato: Hi user, how do you feel today?\nchicken: I feel great!\n```\n### How do I load a ObaBogaInstance?\nTo load a ObaBogaInstance, go into your discord server and write  `/config ai_text_generation select id:VALUE`.\n\nNote that if you've restarted the bot after loading a ObaBogaInstance, the bot will load the last used instance by default.\n\n### How do I edit a ObaBogaInstance?\n\u003e [!WARNING]\n\u003e If you're updating the instance currently loaded, you will need to reload the instance to get the new configuration\n\nTo edit a ObaBogaInstance, go into your discord server and write  `/config ai_text_generation edit id:VALUE`.\n\n### How can I delete the chat history of the ObaBogaInstance I'm currently using?\nTo clear your chat history, go into your discord server and write  `/config ai_text_generation clear`.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- Ideas --\u003e\n## Ideas\n\n- [x] Implement chat bot functionality with [Oobabooga webui](https://github.com/oobabooga/text-generation-webui)\n- [ ] Implement TTS with [vits-simple-api](https://github.com/Artrajz/vits-simple-api)\n- [ ] Implement voice to text with [whisper](https://github.com/openai/whisper) (Preferably locally with an API)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\u003e [!NOTE]\n\u003e Before making a pull request, please ensure that your code is easily readable and contains good enough comments in English.\n\u003e This will make it easy for everyone to understand the project.\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. Don't forget to give the project a star! Thanks again!\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\n* [Discord.js Docs](https://discord.js.org/docs/packages/discord.js/14.15.3)\n* [Discord.js Guide](https://discordjs.guide/)\n* [Github README Template](https://github.com/othneildrew/Best-README-Template)\n* [Shields.io (Badges)](https://shields.io/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/kitsumed/FoxyMoe-DiscordBot?style=for-the-badge\n[contributors-url]: https://github.com/kitsumed/FoxyMoe-DiscordBot/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/kitsumed/FoxyMoe-DiscordBot?style=for-the-badge\u0026label=forks\n[forks-url]: https://github.com/kitsumed/FoxyMoe-DiscordBot/network/members\n[stars-shield]: https://img.shields.io/github/stars/kitsumed/FoxyMoe-DiscordBot?style=for-the-badge\u0026label=stars\n[stars-url]: https://github.com/kitsumed/FoxyMoe-DiscordBot/stargazers\n[issues-shield]: https://img.shields.io/github/issues/kitsumed/FoxyMoe-DiscordBot?style=for-the-badge\n[issues-url]: https://github.com/kitsumed/FoxyMoe-DiscordBot/issues\n[license-shield]: https://img.shields.io/github/license/kitsumed/FoxyMoe-DiscordBot?style=for-the-badge\u0026label=license\n[license-url]: https://github.com/kitsumed/FoxyMoe-DiscordBot/blob/main/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitsumed%2Ffoxymoe-discordbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitsumed%2Ffoxymoe-discordbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitsumed%2Ffoxymoe-discordbot/lists"}