Ambos funcionan autoalojados, ambos hablan el protocolo de OpenAI y ambos harán el trabajo. Las comparaciones que posicionan para esta pregunta alinean tablas de funciones. Esta responde a la pregunta más concreta que probablemente te trajo aquí: cuál de los dos acepta un endpoint personalizado compatible con OpenAI con menos fricción y qué ofrece cada uno a cambio.
Todo lo afirmado a continuación procede del README de cada proyecto. No hay ningún benchmark ni un veredicto sobre cuál es mejor, porque no hemos ejecutado ninguno a una escala que justifique tal conclusión.
De dónde procede cada uno
| Open WebUI | LibreChat | |
|---|---|---|
| Origen | Modelos locales y Ollama | Clon de ChatGPT para múltiples proveedores |
| Backends que menciona | Ollama, API compatibles con OpenAI | Anthropic, AWS Bedrock, OpenAI, Azure OpenAI, Google, Vertex AI, OpenAI Responses API, además de endpoints personalizados |
| Configuración de endpoint personalizado | OPENAI_API_BASE_URL + OPENAI_API_KEY, o la interfaz Connections | Un bloque custom en librechat.yaml |
| Recuperación | RAG local en nueve bases de datos vectoriales, búsqueda híbrida con reranking, búsqueda web | Chat con archivos en sus endpoints compatibles |
| Control de acceso | RBAC granular y grupos de usuarios, LDAP/AD, SSO, SCIM 2.0 | Autenticación multiusuario con OAuth2, LDAP y correo electrónico, panel de administración para usuarios, grupos y roles |
| Extensibilidad | Filtros, acciones, pipes, herramientas y skills; servidores de herramientas MCP y OpenAPI | Agentes con herramientas MCP, un marketplace de agentes, intérprete de código aislado |
| Instalar | pip, uv, Docker, Kubernetes | Docker y varios despliegues cloud con un clic |
El patrón es que Open WebUI ha invertido principalmente en el despliegue y la recuperación, y LibreChat en los proveedores y los agentes. Cuál de esos aspectos te importe suele ser un criterio de desempate mejor que contar funciones.
Conectar Open WebUI a un gateway
Dos variables de entorno y estará funcionando:
# Open WebUI — the OpenAI-compatible connection is a base URL and a key.
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL=https://api.kunavo.com/v1 \
-e OPENAI_API_KEY=sk-kn-... \
-v open-webui:/app/backend/data \
--name open-webui ghcr.io/open-webui/open-webui:main
# The same two values can be set in Settings -> Connections after
# first launch, which is the faster path when you are trying it out.Como el selector de modelos puede rellenarse desde GET /v1/models, un endpoint que ofrezca varias familias las coloca todas en un único menú desplegable: los IDs de Claude y GPT aparecen juntos sin una segunda configuración.
Conectar LibreChat a un gateway
LibreChat quiere un bloque YAML en lugar de variables de entorno; hay más que escribir, pero obtienes control sobre los nombres y los modelos:
# LibreChat — a custom endpoint is a block in librechat.yaml.
version: 1.2.1
endpoints:
custom:
- name: "Kunavo"
apiKey: "${KUNAVO_API_KEY}"
baseURL: "https://api.kunavo.com/v1"
models:
default: ["claude-sonnet-5", "gpt-5-6-terra", "claude-haiku-4-5"]
fetch: true # populate the picker from GET /v1/models
titleConvo: true
titleModel: "claude-haiku-4-5"
modelDisplayLabel: "Kunavo"La línea titleModel es la que conviene copiar independientemente del endpoint: LibreChat genera el título de una conversación mediante una llamada al modelo, y fijarlo al modelo más barato de tu lista evita que los títulos se facturen a la tarifa del modelo con el que estés conversando.
Por qué poner un gateway detrás de cualquiera de los dos
Ambos clientes pueden mantener varios proveedores a la vez, por lo que un gateway no es obligatorio. Lo que cambia es cuántas cosas configuras y cuántas facturas recibes: una URL base y una clave en lugar de una cuenta, una credencial y una relación de facturación por cada familia de modelos. Añadir una familia después se convierte en incluir un ID de modelo en una lista, en lugar de crear una nueva integración.
Kunavo ofrece la superficie compatible con OpenAI que hablan ambos clientes, por lo que la URL base anterior es todo lo que necesita cualquiera de los dos. Los detalles de configuración de cada cliente están en el centro de integraciones, la referencia del endpoint está en chat completions y la guía de API compatible con OpenAI explica qué incluye y qué no incluye “compatible”.
Preguntas frecuentes
¿Cuál es la diferencia entre LibreChat y Open WebUI?
Ambos son interfaces de chat autoalojadas y de código abierto que pueden comunicarse con API compatibles con OpenAI, y la diferencia está en su origen. Open WebUI se desarrolló en torno a Ollama y los modelos locales, y su README destaca el RAG local en nueve bases de datos vectoriales, RBAC granular y grupos de usuarios, un sistema de plugins con filtros, acciones, pipes y herramientas, e instalación mediante pip, Docker o Kubernetes. LibreChat se desarrolló como un clon de ChatGPT para múltiples proveedores: su README destaca la compatibilidad con proveedores concretos —Anthropic, AWS Bedrock, OpenAI, Azure OpenAI, Google, Vertex AI y la API de OpenAI Responses— además de endpoints personalizados, agentes con herramientas MCP y un intérprete de código aislado compatible con varios lenguajes.
¿Cuál es más fácil de conectar a una API personalizada compatible con OpenAI?
Open WebUI, si quieres ponerlo en marcha con un solo comando: la conexión requiere dos variables de entorno, OPENAI_API_BASE_URL y OPENAI_API_KEY, y el mismo par puede configurarse en la interfaz, en Connections, después del primer lanzamiento. LibreChat pide un archivo YAML: un endpoint personalizado es un bloque en librechat.yaml con name, apiKey, baseURL y una sección models. Hay más que escribir, pero obtienes algo a cambio: puedes nombrar el endpoint, controlar qué modelos aparecen y fijar un modelo económico para los títulos de conversación. Ninguno necesita un proxy; la documentación de LibreChat indica explícitamente que los endpoints personalizados funcionan sin uno.
¿Cuál debería elegir para un equipo?
Compara la lista de funciones de cada proyecto con tu requisito en lugar de aceptar el veredicto de una página comparativa, incluida esta. Open WebUI declara RBAC granular y grupos de usuarios, LDAP/Active Directory, SSO mediante encabezados de confianza y OAuth, y aprovisionamiento SCIM 2.0. LibreChat declara autenticación multiusuario con OAuth2, LDAP e inicio de sesión por correo electrónico, además de un panel de administración para usuarios, grupos y roles. Ambos cubren el caso habitual; las diferencias importantes para una organización concreta suelen estar en los detalles del aprovisionamiento, que es donde conviene mirar primero.
¿Puede cualquiera de los dos usar Claude y GPT al mismo tiempo?
Sí, y esa es la razón principal para poner un gateway detrás de cualquiera de ellos. Ambos aceptan un endpoint compatible con OpenAI y, si ese endpoint ofrece varias familias de modelos, todas aparecen en un selector de modelos bajo una sola clave. Sin gateway, configuras cada proveedor por separado, con una cuenta y una facturación independientes para cada uno; con uno, añadir una familia de modelos consiste en incluir un ID de modelo en una lista en lugar de crear una nueva integración.
¿Necesito Ollama para usar Open WebUI?
No. Open WebUI admite Ollama y API compatibles con OpenAI, y su propio README describe cómo apuntar la URL de la API a proveedores alojados para combinarlos. Ejecutarlo únicamente contra un endpoint alojado es una configuración compatible, no una solución provisional; esto importa si quieres la interfaz sin una máquina capaz de ejecutar modelos localmente.
¿Un gateway cambia el comportamiento de alguno de los clientes?
Cambia adónde van las solicitudes y cuánto cuestan, no cómo funciona la interfaz. Ambos clientes hablan el protocolo de OpenAI con cualquier URL base que se les proporcione, por lo que funciones como RAG, agentes y RBAC son propiedades del cliente y no se ven afectadas. Lo único que debes comprobar es la lista de modelos: ambos pueden rellenar su selector mediante GET /v1/models, de modo que los modelos que ves son los que informa el endpoint y no una lista codificada.