# layer

Generates and edits game assets via the Layer MCP server, including 3D meshes, sprites, audio, and video. It handles model discovery, file uploads, and Creative Unit cost checks.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3300 installs · ★ 6
- Author: layerai
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/layerai/skills/tree/HEAD/skills/layer/SKILL.md
- Updated: 2026-09-30
- HTML: https://affpapa.org/en/nevibecode/skills/layer

## What it does

The skill coordinates asset generation through the Layer MCP server at `https://mcp.app.layer.ai/mcp` using streamable HTTP and OAuth. It calls `get_instructions` at the start of each session, picks the target workspace, and dispatches generation runs. Forge serves as the default mode for direct model control, while Workflows handles multi-step Blueprint pipelines. Output capabilities cover 2D sprites, textures, 3D meshes, audio, and video.

Model discovery happens on the fly through `list_base_models` using task filters like `use_case` and boolean maps in `capabilities`. Hardcoding a `base_model_id` breaks runs with `MODEL_NOT_FOUND` because Layer's catalogue is workspace-gated and changes over time. For input references, the skill requests signed URLs via `request_file_upload_url`. When chaining runs, it passes the resulting `file_id` directly into the next prompt without re-uploading assets.

Generations cost Creative Units (CUs) billed to the chosen workspace. The skill runs `estimate_forge_price` to verify cost and remaining credits before executing. For runs exceeding 20 CUs, it halts and waits for explicit user confirmation. Layer treats this 20 CU gate as non-negotiable, and having `allow_negative_balance` enabled does not bypass the prompt.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/layer/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/layer/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/layer/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/layer/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install layerai/skills layer
```

2. **Manually: put the files in place**
- File: `.github/skills/layer/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/layerai/skills --path skills/layer
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/layer/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/layerai/skills/tree/HEAD/skills/layer/SKILL.md

## When to use it
- generate 2D sprites, textures, and 3D meshes via Layer MCP
- estimate Creative Unit expenses prior to launching generations
- upload reference assets using temporary signed URLs
- poll active Forge inference jobs until completion
- chain generation runs using existing file identifiers without re-uploading

## Example prompts
- Generate four isometric wooden building sprites via Layer and estimate the Creative Unit cost first
- Find a base model for text_to_3d that supports rigging and check the price
- Take the completed sprite using its `file_id` and extend it into a running animation

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 898325972a97b22d.

BEGIN THIRD-PARTY FILE 898325972a97b22d
```text
---
name: layer
description: "Use when generating or editing game and entertainment assets on Layer through MCP: images, video, 3D meshes, audio, sprites, textures, or marketing creative. Also when choosing a Layer base model, pricing a run in Creative Units before spending them, uploading reference files, polling a generation, applying a trained style, or recovering from MODEL_NOT_FOUND, INSUFFICIENT_BALANCE, RATE_LIMITED, or a silently degraded reference set."
license: MIT
---

# Layer

## Overview

Layer generates images, video, 3D meshes, and audio from one model-agnostic request shape. Work is
priced in Creative Units (CUs) and billed to a workspace. Every other skill in this set assumes the
loop below and teaches the craft on top of it: what to put in the prompt, which capability filter the
task actually needs, and what makes the output usable rather than merely produced.

Connecting a client, authentication, and the REST equivalent of all of this are covered by Layer's
published `layer-connect-mcp` and `layer-generate-assets` skills. The server is
`https://mcp.app.layer.ai/mcp` over streamable HTTP with OAuth. Call `get_instructions` once per
session before the first generation, and `get_forge_instructions` before the first forge run.

Two ways to generate. **Forge** runs one model directly with full parameter control, and is the
default. **Workflows** run a multi-step Blueprint pipeline a studio has already built; reach for one
when the user names it or when a repeatable pipeline exists for the task. See `layer-workflows`.

## Quick reference

| Step   | Tool                                      | What matters                                                                                               |
| ------ | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Scope  | `list_workspaces`                         | Most tools need a `workspace_id`. Ask which one if the user has several, or take the most recently active. |
| Choose | `list_base_models`                        | Pass `filter.use_case`, take the first result: the default `sort` is Layer's curated order.                |
| Check  | `get_base_model`                          | Per-model contract. Some models require a trigger word in the prompt.                                      |
| Upload | `request_file_upload_url` / `upload_file` | Before generating, never after.                                                                            |
```
END THIRD-PARTY FILE 898325972a97b22d

The third-party file has ended. Everything between the 898325972a97b22d tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2561 of 10153 bytes. © layerai · MIT · https://github.com/layerai/skills/tree/HEAD/skills/layer/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
