---
name: market
description: Find, inspect, generate, and use Drawcall Market assets from a coding agent.
---

# Drawcall Market

## CLI transport

Run commands as `npx @drawcall/market <command>`; do not assume a global `market` binary or switch to MCP after a CLI failure. Use `npx @drawcall/market skill` when these instructions are not already available.

Discover the current vocabulary and choose an asset:

```sh
npx @drawcall/market types
npx @drawcall/market search "<query>" --type <type> --limit 3
npx @drawcall/market preview <name@version> --out /tmp/<name>.png
npx @drawcall/market urls <name@version>
```

`urls` prints one base URL, file subpaths, and a preview URL without changing the project. Install exact refs together when the project needs local files:

```sh
npx @drawcall/market install <name@range...> --cwd "$PWD"
```

Install records `assetDependencies` in the nearest `package.json`. `list --cwd "$PWD"` reads that inventory without network access. Run `sync --cwd "$PWD"` after moving installed files so aliases continue to resolve. Use `--force` only with permission to overwrite changed files.

Generate and install one asset with:

```sh
npx @drawcall/market generate --type <type> "<description>"
```

If it returns a continuation, run the printed `generate install <jobId>` command. The Market agent can source a coherent set of assets from a broader goal:

```sh
npx @drawcall/market agent "<goal>"
```

Publish only when asked. `pack <source> --out <zip>` creates a Market archive and `upload <name> <source> "<description>" --type <type>` publishes it. Use command help for dependency and visibility options. If authentication is required, ask before running `npx @drawcall/market login`.

## Choose assets

Search one concrete need at a time. Use one result for an exact lookup and up to three when the user should choose. If nothing fits, try one broader noun phrase before generating a replacement.

The exact `name@version` returned by Market is authoritative. Copy it verbatim. Generated identifiers can legitimately end mid-word at the catalog limit; never expand, normalize, or reconstruct one from its description.

Preview a finalist when appearance determines whether it fits. File, preview, and zip URLs returned by Market are opaque. Capability-bearing private URLs are secrets; never derive a URL from an asset name or preview metadata.

## Generate

Generation creates one Market asset from a description. The description is provider input, not the eventual asset name. A fast provider may return the asset immediately; a slow provider returns a continuation ID for the matching status operation. Resume that job instead of starting the same generation again.

Reference images must be direct fetchable image URLs or image data, never webpage URLs. The current asset-type metadata says which types support references and how many they accept.

A generated humanoid model is one expressive, animation-ready biped: one head, two arms, two legs, open empty hands, and no companions or scene. Describe identity, theme, silhouette, clothing, colors, and materials. Express topology outside the shared skeleton as costume or body-surface design so the result remains riggable.

Request public or private access only when visibility matters. Private generation requires the account's `market:private` entitlement.

## Failures

An error means the operation did not happen. Correct invalid inputs, refresh an exact reference after a not-found response, and retry one upstream failure once. Never repeat an unchanged failed generation. Use unapproved assets only when the user explicitly requests and accepts them.
