{"id":29857130,"url":"https://github.com/h1ddenpr0cess20/infinigpt-irc","last_synced_at":"2025-07-30T00:38:05.392Z","repository":{"id":159399959,"uuid":"634614840","full_name":"h1ddenpr0cess20/infinigpt-irc","owner":"h1ddenpr0cess20","description":"An asynchronous, multi-channel AI chatbot for IRC which can assume any personality imaginable, using OpenAI, xAI, Google, and Ollama models","archived":false,"fork":false,"pushed_at":"2025-06-27T20:25:23.000Z","size":160,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-27T20:36:56.051Z","etag":null,"topics":["ai","chatbot","chatgpt","gemini","google","gpt","grok","irc","irc-bot","ollama","openai","xai"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h1ddenpr0cess20.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,"zenodo":null}},"created_at":"2023-04-30T17:43:37.000Z","updated_at":"2025-06-27T20:04:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"862962e7-5a87-47ac-8bb8-e096839eceaa","html_url":"https://github.com/h1ddenpr0cess20/infinigpt-irc","commit_stats":null,"previous_names":["h1ddenpr0cess20/infinigpt-irc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/h1ddenpr0cess20/infinigpt-irc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-irc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-irc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-irc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-irc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h1ddenpr0cess20","download_url":"https://codeload.github.com/h1ddenpr0cess20/infinigpt-irc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-irc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267785976,"owners_count":24144124,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","chatgpt","gemini","google","gpt","grok","irc","irc-bot","ollama","openai","xai"],"created_at":"2025-07-30T00:38:03.929Z","updated_at":"2025-07-30T00:38:05.380Z","avatar_url":"https://github.com/h1ddenpr0cess20.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# infinigpt-irc\nInfiniGPT is an asynchronous, multi-channel AI chatbot for IRC, with a great prompt which allows it to roleplay as almost anything you can think of.  It supports OpenAI, xAI, Google and Ollama models. You can set any default personality you would like.  It can be changed at any time, and each user has their own separate chat history with their chosen personality setting.  Users can interact with each others chat histories for collaboration if they would like, but otherwise, conversations are separated.  \n\nAlso available for the Matrix chat protocol at [infinigpt-matrix](https://github.com/h1ddenpr0cess20/infinigpt-matrix/)\n\n## Setup\n\n```\npip install -r requirements.txt\n```\n\nGet an [OpenAI API](https://platform.openai.com/signup) key, an [xAI API](https://accounts.x.ai/) key, a [Google API](https://aistudio.google.com/apikey) key, and a [Mistral API](https://mistral.ai/) key, if you would like to use those services.  Add those to config.json.  Add/remove the models you would like to be available from the model lists.  \n\nFamiliarize yourself with [Ollama](http://ollama.com/), make sure you can run local LLMs.  Install the models you want to use and replace the example Ollama models in config.json.  If you would like to use with Ollama only, you can leave the lists of models for the other services empty.  \n\nFill in the irc credentials in config.json.  \nPassword is optional, but it is recommended because registration is required for some channels, and some users may not be able to privately message the bot unless it has identified to the server.\n\nYou can add your own tools to the tools.py file and add them to the schema.json file.  I have included a crypto price tool as an example.\n\n## Use\n```\npython infinigpt.py\n```  \n**.ai** _message_ or **botname:** _message_  \n    Basic usage.  You can also privately message the bot without using these commands.\n    \n**.x** _user_ _message_  \n    This allows you to talk to another user's chat history.  \n    _user_ is the display name of the user whose history you want to use\n     \n**.persona** _personality_  \n    Changes the personality.  It can be a character, personality type, object, idea.  \n    Don't use a custom system prompt here.\n\n**.custom** _prompt_  \n    Set a custom system prompt\n        \n**.reset**  \n    Reset to preset personality\n    \n**.stock**  \n    Remove personality and reset to standard GPT settings\n\n**.model**  \n    List available large language models\n\n**.model** _modelname_  \n    Change model\n\n**.join** _channel_   \n    Join a channel\n\n**.part** _channel_   \n    Leave a channel.  You can omit channel to part channel command was issued in.\n\n**.gpersona** _personality_  \n    Set a new default personality.\n\n**.help** _botname_  \n    Display the help menu\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh1ddenpr0cess20%2Finfinigpt-irc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh1ddenpr0cess20%2Finfinigpt-irc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh1ddenpr0cess20%2Finfinigpt-irc/lists"}