remix-upload-game
Upload and validate HTML game code for Remix. Use when creating or updating a draft version through the CLI, MCP tools, or direct REST calls.
Best use case
remix-upload-game is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Upload and validate HTML game code for Remix. Use when creating or updating a draft version through the CLI, MCP tools, or direct REST calls.
Teams using remix-upload-game should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/remix-upload-game/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How remix-upload-game Compares
| Feature / Agent | remix-upload-game | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Upload and validate HTML game code for Remix. Use when creating or updating a draft version through the CLI, MCP tools, or direct REST calls.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Upload Game Workflow
## Overview
This skill guides you through uploading a completed HTML game to the Remix
platform. It covers creating the game entry (if needed) and uploading the code.
## Prerequisites
- A completed HTML game file, ready for upload.
- Prefer the official CLI for terminal workflows:
- `remix login`
- `remix games create --name "..."`
- `remix games versions code update --code-path ./game.html`
## Steps
### 1. Locate the Game File
Find the path to the HTML file to upload. It should be a single self-contained
HTML document with inline CSS and JS.
### 2. Validate
Read the HTML file and verify:
1. Has `<!DOCTYPE html>` declaration
2. Has `<meta name="viewport" ...>` tag
3. Has RemixSDK script tag: `<script src="https://cdn.jsdelivr.net/npm/@remix-gg/sdk@latest/dist/index.min.js"></script>`
4. No legacy `@farcade/game-sdk` script tag
5. Calls `singlePlayer.actions.gameOver(` OR `multiplayer.actions.gameOver(` (not both)
6. Registers `.onPlayAgain(` callback
7. Registers `.onToggleMute(` callback
8. No `localStorage` or `sessionStorage` usage
9. No inline event handlers (`onclick=`, `onload=`, etc.)
Fix any reported issues before proceeding.
### 3. Create the Game (if needed)
First, use `gameId` and `versionId` from task context or prior tool results
when available.
Otherwise, check the nearest `.remix-cli.json`. Older projects may still use
`.remix-mcp.json`. If either already contains `gameId` and `versionId`, skip
creation and proceed to step 4.
If none of those sources provide IDs, create the game via CLI or REST.
CLI:
```bash
remix games create --name "My Game"
```
REST:
```
POST https://api.remix.gg/v1/games
Authorization: Bearer $REMIX_API_KEY
Content-Type: application/json
{ "name": "<game name>" }
```
The response returns the **game ID** and **version ID**.
After creation succeeds, write the returned IDs to `.remix-cli.json`:
```json
{
"gameId": "<returned game ID>",
"versionId": "<returned version ID>",
"name": "<game name>"
}
```
### 4. Upload the Code
Read `gameId` and `versionId` from task context, prior tool results,
`.remix-cli.json`, or legacy `.remix-mcp.json`.
Preferred CLI path:
```bash
remix games versions code update --code-path ./game.html
remix games versions validate get
remix games launch-readiness get
```
**Read the HTML file** and pass its content as the `code` field in the request body:
```
POST https://api.remix.gg/v1/games/{gameId}/versions/{versionId}/code
Authorization: Bearer $REMIX_API_KEY
Content-Type: application/json
{ "code": "<HTML file contents>" }
```
The response returns a confirmation with the game ID, version ID, and thread ID.
## Tips
- Always validate before uploading to catch issues early.
- You can re-upload code to the same version as many times as needed.
- `remix games versions status get` and `remix games versions thread get` are useful post-upload inspection commands.
- If you need a fresh draft, create a new game entry rather than inventing a version-create route.Related Skills
remix-upload-asset
Upload images, audio, or 3D models as hosted game assets
remix-submission-rules
Validation and publish constraints for Remix game submissions
remix-shop-items
Create, update, delete, and integrate Remix shop items. Use when a game needs Bits items, consumables, one-time unlocks, tier unlocks, store icons, or purchase handling in @remix-gg/sdk code.
remix-save-game
Add save and load game state functionality via RemixSDK
remix-rest-snippets
REST client snippets for Remix agent publishing
remix-open-game
Open a game in the Remix Studio browser for preview and editing
remix-multiplayer
Enable multiplayer support for a Remix game
remix-game-sdk
Reference for the current @remix-gg/sdk runtime. Use when generating or repairing Remix game code, shop item integrations, save-state flows, multiplayer hooks, or host-safe mobile UI behavior.
remix-game-creation
Create a new game draft via the Remix API
remix-game-best-practices
Mobile-first game creation best practices for Remix
remix-cli
Use the official Remix CLI for authentication, config inspection, game creation, uploads, and analytics. Trigger this skill when a task involves `remix login`, `remix whoami`, `.remix-cli.json`, `REMIX_API_KEY`, or terminal-based game management on Remix.
remix-api-reference
OpenAPI-first endpoint reference for Remix game publishing REST routes