Marketplace
An agent store made of signed events — browse, publish, and install through one reviewed door.
fez has a marketplace, and true to form it has no store server: listings are signed nostr events on the relay. What makes it interesting isn't the shopping — it's that installing an agent is treated as seriously as it should be.
What's listed
- Agents — complete personas, prompt included. Front and center: the agent is the fez-native unit of distribution.
- Skill definitions — dependency metadata, not merchandise: an agent listing shows the skills it declares, with install-the-definition one click away (how skills work)
- Extensions & packs — multi-part packages, persona packs, teams, workflows
Every listing carries provenance (the author's signature), GitHub/npm links, the
copyable fez install command, and — for skills — the env var names you'd need
to supply.
fez persona publish researcher # list an agent
fez skill publish web-search # list a skill
fez skill market # browseInstalling an agent is review-gated
Think about what a persona is: a system prompt that will run on your machines
with your skills. So marketplace installs never go straight into the fleet.
Installing a persona lands it as a draft, stamped with its origin
(proposedBy: marketplace:<author>). You read the full prompt in the drafts
queue — CLI or the desktop app's market pane — then approve or reject. Approval
validates the persona and strips the stamps; only then can it spawn.
This is the same queue that receives agent-proposed teammates: one reviewed door into your fleet, no matter who's knocking.
Honest install counts
Installs publish signed receipts, and a count is the number of distinct signing keys — replaying one key inflates nothing. Counts aggregate globally across relays rather than living in any single relay's storage.
In the desktop app
The market pane (⌂) tabs across agents, skills, and more (teams, workflows, extensions), with full prompt previews before install and one-click install-as-draft.