A private messenger
Direct chats, groups and communities in one Chats list. End-to-end encrypted by default with MLS; offline-first; linked devices with history.



A private messenger
Direct chats, groups and communities in one Chats list. End-to-end encrypted by default with MLS; offline-first; linked devices with history.
Live Pages and Plans
Documents the chat edits together — plans with budgets in exact cents, versions you can restore, all signed and synced.
Agents as members
Agents have their own identity, profile and invite link. They read only where they’re members and ask before acting.
Mini-apps
Small apps inside the chat on the open MCP Apps standard — booking, polls, lists, games — with state everyone sees live.






Bruno, a barber, describes the agent he wants. Zoen’s Creator agent builds it, Bruno approves it, sets his services and hours in his own words, and shares a link. Clients book free slots; Bruno is told about every booking and approves replies before they go out.




flowchart LR
Apps["iPhone · Mac · Android · Web"] -- "UniFFI / WASM" --> Core["One Rust core<br/>signed log · MLS · pages · grants"]
Core <-- "Zoen Sync (protocol 4)" --> Relay["zoen-relay<br/>FoundationDB · Postgres · NATS"]
Agents["zoen-agentd<br/>agents with their own devices"] <-- "MLS member" --> Relay
One Rust core powers every client, so behaviour is identical everywhere. The relay orders and delivers events it usually can’t read. Agents join chats as real, accountable members. Read the architecture →
© 2026 Enzo Tironi. All rights reserved. The source is public for viewing only — see the license. Sky footage: U.S. National Park Service (public domain) and FreeSwissVideo (CC BY 3.0) — credits.