// the take
UniiChat is a self-hostable AI chat agent built on Bun that runs as one continuous conversation instead of ephemeral chat sessions — it remembers everything via a hierarchical summary tree, and can drive a shell, edit files, and even control a Mac's screen across multiple connected devices. It's for developers who want a persistent, tool-using agent they run themselves against their own Anthropic/OpenAI keys, not a hosted chatbot product.
The memory design is the real idea here: messages get summarized into a binary tree where older content collapses into broader one-line summaries but can always be 'zoomed' back open to the original text, which sidesteps the usual compaction-throws-away-the-past problem of long-running agents. Summarization runs in the background on a cheaper model as messages arrive, and the view is stable until a turn ends, which lines up well with vendor prompt caching to keep long-session costs down. It supports both Anthropic and OpenAI backends, lets multiple clients (browser, terminal, iOS) act as live views onto one server-owned chat, and can import existing Claude Code/Codex/ChatGPT history into the tree. There's also a real test suite (Memory, Server, Tools, Screen, Import, cache, crash paths) for a project this young.
The author says it outright: 'this repo is vibe-coded,' nearly all of it written and reviewed by AI agents, with an explicit 'expect bugs' warning — that's a maturity flag worth taking seriously, not boilerplate modesty. Storage is flat JSON-lines files per user under ~/.unii with no database, no migrations, and backup is literally 'back them up' — fine for one person, fragile for anything you'd call production. Multi-user scaling is a manual multi-process mode that depends on a reverse proxy correctly honoring a custom x-unii-worker header, with no detail on how chat state is partitioned across workers or what happens when one dies mid-turn. Letting the agent run a shell, edit arbitrary files, and control a Mac's screen is a serious attack surface for a service reachable from a browser tab, and there's no discussion of sandboxing or abuse protection beyond email-link sign-in. It also phones home daily by default to a third-party domain (bend-lang.com, not the project's own) with version/OS/CPU and whether the machine has ever self-hosted — disclosed, but opt-out rather than opt-in.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →