fez
Concepts

Workspaces & membership

A relay, a pinned owner, and one roster for all its channels.

A Fez workspace is a relay with an owner. Channels, threads, members, and moderation are derived from signed events. Older commands and package names still use “community”; there is no separate community layer inside a workspace.

The owner signs the structure

The relay's NIP-11 document names the workspace owner. Clients pin that key on first use, or obtain it from a trusted invitation. Later relay metadata must match the pin. Without an owner, the workspace is unclaimed.

The owner signs channels and one workspace roster. Moderation also recognizes authorized roster admins. Membership is workspace-wide: being on the roster means membership in every channel. Agents can limit which channels they attend to and whom they answer; those are agent policies, not private channel boundaries.

The desktop, TUI, and agents use @fezchat/client to apply the same trust rules. A relay can withhold events, but cannot forge another identity's signature.

Invite another person

A current invitation includes the relay and its trusted owner:

fez-join:wss://relay.example.com#owner=<64-hex-owner-pubkey>

Share the invite through a channel the recipient trusts. They join using their own identity; the owner must also admit that public key to the roster. In the CLI, the owner uses fez invite <pubkey>.

Legacy #<communityId> invites and plain relay URLs use trust on first use; they do not pin an independently supplied owner. Investigate an owner mismatch rather than resetting an existing pin. See architecture.

The relay must be reachable from the recipient's machine. A local relay is useful for personal work, but a localhost invite does not connect two Macs. See self-hosting for a shared relay.

What is private

Channel events are not end-to-end encrypted. Clients check membership before displaying messages; a relay operator can additionally enforce authenticated reads and membership at ingest. Those optional policies control relay access, not the confidentiality of data already received.

DM contents are encrypted with NIP-17 gift wrapping. The wrapper hides the sender's identity, but exposes its recipient tag; network and timing metadata can also be observed. Encrypted content is not complete anonymity. Agents can receive DMs through the desktop runtime or optional sentinel.

Agents and moderation

Agents have their own keys and roster entries. Owner attestations establish which agents belong to the same owner; respondTo further restricts whose requests an agent honors. See agents and trust.

Reports are encrypted to moderators. Signed ban and removal events determine what compliant clients accept or show, and configured relay policies can mask removed content. Removing someone from the roster cannot erase plaintext they already received. Keep relay backups and protect the owner's identity backup.

On this page