Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active. https://librechat.ai/
Find a file
Danny Avila 0e50c07e3f
🤖 feat: Model Specs & Save Tools per Convo/Preset (#2578)
* WIP: first pass ModelSpecs

* refactor(onSelectEndpoint): use `getConvoSwitchLogic`

* feat: introduce iconURL, greeting, frontend fields for conversations/presets/messages

* feat: conversation.iconURL & greeting in Landing

* feat: conversation.iconURL & greeting in New Chat button

* feat: message.iconURL

* refactor: ConversationIcon -> ConvoIconURL

* WIP: add spec as a conversation field

* refactor: useAppStartup, set spec on initial load for new chat, allow undefined spec, add localStorage keys enum, additional type fields for spec

* feat: handle `showIconInMenu`, `showIconInHeader`, undefined `iconURL` and no specs on initial load

* chore: handle undefined or empty modelSpecs

* WIP: first pass, modelSpec schema for custom config

* refactor: move default filtered tools definition to ToolService

* feat: pass modelSpecs from backend via startupConfig

* refactor: modelSpecs config, return and define list

* fix: react error and include iconURL in responseMessage

* refactor: add iconURL to responseMessage only

* refactor: getIconEndpoint

* refactor: pass TSpecsConfig

* fix(assistants): differentiate compactAssistantSchema, correctly resets shared conversation state with other endpoints

* refactor: assistant id prefix localStorage key

* refactor: add more LocalStorageKeys and replace hardcoded values

* feat: prioritize spec on new chat behavior: last selected modelSpec behavior (localStorage)

* feat: first pass, interface config

* chore: WIP, todo: add warnings based on config.modelSpecs settings.

* feat: enforce modelSpecs if configured

* feat: show config file yaml errors

* chore: delete unused legacy Plugins component

* refactor: set tools to localStorage from recoil store

* chore: add stable recoil setter to useEffect deps

* refactor: save tools to conversation documents

* style(MultiSelectPop): dynamic height, remove unused import

* refactor(react-query): use localstorage keys and pass config to useAvailablePluginsQuery

* feat(utils): add mapPlugins

* refactor(Convo): use conversation.tools if defined, lastSelectedTools if not

* refactor: remove unused legacy code using `useSetOptions`, remove conditional flag `isMultiChat` for using legacy settings

* refactor(PluginStoreDialog): add exhaustive-deps which are stable react state setters

* fix(HeaderOptions): pass `popover` as true

* refactor(useSetStorage): use project enums

* refactor: use LocalStorageKeys enum

* fix: prevent setConversation from setting falsy values in lastSelectedTools

* refactor: use map for availableTools state and available Plugins query

* refactor(updateLastSelectedModel): organize logic better and add note on purpose

* fix(setAgentOption): prevent reseting last model to secondary model for gptPlugins

* refactor(buildDefaultConvo): use enum

* refactor: remove `useSetStorage` and consolidate areas where conversation state is saved to localStorage

* fix: conversations retain tools on refresh

* fix(gptPlugins): prevent nullish tools from being saved

* chore: delete useServerStream

* refactor: move initial plugins logic to useAppStartup

* refactor(MultiSelectDropDown): add more pass-in className props

* feat: use tools in presets

* chore: delete unused usePresetOptions

* refactor: new agentOptions default handling

* chore: note

* feat: add label and custom instructions to agents

* chore: remove 'disabled with tools' message

* style: move plugins to 2nd column in parameters

* fix: TPreset type for agentOptions

* fix: interface controls

* refactor: add interfaceConfig, use Separator within Switcher

* refactor: hide Assistants panel if interface.parameters are disabled

* fix(Header): only modelSpecs if list is greater than 0

* refactor: separate MessageIcon logic from useMessageHelpers for better react rule-following

* fix(AppService): don't use reserved keyword 'interface'

* feat: set existing Icon for custom endpoints through iconURL

* fix(ci): tests passing for App Service

* docs: refactor custom_config.md for readability and better organization, also include missing values

* docs: interface section and re-organize docs

* docs: update modelSpecs info

* chore: remove unused files

* chore: remove unused files

* chore: move useSetIndexOptions

* chore: remove unused file

* chore: move useConversation(s)

* chore: move useDefaultConvo

* chore: move useNavigateToConvo

* refactor: use plugin install hook so it can be used elsewhere

* chore: import order

* update docs

* refactor(OpenAI/Plugins): allow modelLabel as an initial value for chatGptLabel

* chore: remove unused EndpointOptionsPopover and hide 'Save as Preset' button if preset UI visibility disabled

* feat(loadDefaultInterface): issue warnings based on values

* feat: changelog for custom config file

* docs: add additional changelog note

* fix: prevent unavailable tool selection from preset and update availableTools on Plugin installations

* feat: add `filteredTools` option in custom config

* chore: changelog

* fix(MessageIcon): always overwrite conversation.iconURL in messageSettings

* fix(ModelSpecsMenu): icon edge cases

* fix(NewChat): dynamic icon

* fix(PluginsClient): always include endpoint in responseMessage

* fix: always include endpoint and iconURL in responseMessage across different response methods

* feat: interchangeable keys for modelSpec enforcing
2024-04-30 22:11:48 -04:00
.devcontainer 🐳 fix: Update .devcontainer Files (#1712) 2024-02-04 08:39:19 -05:00
.github 🧪 ci: Add .env.test for backend-review.yml (#2501) 2024-04-23 08:21:12 -04:00
.husky 🐳 hotfix: Necessary Dockerfile Update (#2271) 2024-04-01 18:46:12 -04:00
api 🤖 feat: Model Specs & Save Tools per Convo/Preset (#2578) 2024-04-30 22:11:48 -04:00
client 🤖 feat: Model Specs & Save Tools per Convo/Preset (#2578) 2024-04-30 22:11:48 -04:00
config 💽 feat: Add Script for User Stats (#2224) 2024-03-27 14:41:29 -04:00
docs 🤖 feat: Model Specs & Save Tools per Convo/Preset (#2578) 2024-04-30 22:11:48 -04:00
e2e v0.7.1 (#2502) 2024-04-23 08:57:20 -04:00
packages/data-provider 🤖 feat: Model Specs & Save Tools per Convo/Preset (#2578) 2024-04-30 22:11:48 -04:00
utils/docker ⬇️ refactor: Assistant File Downloads (#2364) 2024-04-09 14:26:46 -04:00
.dockerignore 🐳 : Further Docker build Cleanup & Docs Update (#1502) 2024-01-06 11:59:08 -05:00
.env.example 📄 docs: update GOOGLE_MODELS in .env.example (#2506) 2024-04-27 18:36:54 -04:00
.eslintrc.js 🔬 chore: Add Circular Dependency Check to backend-review (#2149) 2024-03-20 12:15:42 -04:00
.gitignore v0.7.0 (#2266) 2024-04-01 15:48:57 -04:00
bun.lockb 🅰️ feat: Azure OpenAI Assistants API Support (#1992) 2024-03-14 17:21:42 -04:00
deploy-compose.yml 🐳 feat: RAG for Default Docker Compose Files + Docs Update (#2246) 2024-03-29 21:15:36 -04:00
docker-compose.override.yml.example 🦙 docs: Update Ollama + LiteLLM Instructions (#2302) 2024-04-04 08:32:36 -04:00
docker-compose.yml 🐋 refactor: Update docker-compose.yml (#2507) 2024-04-25 20:25:51 -04:00
Dockerfile v0.7.1 (#2502) 2024-04-23 08:57:20 -04:00
Dockerfile.multi v0.7.1 (#2502) 2024-04-23 08:57:20 -04:00
index.html v0.7.1 (#2502) 2024-04-23 08:57:20 -04:00
librechat.example.yaml 🔧 fix: Resolve Proper Dependencies to fix Application Error (#2488) 2024-04-22 12:52:30 -04:00
LICENSE ⚖️ Update LICENSE.md Year: 2023 -> 2024 (#1501) 2024-01-06 12:00:20 -05:00
mkdocs.yml 🧑‍💻docs: Update General Docs and Contribution Guidelines (#2194) 2024-03-25 07:26:43 -04:00
package-lock.json 🔒 fix: package-lock file for cross-compatibility (#2515) 2024-04-24 10:42:18 -04:00
package.json 🔒 fix: package-lock file for cross-compatibility (#2515) 2024-04-24 10:42:18 -04:00
prettier.config.js v0.7.1 (#2502) 2024-04-23 08:57:20 -04:00
rag.yml 🐳 feat: RAG for Default Docker Compose Files + Docs Update (#2246) 2024-03-29 21:15:36 -04:00
README.md 🖥️ docs: env changes v0.6.10→v0.7.0+ (#2442) 2024-04-18 08:27:52 -04:00

LibreChat

Deploy on Railway Deploy on Zeabur Deploy on Sealos

📃 Features

  • 🖥️ UI matching ChatGPT, including Dark mode, Streaming, and latest updates
  • 💬 Multimodal Chat:
    • Upload and analyze images with Claude 3, GPT-4, and Gemini Vision 📸
    • Chat with Files using Custom Endpoints, OpenAI, Azure, Anthropic, & Google. 🗃️
    • Advanced Agents with Files, Code Interpreter, Tools, and API Actions 🔦
  • 🌎 Multilingual UI:
    • English, 中文, Deutsch, Español, Français, Italiano, Polski, Português Brasileiro,
    • Русский, 日本語, Svenska, 한국어, Tiếng Việt, 繁體中文, العربية, Türkçe, Nederlands, עברית
  • 🤖 AI model selection: OpenAI, Azure OpenAI, BingAI, ChatGPT, Google Vertex AI, Anthropic (Claude), Plugins, Assistants API (including Azure Assistants)
  • 💾 Create, Save, & Share Custom Presets
  • 🔄 Edit, Resubmit, and Continue messages with conversation branching
  • 📤 Export conversations as screenshots, markdown, text, json.
  • 🔍 Search all messages/conversations
  • 🔌 Plugins, including web access, image generation with DALL-E-3 and more
  • 👥 Multi-User, Secure Authentication with Moderation and Token spend tools
  • ⚙️ Configure Proxy, Reverse Proxy, Docker, & many Deployment options
  • 📖 Completely Open-Source & Built in Public
  • 🧑‍🤝‍🧑 Community-driven development, support, and feedback

For a thorough review of our features, see our docs here 📚

🪶 All-In-One AI Conversations with LibreChat

LibreChat brings together the future of assistant AIs with the revolutionary technology of OpenAI's ChatGPT. Celebrating the original styling, LibreChat gives you the ability to integrate multiple AI models. It also integrates and enhances original client features such as conversation and message search, prompt templates and plugins.

With LibreChat, you no longer need to opt for ChatGPT Plus and can instead use free or pay-per-call APIs. We welcome contributions, cloning, and forking to enhance the capabilities of this advanced chatbot platform.

Watch the video Click on the thumbnail to open the video☝️


📚 Documentation

For more information on how to use our advanced features, install and configure our software, and access our guidelines and tutorials, please check out our documentation at docs.librechat.ai


📝 Changelog

Keep up with the latest updates by visiting the releases page - Releases

⚠️ Breaking Changes Please consult the breaking changes before updating.


Star History

danny-avila%2FLibreChat | Trendshift

Star History Chart

Contributions

Contributions, suggestions, bug reports and fixes are welcome!

For new features, components, or extensions, please open an issue and discuss before sending a PR.


💖 This project exists in its current state thanks to all the people who contribute