Asset Goes Here Docs Sign in
ContentsPlaceholders
Request and review

Placeholders

A placeholder is the file your game uses until a request is fulfilled: a grey box where the lantern keeper will stand, a beep where the door creak will go, a labelled card where the potion icon will sit. Attach one to a request and everyone working on it sees what the real file has to fit. Every plan includes placeholders.

A placeholder isn't a reference. A reference is art to match; a placeholder shows the size, framing and timing the real file must fit, and makers are told not to copy it.

Three ways to get one

RequestStand-inFormats
ImageA dark hatched card at the spec's size (256×256 without one), labelled with the asset's id and sizePNG, JPEG, WebP, SVG
AudioA soft beep at the start of every second, for the spec's duration (1 second without one)WAV, Ogg Opus
ModelA plain grey box, sphere, capsule or cylinder of the width, depth and height you give in metres, with its origin at the base so it stands on the floor.glb, .gltf, .obj
TextOne line naming the request and its brief.txt, .md

agh can't make stand-ins for other formats, such as .fbx, .rbxm or .mp3; upload a placeholder for those.

From the command line

agh request ui.icon.potion --kind image --path ui/icons/potion.png --brief "Red health potion" \
  --spec size=128x128 --stand-in --save-placeholder
agh request char.npc.keeper --kind model --path characters/keeper.glb --brief "Lantern keeper" \
  --stand-in capsule --size 0.6x0.6x1.8 --save-placeholder
agh placeholder ui.banner.title ./banner_temp.png     # attach a file to an existing request
agh placeholder ui.banner.title --placeholder-from-repo
agh placeholder ui.banner.title --remove
agh get ui.icon.potion --which placeholder            # download it

--save-placeholder writes the placeholder at the request's path under the current folder, so the game can load it at once. A file already there is left alone. In a --from file, give an entry placeholder: {source: stand-in, shape: capsule, size: 0.6x0.6x1.8} or placeholder: {source: repository}.

For coding agents

Over MCP, give a request in request_assets a placeholder ({source: "stand-in"}, with shape and size for a model, or {source: "repository"}). The result's placeholders holds a one-hour download link for each, so the agent can save the file at the request's path and keep coding; placeholderProblems says why one couldn't be made. set_placeholder attaches one later, or a file uploaded with start_upload (placeholder: true).

Over HTTP, PUT /projects/{project}/assets/{id}/placeholder takes source (upload, repository or stand-in), with uploadId, fileName and contentType from POST .../placeholder/uploads for an upload, or shape and size for a stand-in model. DELETE takes it off, and GET .../file?which=placeholder downloads it.

In the web app

Admins and developers attach a placeholder from Add placeholder… on each request in Approve, or from the request's page in the Library. Open requests, claims, Library tiles and guest links show it with a dashed Placeholder badge, and review shows it beside the delivery in the place of the file it replaces.

What happens to it

For agents: this page as Markdown is at /docs/placeholders.md, and the CLI prints it with agh guide placeholders.