for devs, solo goblins & their coding agents
Let the streamers pitch you.
No ad budget? Make your marketing budget a percentage. Ship a rough browser build straight from Claude Code, Codex or any MCP agent and put a pact on it: a slice of revenue for a stream, a video or a short. Streamers, YouTubers and TikTokers play it, pitch you and deliver. Nothing upfront. One streamer at a time, and their share runs 4 weeks from the minute their stream or video goes live.
what happens after submit_game
- Bouncerchecks
- CriticAI review
- Curatorhuman yes
- Liveon FanZero
0 builds in review · 0 live · 0 free for the next streamer
Hand this to your agent.
One line, pasted into Claude Code, Codex, Cursor or any coding agent that can open a URL, from your game's folder. It reads the page we wrote for it, checks the build, and is told to ask you before anything that costs you a cut.
Read https://fanzero.app/agents.md, then publish the game in this folder to FanZero.Connect it for good
MCP gives your agent the FanZero tools directly.
Codex, Cursor and the .mcp.json file read FANZERO_API_KEY when they start. The claude mcp add command copies it when you run it, so set it first (or run the command again once you have a key). VS Code asks for the key.
claude mcp add --transport http fanzero https://fanzero.app/mcp --header "Authorization: Bearer $FANZERO_API_KEY"{
"mcpServers": {
"fanzero": {
"type": "http",
"url": "https://fanzero.app/mcp",
"headers": {
"Authorization": "Bearer ${FANZERO_API_KEY}"
}
}
}
}codex mcp add fanzero --url https://fanzero.app/mcp --bearer-token-env-var FANZERO_API_KEY[mcp_servers.fanzero]
url = "https://fanzero.app/mcp"
bearer_token_env_var = "FANZERO_API_KEY"{
"mcpServers": {
"fanzero": {
"url": "https://fanzero.app/mcp",
"headers": {
"Authorization": "Bearer ${env:FANZERO_API_KEY}"
}
}
}
}{
"servers": {
"fanzero": {
"type": "http",
"url": "https://fanzero.app/mcp",
"headers": {
"Authorization": "Bearer ${input:fanzero_key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "fanzero_key",
"description": "FanZero studio API key",
"password": true
}
]
}No key yet? Your agent asks you for a studio name, then calls create_studio. Or grab one at the studio desk.
Or one click
Cursor shows this config and asks first. Set FANZERO_API_KEY in your environment: the header reads it from there.
{
"url": "https://fanzero.app/mcp",
"headers": {
"Authorization": "Bearer ${env:FANZERO_API_KEY}"
}
}VS Code shows this and asks first. Install links can't carry the key, so add the Authorization header from the VS Code tab to this entry afterwards.
{
"name": "fanzero",
"type": "http",
"url": "https://fanzero.app/mcp"
}Check that your editor shows exactly this config before you say yes.
What a pact costs you
Sponsored posts want cash before anyone has played your game. A pact flips it: you offer a share, a streamer does the work, and you owe nothing unless it goes live and the proof checks out.
Payouts happen outside FanZero for now. We track the pact, the proof link, when it went live and the window dates, so nobody has to remember who promised what.
RECEIPT · ONE PACT
What studios are offering right now
Nobody is offering this yet. Easy way to stand out.
Nobody is offering this yet. Easy way to stand out.
Nobody is offering this yet. Easy way to stand out.
Nobody is offering this yet. Easy way to stand out.
Nobody is offering this yet. Easy way to stand out.
Live from the catalog: 0 open pacts across 0 live games. Limits per pact: above 0% and up to 50% share. Every window is 4 weeks from go-live, nothing to configure. Under-promise. Streamers read the fine print.
Streamers come to you. You pick.
Streamers are your distribution, and here they apply for the job. Post the offer once. Every pitch lands with their handle, platform, follower count (self-reported), niche, a link to their channel and why their audience will care. You accept one at a time; the rest wait, and when the game is free you pick any of them.
respond_to_claimAccept or pass on every pitch. Nothing is auto-matched. Accept one and they have 30 days to go live and send proof; miss it and the game frees up for the next pitch.share_pctYour cut on the table, per pact. Above 0, up to 50% of net revenue.requirementWrite the exact deliverable: “60+ min live, game name in stream title.”min_audienceList a follower floor. It shows on the pact; you still check every pitch yourself.store_urlOptional. Already on Steam or itch.io? Link it. Sales there count during the window too.confirm_deliveryProof is a link to the VOD, video or post, plus when it went live. Their 4 weeks count from that minute, not from your click. If it doesn't check out, send it back to fix or turn it down.close_pactClose a pact any time. Deals already made keep their terms; pitches still waiting on it are passed.
Your agent can do all of this over MCP. It is told never to accept a pitch or confirm a delivery without your yes, and the server refuses both unless it sends human_approved: true. That guards against accidents, not against an agent that ignores you. Pitches and deliveries waiting on you also show up on the studio desk.
Pact activity lately
No pitches yet. Be the game they pitch for.
- pitchedstreamer
- acceptedyou
- deliveredstreamer
- activeyou
Where your game shows up
Three gates. That's the pitch.
Streamers trust this list because nothing gets on it by accident. That trust is what gets a stranger's prototype played.
- Bouncerchecks
- CriticAI review
- Curatorhuman yes
- Liveon FanZero
An instant, automated scan of your source and pitch. Network calls, external assets, poking the parent page, no canvas or input, a thin pitch, zero pacts: bounced, with notes your agent can fix. eval, popups, no touch support, a 40%+ share: just a note. Your agent can run it first with check_build; nothing is saved. Live games play in a sandboxed frame with network calls blocked.
Scores fun potential, clarity and streamability out of 100, and asks the question that matters: what's the moment that makes chat scream? Runs on Claude when the server has a key; right now it is a simple house checklist. It can send notes back. It can't reject you.
A human plays your first build before it goes live. Only a person can say no.
0 builds in review right now.
Once you're approved, every new build that clears the Bouncer and the Critic goes straight live. A patch that fails is refused and changes nothing: the live version, your pitch and your pacts stay as they were, so a streamer's window never loses its game. Fix it and send it again. The checks read your code; they don't play it, so play a patch before you ship it.
Rough is fine. Boring is not.
We list napkins, prototypes, vertical slices and alphas. If it fits these, ship it tonight:
- One index.html that runs in the browser. Single file is ideal.
- Under 8 MB, assets bundled, zero network calls.
- Playable in under 10 seconds. Title screen, then fun.
- Touch works. Lots of streamers preview on their phones.
- At least one pact. That's what streamers come for.
- Already selling on Steam or itch.io? Welcome: send a browser build or slice, pick the closest stage, and add store_url.
Wrong door? I make content →