* feat: add zod schemas for better type safety * refactor(useSetOptions): remove 'as Type' in favor of zod schema * fix: descendant console error, change <p> tag to <div> tag for content in PluginTooltip component * style(MessagesView): instant/snappier scroll behavior matching official site * fix(Messages): add null check for scrollableRef before accessing its properties in handleScroll and useEffect * fix(messageSchema.js): change type of invocationId from string to number fix(schemas.ts): make authenticated property in tPluginSchema optional fix(schemas.ts): make isButton property in tPluginSchema optional fix(schemas.ts): make messages property in tConversationSchema optional and change its type to array of strings fix(schemas.ts): make systemMessage property in tConversationSchema nullable and optional fix(schemas.ts): make modelLabel property in tConversationSchema nullable and optional fix(schemas.ts): make chatGptLabel property in tConversationSchema nullable and optional fix(schemas.ts): make promptPrefix property in tConversationSchema nullable and optional fix(schemas.ts): make context property in tConversationSchema nullable and optional fix(schemas.ts): make jailbreakConversationId property in tConversationSchema nullable and optional fix(schemas.ts): make conversationSignature property in tConversationSchema nullable and optional fix(schemas.ts): make clientId property * refactor(types): replace main types with zod schemas and inferred types * refactor(types/schemas): use schemas for better type safety of main types * style(ModelSelect/Buttons): remove shadow and transition * style(ModelSelect): button changes to closer match OpenAI * style(ModelSelect): remove green rings which flicker * style(scrollToBottom): add two separate scrolling functions * fix(OptionsBar.tsx): handle onFocus and onBlur events to update opacityClass fix(Messages/index.jsx): increase debounce time for scrollIntoView function |
||
|---|---|---|
| .devcontainer | ||
| .github | ||
| .husky | ||
| api | ||
| client | ||
| config | ||
| docs | ||
| e2e | ||
| packages/data-provider | ||
| .dockerignore | ||
| .env.example | ||
| .eslintrc.js | ||
| .gitignore | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| deploy-compose.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Dockerfile.multi | ||
| index.html | ||
| LICENSE.md | ||
| lint-staged.config.js | ||
| mkdocs.yml | ||
| package-lock.json | ||
| package.json | ||
| prettier.config.js | ||
| README.md | ||
| SECURITY.md | ||
LibreChat
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.
Click on the thumbnail to open the video☝️
Features
- Response streaming identical to ChatGPT through server-sent events
- UI from original ChatGPT, including Dark mode
- AI model selection: OpenAI API, BingAI, ChatGPT Browser, PaLM2, Anthropic (Claude), Plugins
- Create, Save, & Share custom presets - More info on prompt presets here
- Edit and Resubmit messages with conversation branching
- Search all messages/conversations - More info here
- Plugins now available (including web access, image generation and more)
⚠️ Breaking Changes ⚠️
Please read this before updating from a previous version
Changelog
Keep up with the latest updates by visiting the releases page - Releases
Table of Contents
Getting Started
- Installation
- Configuration
General Information
Features
Contributions
Star History
Sponsors
Sponsored by @mjtechguy, @SphaeroX, @DavidDev1334, @fuegovic, @Pharrcyde
Contributors
Contributions and suggestions bug reports and fixes are welcome! Please read the documentation before you do!
For new features, components, or extensions, please open an issue and discuss before sending a PR.
- Join the Discord community