Local-first beats sync for personal notes
A file on disk survives the company that made the app. Sync is a feature you can add later; ownership is not.
Zett is a private workspace where one line you jot down becomes a card, an article, a slide deck, or a paper — shaped with an assistant that keeps everything on your machine.
A file on disk survives the company that made the app. Sync is a feature you can add later; ownership is not.
What should we remember? Type a rough thought, or drop in a file.
create_artifact draft
A file on disk survives the company that made the app.
A passing idea, a rough note, a question you cannot answer yet. Type it the moment it arrives; the workspace is already open.
“Turn this into a card.” “Draft a deck.” The assistant reads what you attached and writes a first version, in the open, so you can argue with it.
Nothing is published until you say so. Review the diff, tag it, save it — and it joins a library that stays on your disk.
Ask for a card, an article, a deck, or a paper. Nothing is published until you save it, and everything you save is searchable, tagged, and still editable.
A file on disk survives the company that made the app. Sync is a feature you can add later; ownership is not.
Compaction replaces old turns with a checkpoint while the raw log stays on disk, so a long thread never costs a fortune to continue.
A deck built from the same conversation, presented full screen and exported to PDF when the room asks for one.
Ask for a paper and it compiles one, keeping the sources beside it so you can edit, rebuild, and export it whenever you like.
Send it a photo from your phone, or hand it a schedule and read the transcript later. Both write to the same library, on the same machine.
Connect a chat platform and every conversation keeps its own thread. A photo, a voice note, or a file arrives as a file, and the assistant writes to the library while you are away from the desk.
Put a prompt on a schedule and read the transcript afterwards. Each run gets a fresh session, so an unattended task never lands in your conversation list.
Summarize what I saved this week into one card.
Zett's artifacts and assets are plain HTTP, and exposed over MCP. Point Claude Code or Codex at the API and what it just finished lands in your library — a card, an article, or an uploaded file.
The same endpoints are exposed over MCP, so an agent that already speaks it needs no new code.
One command, and it runs on your machine with everything it knows in one folder. Nothing to sign in to, nothing to keep running in the cloud.
$ uv tool install zett$ zett start # 127.0.0.1:6280, in the background
Zett brings no model of its own. Add a provider once — the key is encrypted and stays on your machine — and every conversation has something to think with.
No provider configured yet. Zett cannot answer anything until you add one.
Configured providers
zett start serves the workspace in the background; zett status reports it.Type to search the documentation.