AI News HubLIVE
In-site rewrite2 min read

Show HN: Nully – FOSS AI chat without the bloat

Nully is a lightweight, privacy-focused, self-hostable AI chat app powered by OpenRouter. It saves all chats locally, requires no account, and offers fast streaming with hundreds of models. Performance benchmarks show it loads faster and uses fewer resources than ChatGPT, OpenRouter, Gemini, and Claude. Features include attachments, web search, portable history, and a single small binary.

SourceHacker News AIAuthor: johnfahey

nully

super simple AI chat. fast, private, and self-hostable.

nully is a lightweight chat app for OpenRouter. bring your own API key, pick from hundreds of models, and start chatting. no account, no tracking, nothing to install.

start chatting view source

everything you need, nothing you don't

your data stays yours

chats are saved on your device, not in someone else's database. there is no account to create and nothing to sign up for.

any OpenRouter model

switch between hundreds of models from every major provider, adjust how deeply they think, and route for speed or price.

fast streaming

replies appear the moment the model starts writing, and the app stays quick even in long conversations.

one small binary

a single small program with no database and no build step. run it with Go, or deploy a tiny container.

attachments & web search

send images, PDFs, and other files. models can also search the web and read links you paste.

portable history

export your chats to a file and bring them back anytime. light and dark themes, and it works great on your phone.

fast where it counts

largest contentful paint lower is better

nully

0.2s

ChatGPT

0.6s

OpenRouter

2.6s

Gemini

2.7s

Claude

3.3s

resources loaded smaller is better

nully

210kB

OpenRouter

11.8MB

ChatGPT

15.1MB

Gemini

16.1MB

Claude

18.7MB

memory used smaller is better

nully

0.9MB

ChatGPT

32MB

OpenRouter

47MB

Gemini

50MB

Claude

94MB

measured with Chrome DevTools in July 2026: one load of each chat app's main page on the same machine and the same simulated connection (9 Mbps, 100 ms latency). resources loaded counts everything each page fetched, including cached files; memory used is the browser's peak over the first 5 seconds.

private by design

when you send a message, it goes straight from your browser to OpenRouter and the model provider you chose — it never passes through a nully server. your history, settings, and API key are saved on your device, and the page is locked down so your key can only ever be sent to OpenRouter. if you want an extra guarantee, one toggle limits your chats to providers that promise not to keep your data.

self-host it in a minute

git clone https://github.com/robbiegwald/nully.git cd nully go run ./cmd/nully

prefer Docker? docker build -t nully . && docker run --rm -p 4321:4321 nully gives you a small, locked-down container. or skip the setup and use the hosted app at nully.chat.