Nully

Nully

A fast, private, self-hostable AI chat client for OpenRouter

Open Source
4.6 (8 reviews)

Gallery

About Nully

Nully is a fast, private, self-hostable chat client for OpenRouter that keeps the whole experience deliberately small. You bring your own OpenRouter API key, pick from the hundreds of models OpenRouter exposes, and start chatting, with no account to create and nothing to sign up for. It's open source under the MIT license, and the pitch is everything you need and nothing you don't, a plain chat app that stays out of the way instead of piling on features you'll never touch.

The privacy story is the core of it. When you send a message, it goes straight from your browser to OpenRouter and the model provider you picked, and it never passes through a Nully server. Your chat history, settings, and API key live on your device rather than in someone else's database, and the page is locked down so your key can only ever be sent to OpenRouter. There's an optional toggle that limits your chats to providers who promise not to retain your data, for anyone who wants an extra guarantee on top of that.

For a small app it covers the essentials well. You can switch between models from every major provider through the single OpenRouter connection, adjust how deeply a model reasons, and route for speed or price. Replies stream token by token the moment the model starts writing, and the app stays quick even in long threads. It handles attachments, so you can send images, PDFs, and other files, and models can search the web and read links you paste. History is portable, so you can export your chats to a file and bring them back later, with light and dark themes and solid behaviour on a phone.

Nully makes a point of being light. The team publishes a benchmark taken with Chrome DevTools that puts its largest contentful paint at around two tenths of a second against several seconds for some hosted rivals, its total resources at roughly 210 kilobytes against many megabytes elsewhere, and its peak memory under a megabyte where others sit in the tens. Numbers like that come from being one small program with no database and no build step, which is a very different shape from the heavy web apps most chat front ends have become.

Self-hosting is meant to take about a minute. You clone the repository and run it with Go using a single command, or build a small, locked-down Docker container and run it on a port of your choice. There's no database to provision and no build pipeline to babysit, just one binary. If you'd rather not host anything, the same app runs at nully.chat as a hosted instance, and because history and keys stay client-side, using the hosted copy doesn't hand your data to anyone either.

It suits people who want a clean, private front end for OpenRouter without the weight of a big platform, whether that's a developer who likes owning their tools, a privacy-minded user who doesn't want conversations sitting on a vendor's servers, or anyone tired of chat apps that load megabytes of script before they can type. Because it's a single small binary, it's also easy to drop onto a home server or a cheap box and reach from a phone. The tradeoff is that it's OpenRouter only, so it's a companion to that service rather than a standalone provider.

Part of what makes it feel different is what it chooses to leave out. There's no sprawling settings panel, no plugin marketplace, no team workspace, and no telemetry quietly reporting back, which is exactly why the whole thing loads in a fraction of the time a full platform takes. The features it does keep are the ones people actually reach for in a chat client, switching models, sending a file, searching the web, and keeping a readable history, and each of those is wired to be quick rather than clever. For anyone who has watched a mainstream chat app grow heavier with every release, that restraint is the appeal, since a tool that does less can also be one you fully understand and trust.

Because the source is open and the footprint is tiny, it's also an easy project to audit or fork. A developer can read exactly how the key is handled, confirm that nothing is sent anywhere it shouldn't be, and change whatever they like before deploying their own copy. That combination of a small codebase, a permissive license, and a client-side privacy model is the whole pitch, a chat client you can own outright rather than rent.

It's open source and free. The code is MIT licensed on GitHub, you can self-host it at no cost, and the hosted version is free to use as well. The one thing you do pay for is model usage itself, which you settle with OpenRouter through your own API key, so Nully never sits between you and your bill. For anyone who wants a lightweight, auditable chat client they can read the source of and run themselves, it's an easy thing to try, and the whole project is small enough to understand in an afternoon.

Key Features

  • Bring-your-own OpenRouter API key
  • Hundreds of models from one app
  • On-device history with no account
  • Fast token-by-token streaming
  • Attachments plus in-chat web search
  • Self-host as a Go binary or container

Pros & Cons

What we like

  • MIT-licensed and fully self-hostable
  • Keys and history stay on your device
  • One tiny binary, no database or build step
  • Much lighter and faster than big chat UIs

Room for improvement

  • OpenRouter only, no direct provider keys
  • You pay OpenRouter for model usage separately
  • No hosted account or cross-device sync
  • Bare-bones by design, few extras

Frequently Asked Questions

What is Nully?
Nully is a fast, private, self-hostable chat app for OpenRouter. You bring your own OpenRouter API key, pick from hundreds of models, and chat with no account, while your history and settings stay on your device instead of on a server.
Is Nully free?
Yes. Nully is open source under the MIT license, free to self-host, and free to use at the hosted nully.chat instance. The only thing you pay for is model usage, which you settle directly with OpenRouter through your own API key.
Which models does Nully support?
It works with any model available on OpenRouter, which spans hundreds of models across every major provider. Messages go from your browser to OpenRouter and the provider you chose, never through a Nully server, and you can route for speed or price.
Can I self-host Nully?
Yes, and it's built for it. You clone the GitHub repository and run it with Go in one command, or build a small Docker container. There's no database and no build step, just one small binary, so setup takes about a minute.

Best For

Chatting with many models through one OpenRouter keySelf-hosting a private chat client on your own serverKeeping conversation history off third-party serversRunning a lightweight chat UI on a phone or old laptop

Featured in

Alternatives to Nully

View all

Reviews (8)

I
Isabella Silva

Finally something that fits

Have been running Nully for a while, here is where I land. Where it really wins is hundreds of models from one app. Easy yes for anyone weighing the same trade offs.

3/23/2026 14 found this helpful
R
Riley Fischer Verified

Recommended without reservation

Nully solves a real problem for me without making a fuss about it. The hundreds of models from one app is more useful than I expected. The core workflow is smooth once you are set up. Mostly using it for running a lightweight chat ui on a phone or old laptop.

7/6/2026 12 found this helpful
I
Ingrid Esposito

It just works

Hadn't planned on switching, but Nully was hard to ignore. What stands out is how it handles one tiny binary, no database or build step. Recommending it to people in a similar spot.

5/30/2026 6 found this helpful
N
Nadia Nair

Recommended without reservation

Found Nully on a Show HN thread and I am glad I clicked. Their take on on-device history with no account is genuinely good. Setup was painless and I was productive the same day. Mostly using it for running a lightweight chat ui on a phone or old laptop. Easy yes for anyone weighing the same trade offs.

5/18/2026 3 found this helpful
F
Freya Gupta

Worth a look

Three months of Nully later, here is what holds up. Got real value out of self-host as a go binary or container. It earns its place in my stack.

4/15/2026 2 found this helpful
W
William Ferrari Verified

Pulled its weight from week one

Nully has quietly become part of my daily flow. Support actually answered when I had a question, which surprised me. The defaults are sensible, so I was not fighting settings on day one. It earns its place in my stack.

5/28/2026 1 found this helpful
M
Mateo Larsen Verified

Pulled its weight from week one

Came to Nully after getting frustrated with what I had before. What stands out is how little babysitting it needs. Worth it for what I get out of it.

6/4/2026
P
Priya Larsen Verified

Solid daily driver

Tried Nully on a side project first, then rolled it out everywhere. Their take on keys and history stay on your device is genuinely good. Easy yes for anyone weighing the same trade offs.

3/19/2026