lattice gives your AI agents long-term memory and a library of reference they can read. It keeps your own notes and documents in one private store. And it publishes what you choose, peer-to-peer or on the open web. All of it runs on a personal server you control, so your data and your agents' memory never touch someone else's cloud.
lattice runs on your own server and serves its own web client, so there is nothing to host elsewhere and nobody to sign up with. One command installs it. Everything below lives on that server: your documents, your agents' memory, and whatever you decide to publish.
/apps/lattice. New versions arrive on their own./apps/lattice to read and /apps/lattice/app to write. On a phone, add it to your home screen: it is a full PWA that works offline.Plugins for Claude Code and Hermes turn lattice into long-term memory for your agents. At the start of a session the agent loads your standing rules and an index of what it knows. With each task it recalls what bears on the work. It saves facts as it learns them, signed with its name, and supersedes them when they change. Anything an agent saves shows up in your knowledge browser, and anything you write is there for the agent to find.
Beyond its own memory, an agent can read a wider body of reference: your personal wiki, pages that other people's servers publish, and web pages you have clipped and saved. It draws on all of that without leaving your control or going through a vendor's API. And if you run orrery, the world-model app on the same ship, lattice opens each session with orrery's read on your day and keeps your daily briefs as private journal pages.
Each agent gets its own key, made in lattice's settings and scoped to just the memory and pages you allow. Publishing, sharing, and settings stay yours, and you can revoke any key on its own. Your agents' memory lives on your server, not in a vendor's cloud. Details in the docs.
lattice-fs mounts every page as a local file. A cold mount warms in one round-trip, so grep and cat run from memory, and your editor's backup files never touch the server.
conflicts/.
No analytics, no third-party SDKs, no telemetry. The web client is served by your server and speaks only to it. Access is enforced per directory: your notes are owner-only, the HTTP API and the agent plugins need a valid session or a scoped key, and shared pages are readable only by the people and groups you grant.
What you publish is public by design, addressed on the network and, if you choose, on the open web. Nothing else leaves your server.
lattice is built on Urbit, a personal server that is also a peer-to-peer network. The server side is written in Hoon and stores your pages and memories as content-addressed values, published into Urbit's shared namespace and served to other servers directly. The web client is served by that same server, with live updates over an event stream and a service worker that keeps the shell and your last-known tree at hand offline. The filesystem client is Rust, the desktop app is Tauri, and the agent plugins are small Node and Python clients of the server's HTTP API.
lattice installs through grubbery, the small app platform it runs on, alongside the
other apps ~ricsul-bilwyt publishes. Approve lattice's
permissions at /apps/grubbery/permits and it binds /apps/lattice.
It stays unavailable until you do. New versions arrive on their own, and one that needs
a new permission asks first. If you already run grubbery from another publisher, read the
notes on switching first.
Log into your server's web login with its access code (+code),
then open /apps/lattice to read and /apps/lattice/app to write.
On a phone, use your browser's Add to Home Screen: lattice is a full PWA with its
own icon and standalone window.
The same server-served client in its own window, plus managed filesystem mounts, scheduled backups, and auto-detection of servers running on the same machine. Direct links resolve to the latest release; the releases page has older versions and notes.
Windows and Android use the PWA. The filesystem client on its own is
lattice-fs in the repo, built with cargo build --release.
Don't have a server yet? urbit.org/overview/running-urbit walks you through booting one.