One conversation.
Every device.
Your bots, your memory, and your thread live on the server — not in a browser tab. Start a chat on your phone walking the dogs. Pick it up on the laptop. Finish it from the terminal. Same bot. Same context. No “new chat” button.
The thread doesn’t live in the browser.
Every chat app you’ve used keeps state in the page. Close the tab and it’s gone. BawtHub flips that: the bot, the memory, the messages, and the work-in-progress all live on the server. The surface — phone, desktop, terminal, voice — is just a window onto it.
Out with the dogs. 📱 mobile
“Hey loopy, did the overnight backup finish?” Voice in, voice back. The phone is just a microphone and a speaker — everything else is happening on the server.
At the desk. 💻 desktop
Open the browser. The thread from the dog walk is sitting there, mid-conversation. Loopy already pulled the logs while you were on the trail — the tool calls are rendered inline. You ask follow-up questions and start an actual deploy.
Back to the terminal. ⌨️ cli
llm -b loopy "ship it" — same thread, same memory, same bot. No copy-paste, no logging in again. The CLI was the original surface; everything else was added on top.
On the couch. 🗣 voice
“Did vex finish the security scan?” The phone’s locked face-down. The home speaker answers. The conversation history shows up tomorrow morning on every surface.
People you go back to.
Each bawt has a name, a personality, a job, and a memory of your past conversations. You don’t pick a model — you pick a bot. They’re persistent the moment you save them.
The everyday bawt. Deploys, infrastructure pokes, scheduled jobs, the long thread you keep coming back to.
Owns the secrets. Runs external scans. Tighter tool permissions than the rest. Strict and quiet.
Reads diffs without mercy. The default reviewer on big merges. Has opinions.
The visual one. Animations, avatar lip-sync, UI polish, motion. This page got a once-over from Caid.
No tools. No memory. Fast model. For one-off questions and drafts. Cheap and disposable.
Spin up a new persona in the admin UI. Pick a model, a voice, what they can do, what they remember.
Where you watch them work.
When a bot runs a command, edits a file, scans your network, or messages another bot — you see it. Every action is its own component. Diffs, parsed commands, MCP calls, SSH targets. Skimmable, foldable, and the same on every screen.
b3a9c1f, snark pushed 2h ago. vex’s scan came back clean at 06:12 — one note about a dns ttl. want me to ping vex on that?b3a9c1f…You’re not starting over.
Most AI tools treat every conversation as a blank slate. BawtHub treats each bot as a continuous entity that lives on your server, follows you across devices, and remembers what you were doing.
Everywhere else
- × “New chat” resets context. You re-explain the project every session.
- × Web, mobile, and CLI are different products. Threads don’t follow you.
- × You’re locked to one model per app. Switching vendors means switching tools.
- × Agents can’t coordinate. You copy-paste between them.
BawtHub
- ✓ Bots remember. Loopy knows last week’s deploy. Snark knows your codebase.
- ✓ Mobile, desktop, CLI, and voice all hit the same thread. Pick up where you left off, anywhere.
- ✓ Any model behind one front door. Swap per-bot. Local models, hosted models, mix and match.
- ✓ Bots message each other. Loopy pings vex. Snark hands a refactor to caid. You watch.
How it stays in one place.
Four pieces make the seamless-switching trick work. Each is mostly invisible until you need to peek behind the curtain — and the architecture site has the full tour.
Memory that follows you
The thread, the bot’s recollection of you, the facts you’ve taught it — all stored once, available to every surface. Vector-indexed for fast recall.
pgvector · 5 layers Read moreOne front door
Local models, hosted models, agent SDKs — they all sit behind the same API. Pick the model per bot, swap any time. Mobile, desktop, CLI hit identical endpoints.
OpenAI-compatible · streaming Read moreVoice everywhere
Low-latency speech in, speech out, real-time avatar lip-sync. Talk to a bawt from the home speaker; the typed transcript shows up on every other surface.
STT · TTS · realtime ws Read moreAgents that finish work
Drop a task title. An agent expands it into a plan, hands it to the right bot, streams progress to the dashboard, and waits for your sign-off.
plan · dispatch · review Read moreYou stop thinking “let me start a chat about this.” You think “let me ask loopy.” The bot is the surface. The device is just whatever’s nearest.
Two ways to keep going.
How it started →
From llm "what’s up" — a single CLI command — to a multi-bot platform with voice, memory, and an agent task pipeline. The eras, the wrong turns, the breakthroughs.
How it’s built →
Every layer, every subsystem, every decision. Real code references audited against the live repos. For engineers, curious nerds, and future-me.