{"id":29857126,"url":"https://github.com/h1ddenpr0cess20/infinigpt-matrix","last_synced_at":"2025-07-30T00:38:03.741Z","repository":{"id":160728371,"uuid":"634689598","full_name":"h1ddenpr0cess20/infinigpt-matrix","owner":"h1ddenpr0cess20","description":"An AI chatbot for the Matrix chat protocol which can assume any personality imaginable, with OpenAI, xAI, Google, Anthropic, Mistral, and Ollama support","archived":false,"fork":false,"pushed_at":"2025-07-10T18:14:18.000Z","size":183,"stargazers_count":15,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-10T22:44:13.786Z","etag":null,"topics":["ai","anthropic","chatbot","chatgpt","gemini","gpt","grok","matrix","matrix-nio","mistral","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-30T23:23:57.000Z","updated_at":"2025-07-10T18:14:21.000Z","dependencies_parsed_at":"2023-11-07T03:07:47.340Z","dependency_job_id":"7cecd481-1b08-4035-9e74-7a277b7c8ff3","html_url":"https://github.com/h1ddenpr0cess20/infinigpt-matrix","commit_stats":null,"previous_names":["h1ddenpr0cess20/infinigpt-matrix"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/h1ddenpr0cess20/infinigpt-matrix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-matrix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-matrix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-matrix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-matrix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h1ddenpr0cess20","download_url":"https://codeload.github.com/h1ddenpr0cess20/infinigpt-matrix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1ddenpr0cess20%2Finfinigpt-matrix/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","anthropic","chatbot","chatgpt","gemini","gpt","grok","matrix","matrix-nio","mistral","ollama","openai","xai"],"created_at":"2025-07-30T00:38:02.642Z","updated_at":"2025-07-30T00:38:03.719Z","avatar_url":"https://github.com/h1ddenpr0cess20.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# infinigpt-matrix\nInfiniGPT is an AI chatbot for the [Matrix](https://matrix.org/) chat protocol, with a great prompt which allows it to roleplay as almost anything you can think of. It supports OpenAI, xAI, Google, Anthropic, Mistral, 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, per channel, per user.  \n\nAlso available for IRC at [infinigpt-irc](https://github.com/h1ddenpr0cess20/infinigpt-irc/)\n\n\n## Setup\n\n```\npip install -r requirements.txt\n```\n\n\nGet API keys for each of the LLM providers you would like to use.  Add those to config.json.\n\nEdit the model lists in the config to contain only the models you want to use.  \n\nIf you want to use local models, you'll first need to install and familiarize yourself with [Ollama](https://ollama.com/), make sure you can run local LLMs, etc.  If you can't, don't worry about it, you can just omit these models from the config.  \n\nYou can install and update it with this command:\n```\ncurl https://ollama.com/install.sh | sh\n```\n\n[Download the models](https://ollama.com/search) you want to use and replace the ones I've included as examples in the config.  \n\n\nSet up a [Matrix account](https://app.element.io/) for your bot.  You'll need the server, username and password.  Add those to the config.json file.\nOn the first run the script will register a device and save the `device_id` back\ninto `config.json` so subsequent launches reuse the same device.\n\nAdd your own tools to the `tools.py` file and add the schema to the `schema.json` file.\n\nCurrent tools included:\n- crypto_prices: Fetches price info for a currency pair (e.g., BTC-USD)\n- openai_image: Generates images using OpenAI's image API\n- grok_image: Generates images using xAI (Grok) image API\n- gemini_image: Generates images using Google Gemini image API\n- openai_search: Performs a web search using OpenAI's search model\n\n```\npython infinigpt.py\n```\n\n## Use\n\n**.ai _message_ or botname: _message_**  \n    Basic usage.\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, etc. Don't use a custom system prompt here.\n\n**.custom _prompt_**  \n    Allows use of a custom system prompt instead of the built-in one\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**.mymodel**  \n    List available large language models for yourself and show your current model\n\n**.mymodel _modelname_**  \n    Change your model (only affects your own responses)\n\n**.help**\n    Show the built-in help menu\n\n## Encryption Support\n\n- This bot supports end-to-end encryption (E2E) in Matrix rooms using `matrix-nio[e2e]` and a built-in device verification system.\n- You must have `libolm` installed and available to Python for E2E to work.\n- On Windows, you need to build and install `libolm` from source for encryption support. If you do not need encrypted rooms or have issues with `libolm`, use the files in the `no-e2e/` folder.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh1ddenpr0cess20%2Finfinigpt-matrix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh1ddenpr0cess20%2Finfinigpt-matrix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh1ddenpr0cess20%2Finfinigpt-matrix/lists"}