remix-rest-snippets
REST client snippets for Remix agent publishing
Best use case
remix-rest-snippets is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
REST client snippets for Remix agent publishing
Teams using remix-rest-snippets 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-rest-snippets/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How remix-rest-snippets Compares
| Feature / Agent | remix-rest-snippets | 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?
REST client snippets for Remix agent publishing
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
## TypeScript (REST)
```ts
const baseUrl = 'https://api.remix.gg'
const headers = {
Authorization: `Bearer ${process.env.REMIX_API_KEY!}`,
'Content-Type': 'application/json',
}
const openApiSpec = await fetch(`${baseUrl}/docs/json`, {
method: 'GET',
headers,
}).then((r) => r.json())
const createRes = await fetch(`${baseUrl}/v1/games`, {
method: 'POST',
headers,
body: JSON.stringify({ name: 'Neon Dash' }),
})
const createJson = await createRes.json()
if (!createJson.success) throw new Error(createJson.error.message)
const gameId = createJson.data.game.id as string
const versionId = createJson.data.game.version.id as string
const updateRes = await fetch(
`${baseUrl}/v1/games/${gameId}/versions/${versionId}/code`,
{
method: 'POST',
headers,
body: JSON.stringify({ code: html }),
},
)
const updateJson = await updateRes.json()
if (!updateJson.success) throw new Error(updateJson.error.message)
const validateRes = await fetch(
`${baseUrl}/v1/games/${gameId}/versions/${versionId}/validate`,
{ method: 'GET', headers },
)
const validateJson = await validateRes.json()
if (!validateJson.success) throw new Error(validateJson.error.message)
if (!validateJson.data.valid) {
throw new Error(`Blocked: ${validateJson.data.blockers.map((b: { code: string }) => b.code).join(', ')}`)
}
const statusRes = await fetch(
`${baseUrl}/v1/games/${gameId}/versions/${versionId}/status`,
{ method: 'GET', headers },
)
const statusJson = await statusRes.json()
if (!statusJson.success) throw new Error(statusJson.error.message)
const readinessRes = await fetch(
`${baseUrl}/v1/games/${gameId}/launch-readiness?versionId=${versionId}`,
{ method: 'GET', headers },
)
const readinessJson = await readinessRes.json()
if (!readinessJson.success) throw new Error(readinessJson.error.message)
const leaderboardRes = await fetch(
`${baseUrl}/v1/games/${gameId}/analytics/leaderboard?startDate=2026-03-01&endDate=2026-03-15`,
{ method: 'GET', headers },
)
const leaderboardJson = await leaderboardRes.json()
if (!leaderboardJson.success) throw new Error(leaderboardJson.error.message)
```
## Image Generation
```ts
const imageRes = await fetch(
`${baseUrl}/v1/games/${gameId}/images/generate`,
{
method: 'POST',
headers,
body: JSON.stringify({ prompt: 'A neon cityscape background' }),
},
)
const imageJson = await imageRes.json()
if (!imageJson.success) throw new Error(imageJson.error.message)
```
## Sprite Generation
```ts
const spriteRes = await fetch(
`${baseUrl}/v1/games/${gameId}/sprites/generate`,
{
method: 'POST',
headers,
body: JSON.stringify({ prompt: 'A pixel art character running' }),
},
)
const spriteJson = await spriteRes.json()
if (!spriteJson.success) throw new Error(spriteJson.error.message)
```
## Shop Items
```ts
// List items
const itemsRes = await fetch(
`${baseUrl}/v1/games/${gameId}/items`,
{ method: 'GET', headers },
)
const itemsJson = await itemsRes.json()
// Create item
const createItemRes = await fetch(
`${baseUrl}/v1/games/${gameId}/items`,
{
method: 'POST',
headers,
body: JSON.stringify({
name: 'Speed Boost',
slug: 'speed-boost',
itemType: 'CONSUMABLE',
bitsCost: 100,
}),
},
)
const createItemJson = await createItemRes.json()
// Delete item
const itemId = createItemJson.data.item.id
const deleteItemRes = await fetch(
`${baseUrl}/v1/games/${gameId}/items/${itemId}`,
{ method: 'DELETE', headers },
)
```
## Asset Upload
```ts
const formData = new FormData()
formData.append('file', fileBlob, 'icon.png')
const assetRes = await fetch(
`${baseUrl}/v1/games/${gameId}/assets`,
{
method: 'POST',
headers: { Authorization: `Bearer ${process.env.REMIX_API_KEY!}` },
body: formData,
},
)
const assetJson = await assetRes.json()
if (!assetJson.success) throw new Error(assetJson.error.message)
```
## Game Update
```ts
const gameUpdateRes = await fetch(
`${baseUrl}/v1/games/${gameId}`,
{
method: 'POST',
headers,
body: JSON.stringify({ name: 'Neon Dash Deluxe' }),
},
)
const gameUpdateJson = await gameUpdateRes.json()
if (!gameUpdateJson.success) throw new Error(gameUpdateJson.error.message)
```Related Skills
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.
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-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