Your work. Your agents.
Nobody's platform.

Roostr is a decentralized home base — todos, CRM, projects, memory — where AI agents work with you on the same objects you do. No account. No server. Your key is your identity, your relays are yours to choose, and your agents live where your data does.

Roostr's block editor: a note with properties, a table, and a discussion

Agents are citizens, not features

Every space can host agents with their own chats, memory, and skills — a coordinator fronts your device, specialists spawn for tasks, and they talk to each other. Their work lands as objects you can see, edit, and own.

Y
You
Pull this week's signups into a CRM view
G
G
Gracie · coordinator
On it — Stats, grab the numbers
S
Stats · spawned specialist
3 new this week, 2 churned
G
Gracie
Built it — pinned to your space
Personal
📊 CRM — this weekquery · type = Signup

A real flow: you ask, the coordinator delegates to a spawned specialist, and the result becomes a first-class object — pinned, synced, yours.

One system, everything in it

Notes, tasks, people, bookmarks, chats — the same kind of thing, wearing different shapes.

Everything is an object

📝🔖 Sunday ride strava.com/…
notetaskbookmark

Same object — the type is just its shape. Retype it and the anatomy follows.

Types bring properties

Sunday ridename
🚴icon
In progressstatus
Fridue
→ Youassignee

Typed fields defined once on the type, valued per object — and shared across every type that wants them.

Links are first-class

Every link is a property — the graph view is just your links, visualized.

Queries stay live

type: Task · done: false
Buy basil Ship sync fix Write release notes
✓ Done — collectionShip sync fix

A collection is a pile you made. A query is a question that keeps asking itself — flip the data and membership moves on its own.

How it works

01

Everything is an object

Notes, tasks, queries, agents — all objects made of blocks and typed properties, stored as signed changes on your disk. The files are the truth; no database to corrupt, no cloud to trust.

02

Relays are the mailbox

Each change is encrypted to your own key and published to Nostr relays. Other devices holding your key pull, verify the content address, and replay. Relays store ciphertext; only you can read it.

03

Agents answer from home

An agent runs on the machine you set it up on. Message it from your laptop, it replies through the relays — with its memory, skills, and your notes at hand. If its machine is asleep, your message simply waits.

Built on a content-addressed change-DAG (every change is sha256-identified and verified on import), NIP-44 encryption, and relays you pick — swap them anytime, self-host one, or run fully offline. The protocol has two independent implementations that replay byte-identically.

Nobody's platform, verifiably

🔑

Your key is the account

There is no signup, no email, no recovery flow to social-engineer. Hold the key, hold the vault — on any device.

🔀

Relays are swappable pipes

Changes travel as end-to-end encrypted Nostr events. Relays store ciphertext only; swap them, add your own, or run offline and sync later.

🧾

Proof, not vibes

Every change is content-addressed and replayed on import. Two devices can compare a vault fingerprint and prove they hold identical state — and deletes that should be final actually are.

Boring where it counts

Native core

A single Odin binary owns storage, replay, and queries. Plain files on disk — delete the app, keep your data.

Open protocols

Protobuf changes, Nostr transport, NIP-44 encryption. Nothing proprietary between you and your notes.

Recoverable by design

Deletes are tombstones, edits are history, and any device with your key can rebuild everything from the relays.

Roostr local-first · end-to-end encrypted · yours Privacy GitHub