← Articles · · 4 min read

a7t.chat: The AI Chat My Whole House Uses

I have run capable models on a machine in my house for almost a year, and for most of that year exactly one person could reach them: me, through a terminal. The people I live with, the ones who would actually ask an AI for a recipe or a day out, had no door in. a7t.chat is the door: a tasteful, self-hosted chat that puts my local models in front of the whole household, each person signed in with a passkey, nothing leaving our own network.

  • local-first
  • self-hosted
  • llm

The models were never the hard part. I have a machine in the corner running local models, and for almost a year it did real work for exactly one user. Me. Everyone else in the house knew the box existed and had no way to talk to it. The gap was not capability. It was a front door that a person who has never heard the word inference could walk through.

a7t.chat is that front door. You run it on one machine on your network, and everyone in your house opens it in a browser and talks to the models you already run locally. Each person signs in with a passkey, keeps their own conversations, and never touches a config file. It is MIT licensed, and you host it yourself.

What I actually built

One process on a Mac or a Linux box, pointed at whatever local model router you already run. The backend is Bun, Hono, and SQLite; the conversations live in a local file on the machine you control. Sign-in is passkeys, so there are no passwords to leak and no accounts to provision by hand. I reach it over Tailscale, which means the chat rides my own tailnet and only the people I invite can open it, from any of their devices, with no port forwarding and no VPN to babysit.

The ownership model is one decision made once, at sign-up. The first person to create an account on the private network becomes the owner. Everyone after is a plain account, and anyone who arrives through the public edge is a plain account too. That is the whole household model, decided atomically the moment someone signs in, so there is no admin panel to configure and no role to hand out later.

Who it is for

If you write software, you already have opencode, Claude Code, and a dozen agentic CLIs, and you should keep them. a7t.chat is for everyone else in your life: the partner planning a trip, the kid doing homework, the friend who wants a recipe, the guest who asks a question over dinner. It is the everyday chat for the people around you, running on the models you own instead of a cloud account you rent.

That framing decided the whole design. The chat is fast and the answers render well, because the person reading them is not going to forgive a wall of markdown or a spinner that hangs. Ask for dinner and get a recipe as a checkable shopping list with timers built into the steps. Ask for a day out and get places you can open on a real map and a checklist you can hand off. All of it has to work for someone who just wants an answer.

The part worth showing

A conversation is a link. Share it, and the other person watches it build in real time, with no login and nothing to install. Generate a recipe, send the link to whoever is cooking, and they tick off the shopping list on their phone while the timers run. The collaboration is in the chat itself, not bolted on as a separate feature, and it is the thing that turned a7t.chat from something I used into something the house uses.

Private because of where it runs

Your models, your machine, your network. The privacy is structural, a property of where the software runs. Conversations sit in a local SQLite file on a box you own. Sign-in is passkeys. Point it at the public internet and it stays a private instance: the public edge is walled, and only your own network can create accounts. Never point it at the internet at all, and it is simply yours.

Built by an agent that keeps its own hours

a7t.chat is largely built and maintained by Three-Body Agent, the autonomous dev pipeline I run on GitHub Actions. It reads the roadmap, opens pull requests, reviews them, and ships the green ones. That is a story for its own page, but it is why a solo project moves like a team, and why the roadmap keeps closing while I am doing something else.

Run your own

The repo is github.com/a7t-ai/chat, and the README takes you from a clone to a running instance pointed at your own model router. If you want a private AI for your household and would rather not assemble it yourself, I stand them up: your hardware, your models, your family on it in an afternoon. The models were never the hard part. The front door was, and now it is open.