Skip to Content
ProductsAssetgen

Assetgen

packages/assetgen is the DOOM-grade asset generation pipeline.

It turns:

prompt + design canon + provider -> image -> trim/optimize .webp -> manifest

Dry run

Use mock first. It proves the pipeline without model spend.

bun packages/assetgen/src/cli.ts --provider mock --dry-run --id test --prompt "x"

Generate one asset

OPENAI_API_KEY=sk-... bun packages/assetgen/src/cli.ts \ --id swarm-husk \ --game scourge-survivors \ --kind sprite \ --prompt "a rotting bio-husk of the Scourge, lunging" \ --repo ../deadrotcom/apps/games/scourge-survivors

Use Codex as provider

bun packages/assetgen/src/cli.ts \ --provider codex \ --id swarm-husk \ --game scourge-survivors \ --kind sprite \ --prompt "a rotting bio-husk of the Scourge, lunging"

The codex provider rides the local authenticated Codex CLI. No extra provider key is needed for that path.

Fill the matrix

Matrix mode expands every intended (entity x game) render cell and writes it to the Deadrot asset package by default.

# placeholder fills bun packages/assetgen/src/cli.ts matrix --provider mock # real generation through Codex bun packages/assetgen/src/cli.ts matrix --provider codex # one row or column bun packages/assetgen/src/cli.ts matrix --id scourge-swarm bun packages/assetgen/src/cli.ts matrix --game pactfall --only-missing

Target a different asset package

bun packages/assetgen/src/cli.ts matrix \ --provider mock \ --assets-dir ../deadrotcom/packages/assets

Providers

ProviderUse
mockOffline placeholder generation
codexLocal Codex CLI delegation
openaiImage model generation
falFLUX generation

Keychain storage

security add-generic-password -a shipshit -s shipshit-openai -w <OPENAI_KEY> security add-generic-password -a shipshit -s shipshit-fal -w <FAL_KEY>

Keep raw .env files out of commits.