Check capabilities before generating. A command does not enable a missing worker or substitute another provider.
Sound effects require an enabled Stable Audio 3.0 Small SFX worker. Availability can differ from other asset types.
Public Breeze TTS 2 voice design remains disabled until Uncen records written commercial authorization. A temporary admin-only evaluation path stays private and non-commercial.
Use the CLI with Claude, Codex, or another coding agent
The agent does not need your Google password. Run the login command on the computer where the agent works.
Open the printed approval URL yourself. The account that approves the page owns the assets and pays for them.
An explicit argument wins. An unavailable provider returns an error; the service does not substitute another engine.
The profile selects the account that pays. Check whoami after a profile change.
The collection default supplies the generation scope label for generate and estimate. It does not change login permissions.
Use --add-to "Sector Prime" to organize the private library. That collection is different from the generation scope label.
Voice search also supports default-category, default-gender, default-age, and default-language.
Optional: remember recent choices
Automatic remembering is off by default. Enable it when you want the CLI to remember successful commands.
assetyard configure --dynamic-defaults
assetyard --profile claude-game voices list --category hero --gender male
assetyard voices list
assetyard --reset
assetyard configure --no-dynamic-defaults
Remembered profiles, generation scope labels, and voice filters stay separate for each working directory and profile.
Providers require explicit configuration. The CLI never remembers prompts, dialogue, references, output paths, seeds, or spending limits.
Notices go to stderr. JSON stays on stdout and includes cli_defaults when defaults affect the command.
Precedence is: explicit argument, remembered setting, configured setting, built-in default.
--reset clears remembered settings across working directories for the selected API origin. Configured settings and credentials remain.
--reset-all-dynamic-settings is the same command. Use configure --unset default-category to remove a configured setting.
Global --no-dynamic-defaults bypasses remembering once. Global --no-defaults bypasses both preference layers once.
For repeatable automation, use --no-defaults --profile PROFILE with explicit request settings.
Manifest builds do not inherit local provider, collection, or filter preferences. Put those choices in the manifest.
Retries preserve the saved provider and collection when you omit those arguments.
3. Create an asset
--out waits for the job and downloads the result. The library flags also wait. Otherwise, use --wait or receive the queued request.
Image
uncen generate image --prompt "A bright cartoon forest menu background" --width 1024 --height 1024 --out assets/menu.png
Use images for backgrounds, concept art, textures, or references. Check the provider's supported dimensions.
uncen generate image --prompt "Cali briefs the squad inside a carrier hangar" --reference-image assets/cali.png --out assets/cali-briefing.png
Use a local character image to keep identity and clothing consistent. See the reference image section below.
3D model
uncen generate model --prompt "One low-poly wooden supply crate with a closed lid" --geometry-profile prop --out assets/crate.glb
Use prop for simple objects. Other profiles include standard, character, and source.
Fewer vertices do not guarantee sharp edges. A character model does not automatically include a skeleton or animation.
Pixal3D is the default 3D provider. No provider flag is required.
Pixal3D preserves the reference view. A three-quarter reference can produce a tilted or sideways model.
For a rigid vehicle, select orientation_profile=rigid_vehicle. This requests a front reference and deterministic geometric alignment.
This profile requires a generated reference. An uploaded reference does not establish the vehicle's front.
uncen generate model --prompt "One symmetric courier spacecraft with a pointed nose and two wings" --geometry-profile prop --orientation-profile rigid_vehicle --out assets/courier.glb
CLI 0.4.2 supports --set orientation_profile=rigid_vehicle after the backend update. CLI 0.4.3 adds --orientation-profile rigid_vehicle.
The aligned GLB uses +Y up, +Z forward, and a centered pivot. These axes follow the glTF convention.
This is not universal front detection. Check orientation.status in the result metadata before using a vehicle.
needs_review means the geometry is ambiguous. The result preserves the source pose instead of claiming correct alignment.
The vehicle profile also checks bilateral symmetry. Large unmatched wings or other structural defects require review. Small details can differ.
The default source profile preserves the input pose. It does not infer vehicle settings from prompt words.
A game that moves along -Z needs one shared 180-degree Y rotation at import. Do not add separate corrections for each ship.
Run uncen capabilities before a large batch. The result keeps its provider license record.
Pixal3D mesh work is free during the beta. The reference image still uses its normal image price.
Each account can keep one Pixal3D request active. The service accepts four active Pixal3D requests in total.
The service rejects explicit real-world end uses that the DINOv3 license prohibits.
Music
uncen generate music --prompt "Playful instrumental game music" --duration 20 --music-kind gameplay_loop --wait
Inspect download.filename and download.mime_type. Then choose the correct extension when you download the result.
Speech
uncen generate tts --text "The next round starts now." --voice VOICE_FROM_CATALOG --wait
Replace the voice placeholder with a catalog key. Speech uses --text, not --prompt.
Browse published Asset Yard voices with uncen voices list. Then use the stable voice key with Chatterbox:
uncen generate tts --text "All pilots, prepare for launch." --voice ayv2_hero_vanguard_c1 --out assets/launch.wav
See the TTS voice section below for catalog, built-in, and custom voices.
The output format depends on the provider.
Voice design
uncen generate voice --prompt "A calm space guide with clear diction" --text "Welcome aboard. I will guide your crew through each system check, one clear step at a time. Watch the blue status lights, confirm each green signal, and stay with me until the launch computer reports that every system is ready." --provider breeze_tts2_voice --language en --cfg-scale 4 --out assets/guide-voice.wav
This command prepares a private Chatterbox reference sample. Voice design is not an alternate speech provider.
Use 160 to 500 characters for the sample transcript.
The server returns license_pending until written approval and worker activation.
Sound effect
uncen generate sfx --prompt "One short cartoon pop, dry recording, no music" --duration 1 --set steps=8 --out assets/pop.wav
The SFX worker supports WAV output, durations from 1 to 30 seconds, and 1 to 8 sampling steps.
Describe the sound and its timing. Request a single event when you need a game action sound.
Video
uncen generate video --prompt "The camera moves around the object" --image-media-id OWNED_IMAGE_ID --duration 5 --out assets/preview.mp4
Replace OWNED_IMAGE_ID with a completed image from your account. A restricted connection's collection rule also applies.
The first version uses an owned reference image. It does not accept an arbitrary image URL.
Frame spacing can change the exact duration. For WAN, one second at 16 frames per second produces 17 frames.
Check metadata.duration_seconds and metadata.dimensions for measured output values. The requested settings stay unchanged.
Design a Breeze voice for Chatterbox
Public Breeze TTS 2 voice design is disabled. Approved admin grants can use the temporary private evaluation mode. Run uncen capabilities before a request.
Evaluation samples and their Chatterbox derivatives are non-commercial. Do not distribute them with a product.
The response reports enabled: false and unavailable_code: license_pending until activation.
Personal access does not include private voice evaluation. Use a separate restricted profile after the account receives evaluation permission.
First, run the voice command above. The prompt describes the voice, and the text gives the exact sample transcript.
Choose text that produces a sample from 10 to 30 seconds. Copy its completed media ID.
Then pass that private sample to Chatterbox:
uncen --profile voice-work generate tts --text "Navigation is ready. Start the launch sequence when your team is prepared." --voice custom --reference-media-id VOICE_MEDIA_ID --out assets/launch-guide.wav
Replace VOICE_MEDIA_ID with the first command's media ID.
The server accepts an owned private media ID. It does not accept a local path or arbitrary URL.
Optional steering also uses an owned audio media ID and its exact transcript:
uncen --profile voice-work generate voice --prompt "Keep the pace, but sound warmer and less formal" --text "You found the hidden route. Stay close, and I will get everyone home safely. Follow the painted stones beside the river, keep your lantern covered, and wait for my signal before the whole group crosses the old wooden bridge." --provider breeze_tts2_voice --steering-media-id OWNED_AUDIO_MEDIA_ID --steering-text "The exact transcript spoken in the steering audio." --out assets/warm-guide-voice.wav
Use --steering-media-id and --steering-text together.
Run both stages separately. Manifest version 1 cannot pass a new media ID to a later entry.
A later manifest can use a literal reference_media_id after the voice sample exists.
Use --provider to select a listed provider. Use --set KEY=VALUE for exact settings from capabilities.
--max-credits 5 adds a limit for one request. The account balance and any restricted allowance still apply.
Music and sound-effect generation do not guarantee seamless loops. Inspect the audio before adding it to a game.
Seeds do not guarantee identical files across runs or hardware. Reuse downloaded files when you need an exact match.
4. Keep a character consistent with reference images
Pass a local character image with --reference-image. Repeat the option when the editor supports several references.
uncen --profile claude-game generate image --collection dangerous --prompt "Cali gives a mission briefing on the carrier bridge. Keep her face, hair, uniform, and insignia consistent." --reference-image references/cali.png --out assets/cali-bridge-briefing.png
uncen --profile claude-game generate image --collection dangerous --prompt "Cali and the commander study a tactical display. Preserve both identities." --reference-image references/cali.png --reference-image references/commander.png --out assets/tactical-briefing.png
The CLI accepts PNG, JPEG, and WebP files up to 20 MiB. Local files and media IDs share one five-image limit.
A provider can set a lower limit. Check image.reference_providers in uncen capabilities.
The CLI calculates each file's SHA256 value. The server reuses a matching private upload in the same account and collection.
Use an existing owned image when you already know its media ID:
uncen --profile claude-game generate image --collection dangerous --prompt "Cali reports from a damaged flight deck." --reference-image-media-id OWNED_IMAGE_ID --out assets/cali-flight-deck.png
You can mix both options. The CLI rejects duplicate or invalid media IDs.
The server checks the image owner, state, file type, and collection before dispatch.
The API does not accept an arbitrary image URL. This rule prevents a cross-account read.
The generated image remains in the account's media library and private storage. The CLI also downloads the requested local file.
A manifest cannot contain a local reference path. Use settings.reference_image_media_ids after the upload exists.
5. Choose a TTS voice
Open the private voice library to hear voices, inspect requested traits, and save favorites. Sign in first. The initial preview requires an administrator account.
The three new HFY voices use original Qwen3 references and Chatterbox speech. They do not clone an actor or impersonate a game character.
Voice
Stable key
Requested role
Atlas Deep Narrator
ayq1_atlas_narrator_c1
Deep male HFY narrator, middle-aged, General American English
Orion Vanguard
ayq1_orion_vanguard_c1
Adult male military hero, General American English
Lyra Vanguard
ayq1_lyra_vanguard_c1
Adult female military hero, General American English
uncen voices show ayq1_atlas_narrator_c1
uncen generate tts --voice ayq1_atlas_narrator_c1 --text "They called our world a death trap. Humanity called it home." --out assets/narrator.flac
uncen generate tts --voice ayq1_orion_vanguard_c1 --text "Stay together. Nobody gets left behind." --add-to "Sector Prime" --out assets/commander.flac
uncen generate tts --voice ayq1_lyra_vanguard_c1 --text "The route is clear. Bring our people home." --mark-favorite --out assets/heroine.flac
The references passed technical and transcript checks. Their release does not claim a human listening review or verified accent fidelity.
Each published Asset Yard voice has a stable, unique voice_key. A game can store this key without storing audio locations.
The provider field names Chatterbox. The optional source_provider field records which model created the sample.
You do not need to remember the keys. Search the catalog by category or name:
uncen --profile claude-game voices list
uncen --profile claude-game voices list --category game_hero --search vanguard
uncen --profile claude-game voices list --category hfy_narration --gender male --age middle_aged --search deep
uncen --profile claude-game voices list --limit 200 --offset 0
uncen --profile claude-game voices show ayv2_hero_vanguard_c1
The key format is stable and readable. For example, ayv2_hero_vanguard_c1 identifies candidate one for the Hero Vanguard design.
Use the returned key directly:
uncen --profile claude-game generate tts --collection dangerous --text "All pilots, prepare for launch." --voice ayv2_hero_vanguard_c1 --out assets/launch.wav
Voice mode
Selection
Use
Asset Yard catalog
A stable voice_key from uncen voices list
Reusable game characters and narrators
Provider voice
A provider and voice from tts.providers in uncen capabilities
A Breeze evaluation sample until commercial authorization
A provider voice is optional. The provider uses its default voice when you omit --voice.
uncen voices list returns 100 items by default. Use --limit and --offset for a larger catalog.
Use --language, --gender, --age, --category, and --search to narrow the result. Repeated catalog pages use a short server cache.
uncen voices list shows the published voices that Chatterbox can use on this creation site.
Each dispatch binds the profile's private S3 URI, verified audio SHA-256, and optional S3 version. The worker revalidates the binding before ComfyUI receives it.
Catalog results include release_basis and human_reviewed. A human_review release passed the score gate. A technical_checks release passed batch, trait receipt, storage, format, and loudness checks only.
A custom reference must be an owned, ready Breeze sample from this site. It must last 10 to 30 seconds.
A restricted connection also requires the same client, grant, and collection.
Operator review is the standard release path. Open uncen.ai/admin/voice-bank with an administrator account.
The current bank has 140 designs and two candidates for each design.
Each v2 design records requested presentation, age, accent, timbre, and delivery. The API returns the exact creator prompt and a verified receipt status.
Observed presentation and age describe the generated audio. They stay separate from the requested creator targets.
Each player uses a normalized review copy by default. Expand the original player to compare the pristine generation.
The final review copy measures from -19.0 through -17.5 LUFS. Its true peak does not exceed -1.4 dBTP.
Filter by batch, category, review status, or text. Listen to each candidate and score all five quality fields.
Select the observed voice presentation and age. These traits describe the sound, not a biological identity.
Approval needs a 4.0 average. Intelligibility and audio quality must each score at least 4.
Needs work keeps a candidate pending. Reject prevents publication.
Review status does not change the live catalog. Publication creates the explicit runtime set.
Click Publish approved after review. Publication does not require a Chatterbox restart.
An admin can use Technical release all for urgent internal use. Every planned candidate must remain unreviewed and pass all technical checks.
A technical release does not create scores or observed traits. Check release_basis and human_reviewed in CLI results.
A published profile cannot receive a review. Depublish it or create a new candidate revision before human review.
VoxCPM2 and the Qwen3 trial generate private bank references. They are not public generate voice providers. Chatterbox uses published voice keys.
Keep favorites and named collections
CLI 0.6.0 adds private organization for personal connections. Restricted connections do not gain new permissions.
The initial library preview requires an administrator account. The server can later enable access for all signed-in users.
uncen generate image --prompt "A painted starport at sunrise" --mark-favorite --add-to "Sector Prime" --out assets/starport.png
uncen library collections
uncen library create "Mission briefings"
uncen library list
uncen library list --collection COLLECTION_UUID
uncen library favorite voice ayq1_atlas_narrator_c1
uncen library add voice ayq1_lyra_vanguard_c1 --to "Sector Prime"
uncen library favorite media MEDIA_UUID
uncen library unfavorite media MEDIA_UUID
library list shows favorites by default. Use --collection COLLECTION_UUID for a collection and --type voice or --type media to filter.
Repeat --add-to NAME to use several collections. Collection names can contain spaces. Repeated names resolve to the same private collection.
--add-to NAME organizes the library. The older --collection LABEL controls the generation scope. These are separate concepts.
Library commands use a generated media UUID or a published voice key. A request UUID belongs to the jobs commands.
Organization cannot turn a valid generation into a failed generation. The CLI keeps the completed result and its local download.
If a library action fails, the result includes organization.status: "partial" and safe retry_argv instructions.
Local credential or lock errors also preserve the completed generation. Retry commands retain the original state directory and credential settings.
Repeat organization without another generation:
uncen jobs organize REQUEST_UUID
uncen jobs organize REQUEST_UUID --mark-favorite --add-to "Sector Prime"
The first command repeats saved pending or partial actions. The second uses explicit actions. Neither command spends generation credits.
Favorites and collections remain private. They do not publish files, extend retention, or provide game hosting.
6. Give this brief to a coding agent
Give the agent this page and the following text. Replace PROJECT_SLUG with one stable project name.
Follow https://multiplayers.ai/help/asset-cli as the canonical Asset Yard CLI guide.
Install the published wheel before you start.
Place --profile claude-game before each command.
Ask me to open and approve the login URL. Never ask for my Google password.
Run whoami and capabilities before you create an asset.
Use --collection PROJECT_SLUG on every request.
Use --reference-image for a local character reference.
Reuse an owned image with --reference-image-media-id when its media ID is known.
Run voices list and select a stable voice_key for each speaking character.
Use and that voice_key for TTS.
Use --out for every final asset.
Keep request IDs and asset lock files. Resume a request instead of generating a duplicate.
Do not place CLI tokens in source files, prompts, logs, or the repository.
The human connects the device. The agent receives an asset credential, not the Google session or account administrator permissions.
A CLI collection is not a Multiplayers project. It does not attach files to a game automatically.
Inside Multiplayers, the coding agent can call list_tts_voices, request_tts, and request_image. The image tool accepts owned reference_image_media_ids.
The agent uses request_model and then sync_models to add a GLB and its backend license file to the game workspace.
The public link uses the completed Asset Yard pack by default. It loads the downloaded GLB, music, sound-effect, and key-art files.
Add ?edition=development only to compare the procedural development assets.
Create an assets.yaml file in your game directory:
version: 1
assets:
- id: crate
kind: model
prompt: One low-poly wooden supply crate with a closed lid
settings:
geometry_profile: prop
out: assets/crate.glb
- id: courier
kind: model
prompt: One symmetric courier spacecraft with a pointed nose and two wings
settings:
geometry_profile: prop
orientation_profile: rigid_vehicle
out: assets/courier.glb
- id: pop
kind: sfx
prompt: One short cartoon pop, dry recording, no music
settings:
duration_seconds: 1
seed: 42
out: assets/pop.wav
Replace the absolute path with your own path. The directory must allow only its owner. The file must use mode 0600.
The directory uses mode 0700. The CLI rejects links and unsafe permissions. Windows continues to use its native credential store.
The file contains secrets. Keep it outside source control, shared folders, build artifacts, and logs.
This explicit file mode supports token refresh. An environment access token does not:
uncen --token-env UNCEN_ASSET_TOKEN whoami
Environment access tokens expire after at most 15 minutes. Do not use them as a durable login for long jobs.
Never put tokens in source files, manifest files, or command arguments.
A provider or asset type is unavailable
Run uncen capabilities. Check both availability and authorization for that asset type.
An unavailable worker requires server configuration. A restricted connection can also lack permission for the requested tool.
The CLI does not choose another model or paid service without your request.
A refresh response was lost
The client saves a retry identifier before refresh. A repeated refresh uses the same identifier to recover a lost response.
If the recovery window expires, reconnect through the browser:
uncen login
Reconnect through the browser. The CLI keeps the existing identity when the server approves reconnection.
A denied request does not replace your saved login. Keep your existing request IDs and resume after reconnection.
Use the CLI from an agent or script
Normal results and errors use one JSON object on stdout. Progress and approval information use stderr.
--json is accepted, but JSON output is already the default. Read the exit code and preserve the returned request ID.
0 Command succeeded
2 Invalid input or budget
3 Login, permission, or credential store error
4 Generation failed
5 API, network, or integrity error
6 Local file conflict or file access error
7 Wait timed out; the server job can continue
130 Command interrupted
jobs status returns a failed job as data. jobs wait returns exit code 4 for the same failed job.
🔄 Flow Configuration
Loading flow configuration...
Loading flow configuration...
🔄 Flow Progress
Flow Status
Running
Starting flow...
❌ Flow Error
✅ Flow Completed
Your content has been generated successfully!
Approve Rough SMV Cost
This is a rough estimate based on your requested runtime and current providers. The SMV planner prioritizes quality first, so final runtime and credits can land outside this range.