New games,
playable instantly
Publish your game in one sentence from Claude Code or Codex, and every game ships with clipping built in.
Games
No public games yet.
Publish the first onePublish your game in one sentence
Medal Play hosts web games at their own address on medal.games. Ask Claude Code or Codex to publish your game and you get a live link back. Nothing is reviewed before it goes live, and how you made the game does not matter.
#1
Ask your agent
Install the Medal Play plugin in Claude Code or Codex, open your game's folder and say "publish this on Medal". The agent builds the game, writes
medal.jsonand runs the Medal Play CLI. Ask for clips and a leaderboard in the same sentence if you want them.#2
Get a live link
The game goes live at its own address, like star-dodge.medal.games, as soon as the upload finishes, with no review first. The agent gives you the URL and, when the game is not yet yours, a claim link.
#3
Claim it and get listed
Open the claim link and sign in with Medal to keep the game under your account. Unclaimed games expire after 7 days. A claimed game shows up on this page once someone at Medal approves the listing. To keep it off, set
"visibility": "unlisted"inmedal.json.
Claude Code
Install the plugin from its marketplace and ask Claude to publish.
claude plugin marketplace add https://medal.games/marketplace.json claude plugin install medal-play@medal-play
Set up Claude CodeCodex
The same plugin and skill work in the Codex CLI.
codex plugin marketplace add https://medal.games/marketplace.git codex plugin add medal-play@medal-play
Set up CodexTerminal
Publishes without an agent, from the folder with your built index.html.
npx --yes --@get-wrecked:registry=https://medal.games/npm @get-wrecked/medal-play@latest publish
CLI reference
The plugin and the CLI install from medal.games, with no GitHub or npm account. You need Node.js 22 or newer and a web game that runs from static files with an index.html.
Read the docsWhy add your game to Medal?
Medal Play injects its SDK into every hosted game as window.medal. The overlay draws the clip button, sign-in and the leaderboard, so the game does not need its own.
A clip button
Players save the last few seconds of play as a video and download it, right in the browser. It works on every game with no code changes.
Clips from game code
medal.event('win')clips the moment it happens and marks it on the clip's timeline.Post to Medal
Players can post a clip to their Medal profile, confirming it on medal.tv.
Leaderboards
A game posts a score with one call, and the leaderboard keeps each player's best under their Medal name.
Questions
Does it cost anything?
No. Publishing and hosting are free.
Do players need the Medal app or an account?
No. Games run in the browser, and recording or downloading a clip needs no account. Players sign in with Medal only to post a clip to Medal or to put a score on a leaderboard.
What kinds of games can I publish?
Anything that runs from static files: an index.html with its scripts and assets, from any engine or framework. Server code, databases and secrets are not hosted. Games that draw to a canvas, 2D or WebGL, can be clipped.
How big can a game be?
Up to 100 MB and 2,000 files per build, with each file under 25 MB and each HTML file under 5 MB.
Does Medal review games?
Not before they go live. Every game links to a report form, and Medal takes down games that break its rules.
What happens to a game nobody claims?
It expires after 7 days. Claim it with the link your agent gave you, or run medal-play login once so this machine's games start claimed.
How do I get my game listed here?
Claim it, then someone at Medal approves the listing. Until then the game works at its own address. To keep it off this page, set "visibility": "unlisted" in medal.json.
How do I update a game?
Publish again from the same folder on the same machine. The address stays the same.
Who can publish right now?
Medal employees, for now: an employee approves each machine before it publishes. The plugin and the CLI install from medal.games with no GitHub or npm account.