Launch HN: Onyx (YC W24) – Open-source chat UI

254 points by Weves ↗ HN
Hey HN, Chris and Yuhong here from Onyx (https://github.com/onyx-dot-app/onyx). We’re building an open-source chat that works with any LLM (proprietary + open weight) and gives these LLMs the tools they need to be useful (RAG, web search, MCP, deep research, memory, etc.).

Demo: https://youtu.be/2g4BxTZ9ztg

Two years ago, Yuhong and I had the same recurring problem. We were on growing teams and it was ridiculously difficult to find the right information across our docs, Slack, meeting notes, etc. Existing solutions required sending out our company's data, lacked customization, and frankly didn't work well. So, we started Danswer, an open-source enterprise search project built to be self-hosted and easily customized.

As the project grew, we started seeing an interesting trend—even though we were explicitly a search app, people wanted to use Danswer just to chat with LLMs. We’d hear, “the connectors, indexing, and search are great, but I’m going to start by connecting GPT-4o, Claude Sonnet 4, and Qwen to provide my team with a secure way to use them”.

Many users would add RAG, agents, and custom tools later, but much of the usage stayed ‘basic chat’. We thought: “why would people co-opt an enterprise search when other AI chat solutions exist?”

As we continued talking to users, we realized two key points:

(1) just giving a company secure access to an LLM with a great UI and simple tools is a huge part of the value add of AI

(2) providing this well is much harder than you might think and the bar is incredibly high

Consumer products like ChatGPT and Claude already provide a great experience—and chat with AI for work is something (ideally) everyone at the company uses 10+ times per day. People expect the same snappy, simple, and intuitive UX with a full feature set. Getting hundreds of small details right to take the experience from “this works” to “this feels magical” is not easy, and nothing else in the space has managed to do it.

So ~3 months ago we pivoted to Onyx, the open-source chat UI with:

- (truly) world class chat UX. Usable both by a fresh college grad who grew up with AI and an industry veteran who’s using AI tools for the first time.

- Support for all the common add-ons: RAG, connectors, web search, custom tools, MCP, assistants, deep research.

- RBAC, SSO, permission syncing, easy on-prem hosting to make it work for larger enterprises.

Through building features like deep research and code interpreter that work across model providers, we've learned a ton of non-obvious things about engineering LLMs that have been key to making Onyx work. I'd like to share two that were particularly interesting (happy to discuss more in the comments).

First, context management is one of the most difficult and important things to get right. We’ve found that LLMs really struggle to remember both system prompts and previous user messages in long conversations. Even simple instructions like “ignore sources of type X” in the system prompt are very often ignored. This is exacerbated by multiple tool calls, which can often feed in huge amounts of context. We solved this problem with a “Reminder” prompt—a short 1-3 sentence blurb injected at the end of the user message that describes the non-negotiables that the LLM must abide by. Empirically, LLMs attend most to the very end of the context window, so this placement gives the highest likelihood of adherence.

Second, we’ve needed to build an understanding of the “natural tendencies” of certain models when using tools, and build around them. For example, the GPT family of models are fine-tuned to use a python code interpreter that operates in a Jupyter notebook. Even if told explicitly, it refuses to add `print()` around the last line, since, in Jupyter, this last line is automatically...

65 comments

[ 3.0 ms ] story [ 76.4 ms ] thread
Congrats on the launch!

Can you clarify the license and if this actually meets the definition of Open Source as outlined by the OSI [1] or if this is actually just source available similar to OpenWebUI?

Specifically can / does this run without the /onyx/backend/ee and web/src/app/ee directories which are licensed under a proprietary license?

1 - https://opensource.org/licenses

Honestly surprised something like this can get funded
I was pretty excited for Onyx as a way to stand up a useful open source RAG + LLM at small scale but as of two weeks ago it was clearly full of features ticked off a list that nobody has actually tried to use. For example, you can scrape sites and upload docs but you can’t really keep track of what’s been processed within the UI or map back to the documents cleanly.

It’s nice to see an attempt at an end to end stack (for all that it seems this is “obvious” … there are not that many functional options) but wow we’ve forgotten the basis of making useful products. I’m hoping it gets enough time to bake.

This is great, the value is there. I work for a F100 company that is trying (and failing) to build this in house because every product manager fundamentally misunderstands that users just want a chat window for AI, not to make their own complicated agents. Your biggest competition in the enterprise space, Copilot, has terrible UI and we only put up with it because it has access to email, SharePoint and Teams.
> I work for a F100 company that is trying (and failing) to build this in house because every product manager fundamentally misunderstands that users just want a chat window for AI

If you're a non-tech company, why doesn't your org dictate a single model provider? How do these decisions work internally, and how to the departments consume them? (Are they consuming the tools?)

> make their own complicated agents.

Asking a non-tech employee to make an agent sounds like hell.

> we only put up with it because it has access to email, SharePoint and Teams.

Ah, that's how a third party can make money. Bake in external org-wide knowledge and enable search.

> every product manager fundamentally misunderstands that users just want a chat window for AI,

I would actually argue chat windows are terrible ui/ux for most cases and users. It does the opposite of `don't make me think`. Too much potential for user error.

Not saying there shouldn't be any LLM integration/features, just that it should be in the form of a button press or something (familiar ux), not the same chatgpt interface that all the early apps are trying to mimic for no good reason.

This is awesome and love that its open source!
A bit like mastra.ai - my goto SOTA solution for these kind of LLM flow coordinations (though more dev-focused). (yes I realise this is more user-facing)
Sorry, but why use this over oobabooga/sillytavern?

Why do we have to yet again poorly copy an oversimplified UI?

The value of local models comes from their huge amount of settings/control that they offer. Why must we throw that all away?

Yet again, the world waits for good UI/UX for pro/prosumers with AI systems. No one is learning from ComfyUI, Automatic1111, or SillyTavern. No, LM-Studio is not actually prosumer

how is this different from Librechat?
What struck me most was the requirement. I've been self-hosting librechat on a raspberry pi. I was hoping to test Onyx on it, but no way. Its requirement is 4 vCPU and 10GB RAM? I wish I can take out components that resource hungry and have only the basic so that I can serve it on a less demanding server.
> We’re building an open-source chat that works

As long as you have Pricing on your website your product is not open source in the true spirit of open sourceness. It is open code for sure but it is a business and so incentive is to run it like a business which will conflate with how the project is used by the community.

Btw, there is nothing wrong with that but let's be honest here if you get this funded (perhaps it already is) who are you going to align your mission with - the open source community or shareholders? I don't think you can do both. Especially if a strong competitor comes along that simply deploys the same version of the product. We have seen this story many times before.

Now, this is completely different from let's say Onyx being an enterprise search product where you create a community-driven version. You might say that fundamentally it is the same code but the way it is presented is different. Nobody will think this is open-source but more of "the source is available" if you want to check.

I thought perhaps it will benefit to share this prospective here if it helps at all.

Btw, I hear good things about Onyx and I have heard that some enterprises are already using it - the open-source version.

> As long as you have Pricing on your website your product is not open source in the true spirit of open sourceness

I think there can be other valid perspectives than your own.

Congrats on the launch! Every enterprise deserves to use a beautiful AI chat UI (and Onyx is a fantastic and easy to try option).
What does this do that OpenWebUI (or one of the many of other solutions) does not?
Congrats on the launch!

We are building a competing open source tool[0] with a very similar focus (strongly relying on interoperable standards like MCP; built for enterprise needs, etc.), though bootstrapping with customers rather than being VC funded. It's nice to see a competitor in the field following similar "OSS Friends" principles, while many of the other ones seem to have strong proprietary tendencies.

(Small heads up: The "view all integrations" button goes to a 404)

[0] https://erato.chat/

Aren't most of the large frontier model providers SOC 2 compliant? I think AWS Bedrock is also SOC 2 compliant. Not sure why you would need to self host anything then as you'll get turnkey secure solutions from the bigger plays
The license on this project is pretty confusing. The license at the root of the project links to backend/cc/LICENSE.md which says you need a subscription license to use the code.

Can you call it open source if you need a subscription license to run / edit the code?

why use a name, although spelled differently onyx vs onnx, that's already used and known in the ML/AI community?
Onyx?

And no one bothered to say anything to them?

What is it with these Chat apps having strange and not-real open source licenses? OpenWebUI is the same. Is there something about these chat apps that seems to make them more prone to weird and strange licenses? Just opportunist?
Do you know what's completely missing from all of these products like anything LLM and Onyx...

a mobile application that has parity on the same features that ChatGPT and Claude does...

... just because OpenAI call their product "ChatGPT" doesn't mean the term "chat" should now mean "interacting with an LLM".
Interesting product and best of luck with it.

> but I’m going to start by connecting GPT-4o, Claude Sonnet 4, and Qwen to provide my team with a secure way to use them

I did get a little giggle out of that because I've never heard anyone say that hooking up 3rd party llms to anything was any way secure.

In a landscape where every week we have a different leading model, these systems are really useful for the power users because they keep the interface and models constant and allow to switch easily using API via openrouter or naga. I have been using openwebui which is under active development but I'll give this a try.
> allow to switch easily using API via openrouter or naga

Ideally not "open"router? It's not open, and don't they charge a margin?

Have you tried LibreChat? I spun that up to great success inside an org.

Personally, I use Raycast for all my personal work

Do you let organizations white-label it so its more customized (i.e. remove the Onyx branding, preload it with their internal MCP servers / docs) and feels like their own internal chat tool?
That sidebar of past chats is where they go to be lost forever. Nobody came up with a UI that has decent search experience. It's like reddit internal search engine, but a bit worse.
I face the same problem and agree with your "search experience" remark. But it triggered something and raised this idea: just add the search bar to the top of the page instead of hiding it in the sidebar. That would solve 100% of my need to open the sidebar. Maybe show 5 most recent chats under the search bar when I click it before typing anything.
I am wishing I had tags for past chats, and the sections of them. Would be much faster to find with searching and other small ui tweaks.