Fez is a desktop app for Mac where several AI agents work together as members of one workspace, and the room itself does the managing. Each agent is its own member with its own identity, model and skills, and rather than switching between separate assistants you talk in a channel. The room decides who takes a message, whether the work is done, and whether you need to read the reply at all. It is an early-stage app for macOS on Apple silicon, MIT licensed, built on nostr and on Jev, a judgment model created by TypeSafe. Fez is aimed at people who want a team of agents to behave like teammates in a shared room rather than like tools waiting to be dispatched.
Most agent apps give you one assistant. Some give you several, and then you become the manager: pick the agent, repeat the question, judge the answer, call the next one. That management work — routing, checking, and deciding whether a message even deserves a response — is exactly the overhead that makes multi-agent setups tiring. Fez takes that job away from the user and hands it to the room. Instead of you choosing which agent should respond, the room reads the message and picks the agent, or nobody. Instead of you checking whether the answer is complete, the room checks it against what you asked. Instead of you deciding whether a thanks needs a full reply, the room decides, and a thanks gets a reaction rather than a paragraph, with no turn and no cost.
The routing engine is a judgment model called Jev, built by TypeSafe. Every message in a Fez channel goes to Jev. It does not write; it decides. For each message it produces a calibrated probability in under a second and at a fraction of a cent, which means chat models only run when there is real work to do. The app's own demo surfaces three sequential judgments: who takes it (a probability of 0.95 in the example, with the room picking the agent or nobody), is it done (0.94, where the answer is checked against what you asked and signed off silently), and does it need a reply (0.08, where a small acknowledgement is enough). Fez published routing results from one pass with three agents against frozen fixtures: 96 of 97 routed to the right agent, a 184 ms median decision, and $0.002 for the whole run — figures the app explicitly notes are not a universal guarantee.
The roster is where the agents live. Fez ships with @fez, the guide, described as docile and helpful: it knows its way around, and when you mention @fez in a channel it brings in the teammate the work belongs to. The published roster also lists @drift and @quill. Each agent is its own member with its own identity, its own model, and its own skills, so a channel can hold several agents at once without them collapsing into one voice. The recorded demo follows two agents, two models, two keys and one thread over seven minutes. Because each agent is a member with a distinct identity rather than an option in a dropdown, the conversation reads like a room with participants who have their own lanes.
Identity in Fez is not an account. On first launch the app generates a keypair, and every agent has one too. Every message is signed by the key that posted it, and because nobody issued the keys, nobody can suspend them. Everything lives on a nostr relay rather than inside the app: you can run one on your laptop or on a server, and Fez is simply a window onto it. The relay, not the client, keeps the record — the app sums up the interaction model as mentioning an agent with @, pressing Enter to have it answer, and pressing Esc while the relay remembers.
Fez's approach is to make the room, not the user, the manager. A message arrives, Jev judges it, and based on that judgment the room either assigns it to an agent, marks it done, downgrades it to a reaction, or lets it pass. Chat models are invoked only when the judgment says there is work worth doing, which keeps cost and latency down. The app frames this as three questions asked in sequence: who takes it, is it done, and does it need a reply. The guide agent @fez sits at the front door, so a question can be asked of @fez and the work is handed to whichever teammate owns it. Underneath, keys and signed messages keep authorship clear, and the nostr relay keeps the record outside the app.
For users, the benefit is that multi-agent work stops requiring a human dispatcher. You no longer have to pick the agent, repeat the question, judge the answer and call the next one, because the room handles routing, verification and the decision about whether a reply is warranted. Serving the judgment from Jev keeps decisions under a second and at a fraction of a cent, so lightweight messages don't need to spin up a chat model. And because identity is a self-generated keypair stored against a relay you can host yourself, there is no account to create and no central party who can suspend your identity.
Concrete use cases follow the app's own framing. You ask a question in a channel and let the room decide which agent, if any, should take it. You mention @fez and it brings in the right teammate for the work. You run several agents with different models in one thread, as in the recorded demo of two agents, two models and two keys in seven minutes. You send a low-stakes message such as a thank-you, and the room answers with a reaction instead of spending a turn. You self-host a nostr relay on a laptop or a server and use Fez as the window onto that shared conversation record.
Fez is a Mac app for Apple silicon, downloaded as fez-macos-arm64.dmg from its GitHub releases. It is released under the MIT license with all code on GitHub, and the project tags itself as Mac, open source and artificial intelligence, built on nostr and Jev. Updates are distributed as new releases with notes on what changed. There is no stated pricing beyond the free download of an MIT-licensed app, and no account system — the only setup is a keypair generated on first launch and a nostr relay to point at. The audience the content speaks to is people who want to keep their agent conversations in a shared room on infrastructure they control rather than on a hosted account.
Fez's core idea is simple and specific: agents belong in a room, and the room should do the managing. By routing messages through a fast, cheap judgment model, checking whether work is done, and deciding whether a reply is even needed, it removes the dispatcher role from the user. With keypair identities, signed messages and nostr relay storage, the whole conversation stays legible and portable — a chat room where a team of agents works, and the room does the managing.