npx -y @poyoapi/cli auth loginnpx -y @poyoapi/cli auth status
Credential priority is:
--api-key
POYO_API_KEY
System keyring
Local config fallback
Prefer the environment or keyring so the key does not enter shell history. An old or invalid POYO_API_KEY overrides the key saved by auth login; auth status shows the source in use, such as (environment) or (keyring). auth login saves to the system keyring and falls back to the local config file when no keyring is available.auth status does not call the API. To verify the key and see your balance, run:
npx -y @poyoapi/cli account
A 401 means the key is missing or invalid. A 402 means the account has insufficient credits.
models and describe read the public Capability Catalog and do not need an API key. describe returns the input schema, supported protocols, execution mode, callback support, and public price for one model.
Supported protocol values are openai-chat, openai-responses, anthropic, and gemini. Text is printed incrementally by default; use --format jsonl to preserve raw SSE event JSON.
poyo run MODEL_ID --input '{"prompt":"A mountain lake"}'poyo submit MODEL_ID --input-file request.jsonpoyo task get TASK_IDpoyo task wait TASK_ID --timeout 300
run submits and waits. submit returns immediately unless --wait is provided.
run checks the task every 2 seconds and waits up to 90 seconds by default. A timeout stops local waiting but does not cancel the task. Continue with poyo task wait TASK_ID instead of submitting again, because a second submission is a new paid task.
Prefer submit + task wait for video, audio, 3D, and other long-running jobs.
Model fields from the schema are also available as flags. Hyphenated flags map to underscore field names:
Unknown flags fail locally. Required fields and full schema validation are checked by the API.
On Windows, inline --input '{...}' JSON is often broken by shell quoting. Prefer schema flags such as --prompt "..." --resolution 1K, or use --input-file.
poyo mcp is a stdio bridge to https://api.poyo.ai/mcp. Models still run on PoYo. --categories and --models are mutually exclusive. See Choose MCP tools before exposing category or model-specific tools.
Use --format table|json|jsonl|csv and optionally --output FILE. Streaming output (--stream) always goes to stdout and ignores --output; redirect stdout if you need a file.
Store the key in your CI secret manager and expose it as POYO_API_KEY.
Pin the version, for example npx -y @poyoapi/cli@VERSION, for reproducible runs.
Use --format json and treat any non-zero exit code as a failure.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"PoYo AI","colors":{"primary":"#4F46E5","light":"#A5B4FC","dark":"#4338CA"},"logo":{"light":"https://mintcdn.com/goseallc/29Q_kJZSXJtvfdJH/logo/light.svg?fit=max\u0026auto=format\u0026n=29Q_kJZSXJtvfdJH\u0026q=85\u0026s=8af87ad322e9698952f9066b10b97f41","dark":"https://mintcdn.com/goseallc/29Q_kJZSXJtvfdJH/logo/dark.svg?fit=max\u0026auto=format\u0026n=29Q_kJZSXJtvfdJH\u0026q=85\u0026s=f3b51af4915305ef51d0bc2b9c809b89"},"favicon":"https://mintcdn.com/goseallc/N1-_FzFDsG6WGTTd/favicon.ico?fit=max\u0026auto=format\u0026n=N1-_FzFDsG6WGTTd\u0026q=85\u0026s=eb4e11a6efd2d4782785543f2e22f387","api":{"openapi":["openapi.json","api-manual/moderation-series/omni-moderation.json","integrations/capability-catalog.json","api-manual/image-series/ideogram-v4-5.json","api-manual/image-series/ideogram-vector-1-0.json","api-manual/music-series/elevenlabs-v4-tts.json","api-manual/music-series/elevenlabs-v4-turbo-tts.json","api-manual/music-series/gemini-3-8-flash-lite-tts.json","api-manual/music-series/gemini-3-8-flash-tts.json","api-manual/3d-series/meshy-7-1-3d.json","api-manual/image-series/gpt-4o-image.json","api-manual/image-series/gpt-image-1.5.json","api-manual/image-series/gpt-image-2.json","api-manual/image-series/gpt-image-2-5-flare.json","api-manual/image-series/gpt-image-2-5-sunburst.json","api-manual/image-series/qwen-image-3.json","api-manual/image-series/qwen-image-2-1.json","api-manual/image-series/nano-banana.json","api-manual/image-series/nano-banana-2.json","api-manual/image-series/nano-banana-2-new.json","api-manual/image-series/nano-banana-2-lite.json","api-manual/image-series/nano-banana-2-1.json","api-manual/image-series/flux-2.json","api-manual/image-series/flux-dev.json","api-manual/image-series/flux-schnell.json","api-manual/image-series/flux-kontext.json","api-manual/image-series/flux-3-klein.json","api-manual/image-series/seedream-4.json","api-manual/image-series/seedream-4-5.json","api-manual/image-series/seedream-5-0-lite.json","api-manual/image-series/seedream-5-0-pro.json","api-manual/image-series/seedream-5-0-flash.json","api-manual/image-series/wan-2-7-image-pro.json","api-manual/image-series/wan-2-7-image.json","api-manual/image-series/z-image.json","api-manual/image-series/grok-imagine-image.json","api-manual/image-series/grok-imagine-image-2-0.json","api-manual/image-series/grok-imagine-image-quality.json","api-manual/image-series/kling-o1.json","api-manual/image-series/kling-o3.json","api-manual/video-series/sora-2.json","api-manual/video-series/sora-2-pro.json","api-manual/video-series/sora-2-official.json","api-manual/video-series/sora-2-pro-official.json","api-manual/video-series/veo-3-1.json","api-manual/video-series/veo-3-1-official.json","api-manual/video-series/flux-3.json","api-manual/video-series/flux-3-max.json","api-manual/video-series/wan-animate.json","api-manual/video-series/wan2.2-text-to-video-fast.json","api-manual/video-series/wan2.2-image-to-video-fast.json","api-manual/video-series/wan2.5-image-to-video.json","api-manual/video-series/wan2.5-text-to-video.json","api-manual/video-series/wan-2-6.json","api-manual/video-series/wan-2-7-video.json","api-manual/video-series/wan-3-0-video.json","api-manual/video-series/wan-3-0-video-prime.json","api-manual/video-series/kling-1-6.json","api-manual/video-series/kling-2-1.json","api-manual/video-series/kling-2-6.json","api-manual/video-series/kling-2.6-motion-control.json","api-manual/video-series/kling-3-0-motion-control.json","api-manual/video-series/kling-2-5-turbo-pro.json","api-manual/video-series/kling-3-0.json","api-manual/video-series/kling-3-0-turbo.json","api-manual/video-series/kling-3-0-4k.json","api-manual/video-series/kling-4-0.json","api-manual/video-series/kling-avatar-2-0.json","api-manual/video-series/kling-o3.json","api-manual/video-series/kling-o3-4k.json","api-manual/video-series/grok-imagine.json","api-manual/video-series/grok-imagine-video-1-5.json","api-manual/video-series/omni-flash.json","api-manual/video-series/gemini-omni-1.1-flash.json","api-manual/video-series/hailuo-02.json","api-manual/video-series/hailuo-2-3.json","api-manual/video-series/hailuo-03.json","api-manual/video-series/h3-max.json","api-manual/video-series/h3-max-turbo.json","api-manual/video-series/seedance-1.0-pro.json","api-manual/video-series/seedance-1-5-pro.json","api-manual/video-series/seedance-2.json","api-manual/video-series/seedance-2.5.json","api-manual/video-series/seedance-2-mini.json","api-manual/video-series/happy-horse.json","api-manual/video-series/happy-horse-1-1.json","api-manual/video-series/runway-gen-4-5.json","api-manual/video-series/vidu-q4.json","api-manual/video-series/omnihuman-2-0.json","api-manual/video-series/pixverse-v6-max.json","api-manual/task-management/3d-status.json","api-manual/task-management/image-status.json","api-manual/task-management/video-status.json","api-manual/3d-series/meshy-6-3d.json","api-manual/3d-series/hunyuan-3d-3-1.json","api-manual/3d-series/tripo-h31-3d.json","api-manual/3d-series/tripo-p1-3d.json","api-manual/music-series/generate-music.json","api-manual/music-series/generate-mashup.json","api-manual/music-series/generate-sounds.json","api-manual/music-series/minimax-music-2.6.json","api-manual/music-series/elevenlabs-music.json","api-manual/music-series/elevenlabs-v3-tts.json","api-manual/music-series/elevenlabs-tts-turbo-2-5.json","api-manual/music-series/gemini-3-1-flash-tts.json","api-manual/music-series/xai-tts-1.json","api-manual/music-series/extend-music.json","api-manual/music-series/upload-and-cover-audio.json","api-manual/music-series/upload-and-extend-audio.json","api-manual/music-series/add-instrumental.json","api-manual/music-series/add-vocals.json","api-manual/music-series/get-timestamped-lyrics.json","api-manual/music-series/boost-music-style.json","api-manual/music-series/generate-music-cover.json","api-manual/music-series/replace-section.json","api-manual/music-series/generate-persona.json","api-manual/music-series/generate-lyrics.json","api-manual/music-series/convert-to-wav.json","api-manual/music-series/vocal-remover/separate-vocals.json","api-manual/music-series/vocal-remover/stem-split.json","api-manual/music-series/vocal-remover/upload-and-separate-vocals.json","api-manual/music-series/voice/validate.json","api-manual/music-series/voice/generate.json","api-manual/music-series/voice/regenerate.json","api-manual/music-series/voice/check.json","api-manual/music-series/create-music-video.json","api-manual/music-series/query-music-detail.json","api-manual/chat-series/chat-completions.json","api-manual/chat-series/responses.json","api-manual/chat-series/claude-messages.json","api-manual/chat-series/gemini-native-format.json","api-manual/chat-series/openai.json","api-manual/chat-series/anthropic.json","api-manual/chat-series/google.json","api-manual/chat-series/deepseek.json","api-manual/chat-series/xai.json","api-manual/chat-series/moonshot.json","api-manual/tools-series/image-translator.json","api-manual/tools-series/video-translator.json","api-manual/tools-series/video-background-removal.json","api-manual/tools-series/video-upscaler.json","api-manual/image-series/gpt-image-2-5-fixed.json","api-manual/music-series/generate-midi.json","api-manual/account-management/user-balance.json","api-manual/file-series/upload-url.json","api-manual/file-series/upload-base64.json","api-manual/file-series/upload-stream.json","zh/openapi.json","zh/api-manual/moderation-series/omni-moderation.json","zh/integrations/capability-catalog.json","zh/api-manual/image-series/ideogram-v4-5.json","zh/api-manual/image-series/ideogram-vector-1-0.json","zh/api-manual/music-series/elevenlabs-v4-tts.json","zh/api-manual/music-series/elevenlabs-v4-turbo-tts.json","zh/api-manual/music-series/gemini-3-8-flash-lite-tts.json","zh/api-manual/music-series/gemini-3-8-flash-tts.json","zh/api-manual/3d-series/meshy-7-1-3d.json","zh/api-manual/image-series/gpt-4o-image.json","zh/api-manual/image-series/gpt-image-1.5.json","zh/api-manual/image-series/gpt-image-2.json","zh/api-manual/image-series/gpt-image-2-5-flare.json","zh/api-manual/image-series/gpt-image-2-5-sunburst.json","zh/api-manual/image-series/qwen-image-3.json","zh/api-manual/image-series/qwen-image-2-1.json","zh/api-manual/image-series/nano-banana.json","zh/api-manual/image-series/nano-banana-2.json","zh/api-manual/image-series/nano-banana-2-new.json","zh/api-manual/image-series/nano-banana-2-lite.json","zh/api-manual/image-series/nano-banana-2-1.json","zh/api-manual/image-series/flux-2.json","zh/api-manual/image-series/flux-dev.json","zh/api-manual/image-series/flux-schnell.json","zh/api-manual/image-series/flux-kontext.json","zh/api-manual/image-series/flux-3-klein.json","zh/api-manual/image-series/seedream-4.json","zh/api-manual/image-series/seedream-4-5.json","zh/api-manual/image-series/seedream-5-0-lite.json","zh/api-manual/image-series/seedream-5-0-pro.json","zh/api-manual/image-series/seedream-5-0-flash.json","zh/api-manual/image-series/wan-2-7-image-pro.json","zh/api-manual/image-series/wan-2-7-image.json","zh/api-manual/image-series/z-image.json","zh/api-manual/image-series/grok-imagine-image.json","zh/api-manual/image-series/grok-imagine-image-2-0.json","zh/api-manual/image-series/grok-imagine-image-quality.json","zh/api-manual/image-series/kling-o1.json","zh/api-manual/image-series/kling-o3.json","zh/api-manual/video-series/sora-2.json","zh/api-manual/video-series/sora-2-pro.json","zh/api-manual/video-series/sora-2-official.json","zh/api-manual/video-series/sora-2-pro-official.json","zh/api-manual/video-series/veo-3-1.json","zh/api-manual/video-series/veo-3-1-official.json","zh/api-manual/video-series/flux-3.json","zh/api-manual/video-series/flux-3-max.json","zh/api-manual/video-series/wan-animate.json","zh/api-manual/video-series/wan2.2-text-to-video-fast.json","zh/api-manual/video-series/wan2.2-image-to-video-fast.json","zh/api-manual/video-series/wan2.5-image-to-video.json","zh/api-manual/video-series/wan2.5-text-to-video.json","zh/api-manual/video-series/wan-2-6.json","zh/api-manual/video-series/wan-2-7-video.json","zh/api-manual/video-series/wan-3-0-video.json","zh/api-manual/video-series/wan-3-0-video-prime.json","zh/api-manual/video-series/kling-1-6.json","zh/api-manual/video-series/kling-2-1.json","zh/api-manual/video-series/kling-2-6.json","zh/api-manual/video-series/kling-2.6-motion-control.json","zh/api-manual/video-series/kling-3-0-motion-control.json","zh/api-manual/video-series/kling-2-5-turbo-pro.json","zh/api-manual/video-series/kling-3-0.json","zh/api-manual/video-series/kling-3-0-turbo.json","zh/api-manual/video-series/kling-3-0-4k.json","zh/api-manual/video-series/kling-4-0.json","zh/api-manual/video-series/kling-avatar-2-0.json","zh/api-manual/video-series/kling-o3.json","zh/api-manual/video-series/kling-o3-4k.json","zh/api-manual/video-series/grok-imagine.json","zh/api-manual/video-series/grok-imagine-video-1-5.json","zh/api-manual/video-series/omni-flash.json","zh/api-manual/video-series/gemini-omni-1.1-flash.json","zh/api-manual/video-series/hailuo-02.json","zh/api-manual/video-series/hailuo-2-3.json","zh/api-manual/video-series/hailuo-03.json","zh/api-manual/video-series/h3-max.json","zh/api-manual/video-series/h3-max-turbo.json","zh/api-manual/video-series/seedance-1.0-pro.json","zh/api-manual/video-series/seedance-1-5-pro.json","zh/api-manual/video-series/seedance-2.json","zh/api-manual/video-series/seedance-2.5.json","zh/api-manual/video-series/seedance-2-mini.json","zh/api-manual/video-series/happy-horse.json","zh/api-manual/video-series/happy-horse-1-1.json","zh/api-manual/video-series/runway-gen-4-5.json","zh/api-manual/video-series/vidu-q4.json","zh/api-manual/video-series/omnihuman-2-0.json","zh/api-manual/video-series/pixverse-v6-max.json","zh/api-manual/task-management/3d-status.json","zh/api-manual/task-management/image-status.json","zh/api-manual/task-management/video-status.json","zh/api-manual/3d-series/meshy-6-3d.json","zh/api-manual/3d-series/hunyuan-3d-3-1.json","zh/api-manual/3d-series/tripo-h31-3d.json","zh/api-manual/3d-series/tripo-p1-3d.json","zh/api-manual/music-series/generate-music.json","zh/api-manual/music-series/generate-mashup.json","zh/api-manual/music-series/generate-sounds.json","zh/api-manual/music-series/minimax-music-2.6.json","zh/api-manual/music-series/elevenlabs-music.json","zh/api-manual/music-series/elevenlabs-v3-tts.json","zh/api-manual/music-series/elevenlabs-tts-turbo-2-5.json","zh/api-manual/music-series/gemini-3-1-flash-tts.json","zh/api-manual/music-series/xai-tts-1.json","zh/api-manual/music-series/extend-music.json","zh/api-manual/music-series/upload-and-cover-audio.json","zh/api-manual/music-series/upload-and-extend-audio.json","zh/api-manual/music-series/add-instrumental.json","zh/api-manual/music-series/add-vocals.json","zh/api-manual/music-series/get-timestamped-lyrics.json","zh/api-manual/music-series/boost-music-style.json","zh/api-manual/music-series/generate-music-cover.json","zh/api-manual/music-series/replace-section.json","zh/api-manual/music-series/generate-persona.json","zh/api-manual/music-series/generate-lyrics.json","zh/api-manual/music-series/convert-to-wav.json","zh/api-manual/music-series/vocal-remover/separate-vocals.json","zh/api-manual/music-series/vocal-remover/stem-split.json","zh/api-manual/music-series/vocal-remover/upload-and-separate-vocals.json","zh/api-manual/music-series/voice/validate.json","zh/api-manual/music-series/voice/generate.json","zh/api-manual/music-series/voice/regenerate.json","zh/api-manual/music-series/voice/check.json","zh/api-manual/music-series/create-music-video.json","zh/api-manual/music-series/query-music-detail.json","zh/api-manual/chat-series/chat-completions.json","zh/api-manual/chat-series/responses.json","zh/api-manual/chat-series/claude-messages.json","zh/api-manual/chat-series/gemini-native-format.json","zh/api-manual/chat-series/openai.json","zh/api-manual/chat-series/anthropic.json","zh/api-manual/chat-series/google.json","zh/api-manual/chat-series/deepseek.json","zh/api-manual/chat-series/xai.json","zh/api-manual/chat-series/moonshot.json","zh/api-manual/tools-series/image-translator.json","zh/api-manual/tools-series/video-translator.json","zh/api-manual/tools-series/video-background-removal.json","zh/api-manual/tools-series/video-upscaler.json","zh/api-manual/image-series/gpt-image-2-5-fixed.json","zh/api-manual/music-series/generate-midi.json","zh/api-manual/account-management/user-balance.json","zh/api-manual/file-series/upload-url.json","zh/api-manual/file-series/upload-base64.json","zh/api-manual/file-series/upload-stream.json"],"playground":{},"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://api.poyo.ai"}},"background":{"color":{"light":"#FFFFFF","dark":"#0B0B0F"}},"navbar":{"links":[{"icon":"discord","href":"https://discord.gg/F8JNuUPB3j","label":"Discord"}],"primary":{"type":"button","label":"Market","href":"https://poyo.ai/models"}},"fonts":{"family":"Geist"},"styling":{"codeblocks":"dark","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{},"languages":[{"language":"en","href":""},{"language":"zh","href":"zh"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"goseallc","hasAudioNarration":false,"actualSubdomain":"goseallc","customDomains":["docs.poyo.ai"],"gitSource":{"type":"github","owner":"coolhackboy","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9ba5bbf4ef845262aebae","collectionId":"bb42ed80-d763-4a4b-ab64-f1c59d9f63e6","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9ba5bbf4ef845262aebae"},"entitlements":{},"buildId":"6ae9ba5bbf4ef845262aebae","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"Video Models","count":94},{"language":"zh","tag":"视频模型","count":94},{"language":"en","tag":"Music Models","count":72},{"language":"zh","tag":"音乐模型","count":72},{"language":"en","tag":"Image Models","count":68},{"language":"zh","tag":"图像模型","count":68},{"language":"en","tag":"Suno AI","count":25},{"language":"zh","tag":"Suno AI","count":25},{"language":"en","tag":"LLM Models","count":22},{"language":"zh","tag":"LLM 模型","count":22},{"language":"en","tag":"Platform","count":18},{"language":"zh","tag":"平台","count":18},{"language":"en","tag":"Kling","count":15},{"language":"zh","tag":"Kling","count":15},{"language":"en","tag":"AI Agents","count":13},{"language":"zh","tag":"AI Agent","count":13},{"language":"en","tag":"3D Models","count":12},{"language":"en","tag":"Google","count":12},{"language":"zh","tag":"3D 模型","count":12},{"language":"zh","tag":"Google","count":12}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":""}],"page":{"pagePath":"integrations/cli","slug":"/integrations/cli","pageMetadata":{"title":"PoYo CLI","description":"Discover models, stream chat, run generation, and manage tasks","icon":"terminal","href":"/integrations/cli"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Discover models, stream chat, run generation, and manage tasks\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`poyo-cli`,children:`PoYo CLI`}),`\n`,_jsxs(_components.p,{children:[`The CLI requires Node.js 20 or newer. Check with `,_jsx(_components.code,{children:`node --version`}),`. Source: `,_jsx(_components.a,{href:`https://www.npmjs.com/package/@poyoapi/cli`,children:`npm`}),` · `,_jsx(_components.a,{href:`https://github.com/PoyoAPI/poyo-devtools`,children:`GitHub`}),` (MIT).`]}),`\n`,_jsx(_components.p,{children:`Run the CLI without a global installation:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -y`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` @poyoapi/cli`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` help`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The examples below use the shorter `,_jsx(_components.code,{children:`poyo`}),` command. Install it globally first, or replace `,_jsx(_components.code,{children:`poyo`}),` with `,_jsx(_components.code,{children:`npx -y @poyoapi/cli`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --global`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` @poyoapi/cli`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -y`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` @poyoapi/cli`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` auth`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` login`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -y`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` @poyoapi/cli`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` auth`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` status`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Credential priority is:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`--api-key`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`POYO_API_KEY`})}),`\n`,_jsx(_components.li,{children:`System keyring`}),`\n`,_jsx(_components.li,{children:`Local config fallback`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Prefer the environment or keyring so the key does not enter shell history. An old or invalid `,_jsx(_components.code,{children:`POYO_API_KEY`}),` overrides the key saved by `,_jsx(_components.code,{children:`auth login`}),`; `,_jsx(_components.code,{children:`auth status`}),` shows the source in use, such as `,_jsx(_components.code,{children:`(environment)`}),` or `,_jsx(_components.code,{children:`(keyring)`}),`. `,_jsx(_components.code,{children:`auth login`}),` saves to the system keyring and falls back to the local config file when no keyring is available.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`auth status`}),` does not call the API. To verify the key and see your balance, run:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -y`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` @poyoapi/cli`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` account`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`401`}),` means the key is missing or invalid. A `,_jsx(_components.code,{children:`402`}),` means the account has insufficient credits.`]}),`\n`,_jsx(Heading,{level:`2`,id:`discover-models`,children:`Discover models`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` models`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` models`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` image`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --q`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` gpt-image-2`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --limit`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 10`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` describe`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` MODEL_ID`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`models`}),` and `,_jsx(_components.code,{children:`describe`}),` read the public Capability Catalog and do not need an API key. `,_jsx(_components.code,{children:`describe`}),` returns the input schema, supported protocols, execution mode, callback support, and public price for one model.`]}),`\n`,_jsx(Heading,{level:`2`,id:`chat`,children:`Chat`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` chat`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` MODEL_ID`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --protocol`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` openai-chat`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --input`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` '{\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}'`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Stream chat tokens:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` chat`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` MODEL_ID`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --protocol`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` anthropic`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --stream`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --input-file`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` request.json`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Supported protocol values are `,_jsx(_components.code,{children:`openai-chat`}),`, `,_jsx(_components.code,{children:`openai-responses`}),`, `,_jsx(_components.code,{children:`anthropic`}),`, and `,_jsx(_components.code,{children:`gemini`}),`. Text is printed incrementally by default; use `,_jsx(_components.code,{children:`--format jsonl`}),` to preserve raw SSE event JSON.`]}),`\n`,_jsx(Heading,{level:`2`,id:`generation`,children:`Generation`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` MODEL_ID`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --input`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` '{\"prompt\":\"A mountain lake\"}'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` submit`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` MODEL_ID`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --input-file`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` request.json`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` task`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` get`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` TASK_ID`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` task`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` wait`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` TASK_ID`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --timeout`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 300`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`run`}),` submits and waits. `,_jsx(_components.code,{children:`submit`}),` returns immediately unless `,_jsx(_components.code,{children:`--wait`}),` is provided.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`run`}),` checks the task every 2 seconds and waits up to 90 seconds by default. A timeout stops local waiting but does not cancel the task. Continue with `,_jsx(_components.code,{children:`poyo task wait TASK_ID`}),` instead of submitting again, because a second submission is a new paid task.`]}),`\n`,_jsxs(_components.li,{children:[`Prefer `,_jsx(_components.code,{children:`submit`}),` + `,_jsx(_components.code,{children:`task wait`}),` for video, audio, 3D, and other long-running jobs.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Model fields from the schema are also available as flags. Hyphenated flags map to underscore field names:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` gpt-image-2`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --prompt`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"cinematic product photo\"`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --size`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` 4:3`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --output-format`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` png`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --format`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` json`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Unknown flags fail locally. Required fields and full schema validation are checked by the API.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`On Windows, inline `,_jsx(_components.code,{children:`--input '{...}'`}),` JSON is often broken by shell quoting. Prefer schema flags such as `,_jsx(_components.code,{children:`--prompt \"...\" --resolution 1K`}),`, or use `,_jsx(_components.code,{children:`--input-file`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`stdio-mcp`,children:`stdio MCP`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`poyo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --models`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` flux-schnell,tripo3d-h3.1-text-to-3d`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`poyo mcp`}),` is a stdio bridge to `,_jsx(_components.code,{children:`https://api.poyo.ai/mcp`}),`. Models still run on PoYo. `,_jsx(_components.code,{children:`--categories`}),` and `,_jsx(_components.code,{children:`--models`}),` are mutually exclusive. See `,_jsx(_components.a,{href:`/integrations/mcp-filtering`,children:`Choose MCP tools`}),` before exposing category or model-specific tools.`]}),`\n`,_jsx(Heading,{level:`2`,id:`output`,children:`Output`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`--format table|json|jsonl|csv`}),` and optionally `,_jsx(_components.code,{children:`--output FILE`}),`. Streaming output (`,_jsx(_components.code,{children:`--stream`}),`) always goes to stdout and ignores `,_jsx(_components.code,{children:`--output`}),`; redirect stdout if you need a file.`]}),`\n`,_jsx(Heading,{level:`2`,id:`ci`,children:`CI`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Store the key in your CI secret manager and expose it as `,_jsx(_components.code,{children:`POYO_API_KEY`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Pin the version, for example `,_jsx(_components.code,{children:`npx -y @poyoapi/cli@VERSION`}),`, for reproducible runs.`]}),`\n`,_jsxs(_components.li,{children:[`Use `,_jsx(_components.code,{children:`--format json`}),` and treat any non-zero exit code as a failure.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"PoYo CLI","description":"Discover models, stream chat, run generation, and manage tasks","icon":"terminal","href":"/integrations/cli"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"PoYo CLI","slug":"poyo-cli","depth":1,"children":[]},{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"Discover models","slug":"discover-models","depth":2,"children":[]},{"title":"Chat","slug":"chat","depth":2,"children":[]},{"title":"Generation","slug":"generation","depth":2,"children":[]},{"title":"stdio MCP","slug":"stdio-mcp","depth":2,"children":[]},{"title":"Output","slug":"output","depth":2,"children":[]},{"title":"CI","slug":"ci","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"goseallc","siteName":"PoYo AI","title":"PoYo CLI - PoYo AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/integrations/cli","matchLevel":0},"zh":{"href":"/zh/integrations/cli","matchLevel":1}}},"lastModified":"2026-10-29T03:42:40.250Z","originalFileLocation":"integrations/cli.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Discover models, stream chat, run generation, and manage tasks\">\u003cmeta data-mint-head name=\"application-name\" content=\"PoYo AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"PoYo CLI - PoYo AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Discover models, stream chat, run generation, and manage tasks\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PoYo AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.poyo.ai/integrations/cli\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://goseallc.mintlify.app/_mintlify/api/og/v2?division=Get+started\u0026amp;title=PoYo+CLI\u0026amp;description=Discover+models%2C+stream+chat%2C+run+generation%2C+and+manage+tasks\u0026amp;theme=ecc0b2c14fb9965076e6096c\u0026amp;signature=b7d9f1d8648a9e06f7850102c85caeb40feb2933675a6df4ef9249cec4682018\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"PoYo CLI - PoYo AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Discover models, stream chat, run generation, and manage tasks\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://goseallc.mintlify.app/_mintlify/api/og/v2?division=Get+started\u0026amp;title=PoYo+CLI\u0026amp;description=Discover+models%2C+stream+chat%2C+run+generation%2C+and+manage+tasks\u0026amp;theme=ecc0b2c14fb9965076e6096c\u0026amp;signature=b7d9f1d8648a9e06f7850102c85caeb40feb2933675a6df4ef9249cec4682018\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/goseallc/_txJMi_sP9EUfefV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PoYo AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4F46E5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.poyo.ai/integrations/cli\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integrations/cli.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.poyo.ai/integrations/cli\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.poyo.ai/zh/integrations/cli\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.poyo.ai/integrations/cli\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.poyo.ai/#organization\",\"name\":\"PoYo AI\",\"url\":\"https://docs.poyo.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/goseallc/29Q_kJZSXJtvfdJH/logo/light.svg?fit=max\u0026auto=format\u0026n=29Q_kJZSXJtvfdJH\u0026q=85\u0026s=8af87ad322e9698952f9066b10b97f41\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.poyo.ai#website\",\"name\":\"PoYo AI\",\"url\":\"https://docs.poyo.ai\",\"publisher\":{\"@id\":\"https://docs.poyo.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.poyo.ai/integrations/cli#webpage\",\"url\":\"https://docs.poyo.ai/integrations/cli\",\"name\":\"PoYo CLI\",\"description\":\"Discover models, stream chat, run generation, and manage tasks\",\"dateModified\":\"2026-10-29T03:42:40.250Z\",\"isPartOf\":{\"@id\":\"https://docs.poyo.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.poyo.ai/integrations/cli#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.poyo.ai/integrations/cli#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get started\",\"item\":\"https://docs.poyo.ai/integrations/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PoYo CLI\",\"item\":\"https://docs.poyo.ai/integrations/cli\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.poyo.ai/integrations/cli#article\",\"headline\":\"PoYo CLI\",\"name\":\"PoYo CLI\",\"description\":\"Discover models, stream chat, run generation, and manage tasks\",\"url\":\"https://docs.poyo.ai/integrations/cli\",\"mainEntityOfPage\":{\"@id\":\"https://docs.poyo.ai/integrations/cli#webpage\"},\"dateModified\":\"2026-10-29T03:42:40.250Z\",\"publisher\":{\"@id\":\"https://docs.poyo.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.poyo.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PoYo AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"PoYo AI","nav":{"global":{},"languages":[{"language":"en","tabs":[{"tab":"Platform","pages":[{"title":"Platform","href":""}]},{"tab":"Image Models","pages":[{"title":"Image Models","href":"/api-manual/image-series/overview"}]},{"tab":"Video Models","pages":[{"title":"Video Models","href":"/api-manual/video-series/overview"}]},{"tab":"LLM Models","pages":[{"title":"LLM Models","href":"/api-manual/chat-series/overview"}]},{"tab":"3D Models","pages":[{"title":"3D Models","href":"/api-manual/3d-series/overview"}]},{"tab":"Music Models","pages":[{"title":"Music Models","href":"/api-manual/music-series/overview"}]},{"tab":"AI Tools","pages":[{"title":"AI Tools","href":"/api-manual/tools-series/overview"}]},{"tab":"AI Agents","groups":[{"group":"Get started","pages":[{"title":"AI agents and developer tools","icon":"terminal","href":"/integrations/overview"},{"title":"Quickstart","icon":"rocket","href":"/integrations/quickstart"},{"title":"Authentication","icon":"key","href":"/integrations/authentication"},{"title":"PoYo Agent Skill","description":"Install and use the poyo-ai-models workflow with coding agents","icon":"wand-magic-sparkles","href":"/integrations/skill"},{"title":"PoYo CLI","icon":"terminal","href":"/integrations/cli"}]},{"group":"MCP","pages":[{"title":"Connect with MCP","description":"Connect an AI assistant to PoYo's hosted MCP server","icon":"plug","href":"/integrations/mcp"},{"title":"Choose MCP Tools","icon":"toolbox","href":"/integrations/mcp-filtering"}]},{"group":"Clients","pages":[{"title":"Claude","icon":"robot","href":"/integrations/claude-desktop"},{"title":"Cursor","icon":"arrow-pointer","href":"/integrations/cursor"},{"title":"Codex","icon":"code","href":"/integrations/codex"},{"title":"VS Code","icon":"window-maximize","href":"/integrations/vscode"}]},{"group":"Workflow tools","pages":[{"title":"n8n","icon":"diagram-project","href":"/integrations/n8n"},{"title":"ComfyUI","icon":"diagram-project","href":"/integrations/comfyui"}]}]}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/integrations/cli"}]}]},"basePath":"","title":"PoYo CLI - PoYo AI","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":[],"chunks":[]}