Riff listens to a conversation and maps it while you talk. Subjects open on a timeline, points land under them, and decisions get marked as done or dropped. An agent keeps reworking the map as the talk moves on. Open the same session on a laptop and a phone, and both stay in step.
How it uses Statewire
Each session is a Cloudflare Durable Object that hosts its own Statewire. The browser posts what it hears as transcript segments. The agent inside the object turns them into subjects and a timeline, writing straight into the session's state. Every open browser gets those writes as patches.
- The browser reads with one
useStatewirehook over HTTP. It sends no commands; everything it changes goes through the object's own routes. - The session's state is saved in the object's storage. After a deploy or an eviction, the object wakes up with the last snapshot and every browser reattaches on its own.