Back to guides
Compare·September 21, 2026·11 min read

LobeChat vs Open WebUI — the rename, the licences, and which one to self-host

LobeChat is a retired name — the repository is lobehub/lobehub now, and 2.0 deleted the no-database mode that made these two comparable to install.

Last reviewed on .

Open WebUI is the lighter deployment and the safer default; LobeHub — the product formerly called LobeChat — is the one to pick when you want per-user API keys, an Anthropic-protocol base URL, or its agent and plugin surface, and you are willing to run a PostgreSQL instance to get them. That is the whole decision, and the reason it is not closer is that LobeHub 2.0 deleted the no-database mode that used to make the two comparable to install.

First, the name. LobeChat is a retired product name. The repository lobehub/lobe-chat now resolves to lobehub/lobehub through GitHub's rename redirect, and the current README does not contain the string "LobeChat" anywhere. The domain lobechat.com still resolves and redirects to app.lobehub.com. The repository is active, not archived: last push September 21, 2026, 82,713 stars, latest stable release v2.2.18 published September 20, 2026. Read that release number from the API rather than the Releases page, which is dominated by v0.0.0-nightly.* prereleases. Open WebUI is likewise active — last push September 21, 2026, 152,671 stars, latest stable release v0.11.3 published August 31, 2026. Star counts and push dates move daily; these were read from the GitHub API on September 21, 2026.

Which one should you pick

Pick Open WebUI if you are one person or a small team who wants a chat UI running this afternoon, if you want retrieval over your own documents without signing up for a second API, or if the deployment has to stay a single container. Its permission model is admin-centric by design: only an admin adds a model connection, because ENABLE_DIRECT_CONNECTIONS defaults to False, which is the right default when you are paying for the tokens and do not want each user pasting their own endpoint.

Pick LobeHub if you specifically need what that admin-centric model rules out — individual users holding their own keys and base URLs, encrypted at rest under KEY_VAULTS_SECRET — or if you want the Anthropic SDK shape rather than chat completions, or if you are buying into its agent and plugin direction. Weigh the repositioning too: LobeHub's repository description now calls it "your Chief Agent Operator, organizing your agents into 7×24 operations", while Open WebUI's still reads "User-friendly AI Interface (Supports Ollama, OpenAI API, ...)" — both read September 21, 2026. If you came looking for the 2024 chat app, that difference is the thing to check first.

The costs of that choice, in order of how much they will actually bother you: deployment (one container versus a Postgres instance, five secrets and optional S3), protocol reach (LobeHub speaks Anthropic to whatever base URL you give it; Open WebUI ties its Anthropic-native handling to the api.anthropic.com hostname, with one narrower escape hatch — see below), licence shape (different paid lines, neither an OSI licence), and migration (there is no importer in either direction, so whichever you pick, picking again later costs your history).

LobeHub vs Open WebUI: what actually differs

 LobeHub (formerly LobeChat)Open WebUI
Minimum self-hostPostgreSQL 17 with pgvector and pg_search, then the app container on port 3210One container plus a named volume, or pip install open-webui
Secrets you must supplyAUTH_SECRET, JWKS_KEY, KEY_VAULTS_SECRET, DATABASE_URL, APP_URLNone — WEBUI_SECRET_KEY is auto-generated and persisted on first start, though the quick start sets it explicitly
No-database modeRemoved in 2.0 — NEXT_PUBLIC_SERVICE_MODE is goneSQLite by default, no external DB needed
Custom endpoint, per userYes — keys and proxy URLs encrypted per userOff by default (ENABLE_DIRECT_CONNECTIONS is False)
Request formats for a custom providerNine, including OpenAI, Anthropic, Google, Ollama and New APIOpenAI chat completions; Anthropic-native discovery is tied to the api.anthropic.com hostname, the Messages passthrough also to a litellm-marked connection
Knowledge base / RAGNeeds Postgres, S3 and an embedding API — OpenAI text-embedding-3-small by defaultWorks out of the box with a local SentenceTransformers model
Hosted editionLobeHub Cloud, four published tiersNone — the project sells only an enterprise licence
Latest stable releasev2.2.18, September 20, 2026v0.11.3, August 31, 2026

Sources, all read September 19, 2026: LobeHub's Docker self-hosting doc, 2.0 breaking changes and knowledge-base doc; Open WebUI's quick start and environment reference. LobeHub's rendered docs site is mid-migration and several pages currently return a placeholder note, so the links above go to the MDX sources in the repository instead.

Neither licence is a plain open-source licence

This is the sharpest verifiable difference between them, and both GitHub API responses agree on it: each repository reports its licence as NOASSERTION. They draw the paid line in completely different places.

ProjectLicenceFree to doNeeds a paid licence
LobeHubLobeHub Community License, Apache-2.0 plus conditionsRun it commercially, front end and back end, without modifying the sourceDevelop and distribute a derivative work
Open WebUIOpen WebUI License, BSD-3-style plus clause 4Run it, branded, at any sizeAlter or remove the branding above fifty end users in a rolling thirty-day period

The LobeHub licence reads, verbatim and with the old name intact: "From 1.0, LobeChat is licensed under the LobeHub Community License, based on Apache License 2.0 with the following additional conditions" — then that modifying-and-distributing needs a licence from the producer. The Open WebUI licence prohibits "altering, removing, obscuring, or replacing any 'Open WebUI' branding" outside three exceptions, the first being deployments with at most fifty end users in any rolling thirty-day period. Read that carefully before quoting a summary at your legal team: the fifty-user number is tied to the branding exception only, and third-party write-ups routinely conflate it with a cap on ordinary use. Both licence texts read September 19, 2026.

What each one actually costs to run

Open WebUI has no hosted edition and no published price: its enterprise page says the software is "free to use as-is for everyone" and that you can deploy it without an enterprise agreement, and no number appears anywhere — both openwebui.com/pricing and openwebui.com/enterprise return HTTP 404 (checked September 19, 2026). So the Open WebUI column is a host plus your model tokens, full stop.

LobeHub Cloud publishes four tiers. One caveat before the table: the monthly figure on that page moves with its billing toggle, and two captures on the same day returned different monthly strings against an identical yearly string. Confirm the figure in checkout rather than trusting either capture.

LobeHub Cloud tierPublished priceMonthly creditsFile storageVector entries
Free$0.0 Month / $0.0 Year500,00010.0 MB100
Starter$118.8 Year (monthly string varies with the toggle)5,000,0001.0 GB5,000
Premium$238.8 Year (monthly string varies with the toggle)15,000,0002.0 GB10,000
Ultimate$478.8 Year (monthly string varies with the toggle)35,000,0004.0 GB20,000
Enterprise EditionNo price published — "Contact"Not statedNot statedNot stated

From lobehub.com/pricing, read September 21, 2026. The Enterprise column is the only one listing a "Self-hosted Provider" line, alongside a commercial licence, brand theming and user management. The plan table also ticks "Bring your own Provider API keys" on all four self-serve tiers including Free — but those two facts point in opposite directions about whether a custom base URL works on Cloud, and this page could not resolve that from outside a paid account. Everything below about connecting a third-party endpoint is written for self-hosted LobeHub, where every field is documented.

One more thing the pricing page never states: what a credit is worth in dollars. LobeHub says only that "LobeHub Cloud uses Credits to measure model usage (mapped to tokens)", and then publishes per-model credit rates — Claude Haiku 4.5 at 1M credits per 1M input tokens and 5M per 1M output, GPT-6 Astra and Claude Fable 5.1 at 10M / 50M, DeepSeek V4.1 Flash at 0.33M / 1.32M. Divide any one of those rows by the model vendor's own published list price and the same figure falls out: 1,000,000 credits ≈ US$1.00 of list-price tokens. Haiku 4.5 lists at $1 per 1M input and $5 per 1M output, and its credit row is 1M / 5M, which is the row this page actually checked. Treat the divisor as a hypothesis to re-test on whichever model you plan to run, against that vendor's current list price, rather than as a rate LobeHub has agreed to. That mapping is derived arithmetic, not a LobeHub statement — the credit figures are printed on the pricing page so you can redo the division and decide whether you agree, and nothing on it endorses the conversion. Do not go looking for a second opinion in the docs: lobehub.com/docs/usage/subscription/model-pricing currently renders a migration placeholder rather than a rate table, so the live pricing page is the only figure to budget against.

Connecting a third-party endpoint: the real boundary

This is where the two products stop being interchangeable. Open WebUI gives you one protocol cleanly by default; LobeHub gives you two as first-class configuration, at the price of a heavier install.

Open WebUI. Add the connection in Settings > Admin > Connections > Manage OpenAI API Connections > Add Connection, with the URL (keep the /v1), the key, and optionally a Model IDs allowlist. The environment equivalents exist, with one trap worth more than the rest of this section:

open-webui.env
# Open WebUI. One protocol, one connection, admin-scoped.
# These are ConfigVar variables: they seed the DATABASE on first boot
# and are ignored on every restart after that. Change an existing
# install in Settings > Admin > Connections, not here.
OPENAI_API_BASE_URL=https://api.kunavo.com/v1
OPENAI_API_KEY=sk-kn-...

Those variables are marked ConfigVar in the environment reference, which says that after the first launch "ConfigVar environment variables will no longer use the external environment variable values" — the value stored in the database wins. So editing OPENAI_API_BASE_URL on a container that has already booted does nothing, and that is the single most common way this setup appears broken. Change it in the admin UI instead. Two smaller notes: OPENAI_API_BASE_URLS and OPENAI_API_KEYS take several endpoints semicolon-separated, with OPENAI_API_CONFIGS as a JSON object keyed by index for per-connection enable, prefix_id and model_ids; and if an endpoint has no /models route, Open WebUI's own docs say verification fails with a 400, 401 or 403 while chat completions still work, and you type model IDs into the allowlist by hand.

The protocol ceiling, precisely. Open WebUI's Anthropic support is real, and it sits behind two different gates — which is the detail most write-ups flatten. In backend/open_webui/utils/anthropic.py, is_anthropic_url is literally return 'api.anthropic.com' in url, and that hostname test is what gates Anthropic-native model discovery and the x-api-key header swap. A gateway on another hostname gets neither. But is_anthropic_messages_passthrough returns is_anthropic_url(url) or provider == 'litellm', so the /api/v1/messages passthrough is not hostname-only: a connection marked with the litellm provider forwards your Anthropic Messages payload verbatim to {base}/messages, keeping Bearer auth rather than swapping in x-api-key. Leave that marking off and Open WebUI converts the Messages request into chat completions and converts the reply back. Either way the OpenAI-compatible connection is the simpler route for a third-party endpoint, because model discovery never follows the Anthropic path off api.anthropic.com.

LobeHub, self-hosted. Three variables for the OpenAI shape, plus a separate pair for the Anthropic shape:

lobehub.env
# LobeHub 2.x, self-hosted. All five below are still in the canary
# .env.example — ACCESS_CODE and NEXT_PUBLIC_SERVICE_MODE are not.
OPENAI_API_KEY=sk-kn-...
OPENAI_PROXY_URL=https://api.kunavo.com/v1

# LobeHub renders only models it has been told about.
# "-all,+x" means "disable everything, then enable x".
OPENAI_MODEL_LIST=-all,+claude-sonnet-4-6,+claude-haiku-4-5,+gpt-5-6-terra

# Optional, and separate: the Anthropic-protocol base URL.
# Note the missing /v1 — this one takes the origin only.
ANTHROPIC_API_KEY=sk-kn-...
ANTHROPIC_PROXY_URL=https://api.kunavo.com

Two details that cost people an evening. OPENAI_MODEL_LIST is not optional in practice — LobeHub renders only models it knows about, and its own documentation defines the syntax as + to add, - to hide, name=display_name to rename, and -all,+x for "only x". And the two proxy variables take different shapes: LobeHub warns that if "the AI returns an empty message during testing, try adding the /v1 suffix and retry" for OPENAI_PROXY_URL, while ANTHROPIC_PROXY_URL defaults to https://api.anthropic.com with no /v1 because the Anthropic SDK appends the path itself. Kunavo follows the same split — /v1 for the OpenAI shape, origin only for the Anthropic one, as the base URL doc explains. The shapes line up on paper; Kunavo has not runtime-tested either client against its endpoint, and a published setup guide is not a compatibility test.

In the UI, the same thing is a named provider: Settings > Language Model > create a provider with a Provider ID (lowercase, digits, hyphen and underscore only, immutable after creation), a Request Format chosen from OpenAI, Azure OpenAI, Anthropic, Google, Cloudflare, Qwen, Volcengine, Ollama or New API, a required Proxy URL, and an API key.

A worked monthly estimate

This is illustrative token arithmetic, not a measured bill and not a ceiling. Assume one active chat user over a month: 2,400,000 uncached input tokens and 360,000 output tokens, roughly 400 turns at 6,000 in and 900 out. Rates are live Kunavo catalog prices per million tokens.

ModelInput / output per 1MEstimated month
Claude Haiku 4.5$0.40 / $2.00$1.68
Gemini 3.8 Flash$0.525 / $2.625$2.21
GPT-5.6 Terra$0.70 / $4.20$3.19
Claude Sonnet 4.6$1.20 / $6.00$5.04

For scale in the other unit: that same assumed month, priced at LobeHub Cloud's published credit rate for Claude Haiku 4.5, consumes 4.2M credits — so it fits inside Starter's 5,000,000 monthly allowance, and would not fit inside Free's 500,000. The two columns are not the same purchase, and it would be dishonest to present them as one: a LobeHub Cloud subscription also buys the hosting, the file storage and the vector entries, none of which a token gateway provides. Compare them only if you are already committed to self-hosting and are asking what the tokens cost.

Whichever client you land on, the token side is prepaid: Kunavo's minimum top-up is $10 in prepaid credit, which is a funding minimum rather than a task fee or a subscription. The catalog amount is a billing floor, not a cap — when the upstream reports its charge, the bill is the greater of catalog cost and upstream cost times the applicable markup. Cache charges and external tools sit outside this example; see billing details. And note again that Kunavo serves no embedding models, so LobeHub's knowledge base still needs an embedding provider of its own, while Open WebUI's default runs locally on the same box.

Set one of them up

Open WebUI is the faster thing to try, and Kunavo publishes a configuration reference for it: one connection at the /v1 root with your key puts Claude, GPT and Gemini model IDs in a single picker. Start at the Open WebUI integration guide, and create a Kunavo account when you are ready to fund a key. If you are going the LobeHub route, note that the LobeChat integration doc was written for the 1.x product and its compose sample still names the frozen lobehub/lobe-chat image — the three environment variables it lists are still correct, but pull lobehub/lobehub and stand up Postgres first.

Still shortlisting? LibreChat vs Open WebUI compares the same endpoint question across a third client, AnythingLLM vs Open WebUI covers the document-first alternative, and OpenAI-compatible API explains what any of them is actually talking to.

FAQ

Is LobeChat the same thing as LobeHub?

Yes — LobeHub is what LobeChat became. The GitHub repository lobehub/lobe-chat now resolves to lobehub/lobehub through GitHub's rename redirect, and the current README does not contain the word LobeChat at all. The only place the old name survives officially is the LICENSE file, which still opens "From 1.0, LobeChat is licensed under the LobeHub Community License". The Docker image changed too: lobehub/lobe-chat was last updated on January 25, 2026 and is frozen at 1.143.3, while the live image is lobehub/lobehub. Any tutorial still telling you to pull lobehub/lobe-chat is describing the 1.x product.

Which is easier to self-host, LobeHub or Open WebUI?

Open WebUI, and the gap is structural rather than a matter of polish. Open WebUI's documented quick start is one container plus a named volume — no external database, because it ships with SQLite and a local embedding model. LobeHub 2.0 removed client-DB mode entirely, so self-hosting now requires a PostgreSQL instance first (the docs recommend PostgreSQL 17 with the pgvector and pg_search extensions, via the ParadeDB image), plus AUTH_SECRET, JWKS_KEY, KEY_VAULTS_SECRET, DATABASE_URL and APP_URL, plus S3-compatible object storage if you want file uploads. That is two services and five secrets against one container.

Can I point LobeHub or Open WebUI at a third-party OpenAI-compatible endpoint?

Both self-hosted products accept an arbitrary base URL, by different routes. Open WebUI takes one in Settings > Admin > Connections > Manage OpenAI API Connections > Add Connection, or as OPENAI_API_BASE_URL and OPENAI_API_KEY at first boot. Self-hosted LobeHub takes OPENAI_PROXY_URL alongside OPENAI_API_KEY, and needs OPENAI_MODEL_LIST as well because it renders only the models it has been told about. LobeHub also exposes ANTHROPIC_PROXY_URL for the Anthropic protocol. Whether LobeHub Cloud accepts a custom base URL on its Free, Starter, Premium or Ultimate tiers could not be verified from outside a paid account, so treat these instructions as applying to self-hosted LobeHub only.

Is Open WebUI free for commercial use?

Running it is free at any size. Open WebUI's licence is a BSD-3-style text, and its docs state plainly that the software is free to use as-is for everyone and deployable today without an enterprise agreement. In the LICENCE text the paid line is branding and nothing else: clause 4 prohibits altering, removing, obscuring or replacing any "Open WebUI" branding except where the deployment has at most fifty end users in a rolling thirty-day period, or where you hold written permission or an enterprise licence. That fifty-user threshold applies to white-labelling only, not to ordinary branded use. The enterprise page draws its own line slightly wider than the licence text does, listing enterprise-exclusive features alongside white-labelling as things an enterprise licence covers, so check that page for the specific feature you want rather than reading clause 4 as the whole boundary. No price for the enterprise licence is published anywhere — openwebui.com/pricing and openwebui.com/enterprise both return 404, and the sales form asks for your expected seat count. Any dollar figure you find on a third-party "Open WebUI pricing" page is that site's invention.

Does Open WebUI support Claude natively?

It has a native Anthropic code path, and two different gates open it. In backend/open_webui/utils/anthropic.py, is_anthropic_url returns true only when the string api.anthropic.com appears in the URL, and that hostname test is what gates Anthropic-native model discovery and the x-api-key header swap — a third-party gateway gets neither. The /api/v1/messages to /v1/messages passthrough is gated one step wider: is_anthropic_messages_passthrough returns true for that hostname or for a connection whose provider is set to litellm, so a gateway on another hostname can receive verbatim Anthropic Messages requests when its connection carries that marking, still authenticated with a Bearer token. Without it, Open WebUI translates the Messages request into chat completions and converts the reply back. The simplest route for any gateway is therefore the OpenAI-compatible one: point a single /v1 connection at it and select Claude, GPT or Gemini model IDs through that connection.

Can I migrate my chats from LobeChat to Open WebUI, or the other way?

Not with a supplied tool. Both sides export, and neither documents an importer for the other's format. LobeHub's Settings > Data Storage panel exports a dated JSON file and imports the same JSON back, and individual conversations can be downloaded as Markdown or OpenAI-format JSON; the documented migration path is 1.x local database to 2.x server database, not cross-product. Open WebUI has USER_PERMISSIONS_CHAT_EXPORT for per-conversation downloads and ENABLE_ADMIN_EXPORT for chats and database, both defaulting to true, with database export supported for SQLite only. Moving between them means writing your own converter or accepting the loss of history.

Which one needs an embedding API key for its knowledge base?

LobeHub does; Open WebUI does not. LobeHub's knowledge-base documentation lists PostgreSQL with PGVector, S3-compatible object storage and an embedding service as core components, and states that it uses OpenAI's text-embedding-3-small by default, requiring a valid OpenAI API key with access to that model. A later section lists zhipu, github, openai, bedrock and ollama as custom embedding providers. Open WebUI's RAG_EMBEDDING_ENGINE defaults to empty, meaning local SentenceTransformers with sentence-transformers/all-MiniLM-L6-v2, so retrieval works with no embedding key at all. Kunavo does not serve embedding models, so on LobeHub the embedding step runs against an outside provider or a local one regardless of which gateway answers your chat traffic.

Re-checked September 21, 2026: both GitHub repositories and their latest releases via the GitHub API, both LICENSE files, LobeHub's self-hosting, knowledge-base, migration and model-provider documentation in the canary branch, LobeHub's custom-provider form in source, lobehub.com/pricing, Docker Hub for the lobehub/lobe-chat image, Open WebUI's environment reference, quick start, enterprise and provider-connection docs, and Open WebUI's anthropic.py and main.py in main. Neither product was installed or run, so nothing here is a runtime compatibility claim. Kunavo token rates come from the live catalog; every dollar figure on this page is illustrative token arithmetic. LobeHub Cloud's credit-to-dollar rate is derived, not published, and LobeHub Cloud custom base URLs could not be verified.