Yike CLI
Yike CLI 是 Yike 提供的命令行工具,可在终端或 AI Agent 中完成本地图片/视频上传、图片生成、视频生成、Yike AI 原子能力调用、媒资检查、异步任务管理,以及通过 STDIO 提供 MCP 代理。
功能
- 文生图、图生图
- 文生视频、图生视频、参考视频生成
- 上传本地图片和视频,并在失败后继续上传或等待
- 通过
yike ai 调用图片/视频编辑、脚本、提示词、声音与音频等原子能力
- 查询生成任务状态并恢复本地记录的异步任务
- 检查媒资地址、时长和分辨率
- 提供适合脚本和 AI Agent 消费的 JSON 输出
- 通过
yike mcp proxy 为 MCP Host 提供 STDIO 代理
- 内置并自动尝试安装配套的
using-yike-cli Agent skill
环境要求
- Node.js 20 或更高版本
- npm
- 可用的 Yike 账号
安装
使用 npm 全局安装:
npm install -g @yikeai/cli
确认安装成功:
yike --version
yike --help
如果当前 npm registry 无法找到该包,请显式使用 npm 官方源:
npm install -g @yikeai/cli --registry=https://registry.npmjs.org
登录
在终端中完成浏览器授权:
yike auth login
无法自动打开浏览器时,可以只输出登录地址:
yike auth login --no-open
检查登录状态和当前账号:
yike auth status
yike whoami
在无法完成浏览器回调的自动化环境中,也可以通过环境变量提供访问令牌:
export YIKE_API_TOKEN="<your-token>"
请勿把访问令牌写入脚本、日志或版本库。
配置工作区和项目
查看当前配置:
yike config get
设置默认工作区:
yike config set workspaceId <workspaceId>
交互式选择该工作区中的项目:
yike config set projectId
脚本或 AI Agent 应先获取项目列表,再显式设置项目 ID:
yike config list projectId --format json
yike config set projectId <projectId> --format json
也可以通过 --workspace-id 和 --project-id 为单次生成覆盖默认配置。
生成图片
yike generate image "一张未来感咖啡品牌海报" \
--aspect-ratio 16:9 \
--resolution 1K \
--wait
生成多张图片并输出 JSON:
yike generate image "暖色水彩风格的海边小镇" \
--n 2 \
--wait \
--format json
查看当前支持的模型和完整参数:
yike generate image --help
yike generate image --help --format json
生成视频
yike generate video "5 秒咖啡广告短片,镜头缓慢推进" \
--duration 5 \
--resolution 720P \
--wait
查看当前支持的模型和完整参数:
yike generate video --help
yike generate video --help --format json
结构化 help 只读取内置模型目录与本地白名单缓存,不发起网络请求;模型条目按 model + taskType + mode 扁平导出 capability manifest,通过输入/输出模态、typed parameters、参考素材和条件约束描述能力。字段缺失表示当前上游能力未声明,目录之外的显式 --model 仍会透传给服务端。完整字段与兼容规则见 docs/model-help-json.md。
提交生成任务前,CLI 会展示预计积分消耗并请求确认。自动化流程可以先使用 --dry-run 检查计费估算和请求参数;JSON 中只有 estimation.matched: true 才表示预估有效,matched: false 是价格未知而不是免费,此时 insufficient 为 null。仅在预估有效且已经获得用户授权时使用 --yes 跳过确认。
使用本地参考素材
本地图片或视频必须先上传为 Yike 媒资:
yike media upload "/absolute/path/to/reference.png" --format json
上传完成后,从 JSON 结果中取得非空的 mediaId,再传给生成命令:
yike generate video "让画面中的人物自然转身" \
--reference-image <mediaId> \
--wait \
--format json
支持的本地格式:
- 图片:
png、jpg、jpeg、bmp、webp
- 视频:
mp4、mov
上传超时时,执行返回结果中的 resumeCommand 继续等待。上传或注册失败时,可以重新执行相同的 media upload 命令,CLI 会使用本地检查点继续处理。
外部工具已取得 CreateUploadMedia 响应时,可通过进程 stdin 传入 JSON,运行 yike media upload "<path>" --upload-info-stdin --format json,无需登录或凭证文件。该模式仅上传 OSS 对象,返回 Uploaded,不代表媒资已就绪。协议与 Agent 调用示例见 直接凭证上传。
HTTP(S) 素材地址和已有的 mediaId 可以直接传给相应的 --reference-image 或 --reference-video 参数,不需要重复上传。
异步任务
不使用 --wait 时,生成命令会返回异步任务信息。可以使用任务 ID 继续查询:
yike job watch <jobId> --wait --format json
恢复本机记录的任务:
yike job recover <jobId> --format json
如果命令返回 resumeCommand 或 nextAction.command,建议直接执行该命令,以保留原任务的工作区、项目、轮询和输出格式参数。
Yike AI 原子能力
Yike AI 的公开目录由 yike ai list --format json 返回,当前固定包含 15 项 core 和 5 项 supporting,共 20 项。命令只使用 yike ai 下的语义化路径与类型化参数,完整参数表、示例、结果门槛和不支持项见 skills/using-yike-cli/references/wonder-api.md。
先查看目录:
yike ai list --format json
提交示例:
yike ai image upscale image_123 --resolution 2K --dry-run --format json
yike ai video subtitle-generate video_123 --start 0 --dry-run --format json
yike ai audio music --prompt '轻快的夏日木吉他配乐' --dry-run --format json
yike ai voice-design submit --name 旁白 --bio '沉稳、清晰的成年声音' --dry-run --format json
yike ai job watch job_123 --format json
15 项 core 提交命令为:yike ai image free-view、yike ai image upscale、yike ai image relight、yike ai image inpaint、yike ai video trim、yike ai video upscale、yike ai video subtitle-remove、yike ai video subtitle-translate、yike ai video voice-translate、yike ai video understand、yike ai script to-shotlist、yike ai prompt reverse、yike ai video audio-extract、yike ai video audio-demix、yike ai audio music。5 项 supporting 提交命令为:yike ai video subtitle-generate、yike ai voice-design submit、yike ai prompt generate、yike ai audio-resynth submit、yike ai audio tts;智能字幕使用 subtitle-get,声音设计和提示词生成使用各自的 get,音频重合成使用 get/batch-get,TTS 使用 audio get,另有 ai job get/watch/list,详见完整参考。提示词生成和智能字幕不提供批量查询。
本地图片/视频必须先执行 yike media upload "<path>" --format json,只解析 stdout;只有返回非空 mediaId 且 status 为 Normal 才能提交。提交先用完整参数执行 --dry-run,展示最终参数并等待用户确认,再以相同业务参数改用 --yes;--dry-run 不消耗额度,真实提交可能消耗额度。需要结果时追加 --wait,提交返回的 jobId、status: Submitted 和 resumeCommand 都不代表完成。只有终态成功且 result.media、result.text、result.subtitles、result.voices 或 result.shots 等领域结果存在,才可报告完成;超时原样执行 resumeCommand,失败不要静默重提。
不得传入或转发 URL、path、method、header、token、Authorization 或原始请求体。JSON 只解析 stdout,错误或 text 输出不提取结构化结果。yike smart-job 不是公开命令或产品概念,不得公开或使用。
MCP 代理
mcp proxy 仅在安装包预配置了对应 server alias 时可用。当前公网生产包 @yikeai/cli 未配置 yike-aigc;以下配置只适用于已启用该 alias 的预发或定制构建,否则命令会在联网和鉴权前返回未配置错误:
command: yike
args: ["mcp", "proxy", "--server", "yike-aigc"]
mcp proxy 是长期协议进程和长期登录态委托层。Host 不传 --token、--header、--url 或 --resource,也不在 Host 内做 OAuth;代理只使用保存在 Yike CLI 中的 OAuth access/refresh pair,并把当前有效 access token 发送到构建期固定的获准 MCP HTTPS Origin。环境 PAT 和保存 PAT-only 会被明确拒绝,并提示执行 yike auth login。
该进程的 stdout 只承载 JSON-RPC,stderr 只用于诊断;不要追加 --format 或解析普通结果。当前构建可用的 server alias 与参数边界见 yike mcp proxy --help。
检查生成结果
查询一个或多个媒资:
yike media info <mediaId> --format json
检查视频时长和最低分辨率:
yike media doctor <mediaId> \
--expect-duration 5 \
--min-width 1280 \
--min-height 720 \
--format json
AI Agent 集成
全局安装或升级 CLI 时,会自动尝试将内置的 using-yike-cli skill 同步到常见 Agent skill 目录。需要手动安装或修复时执行:
yike self skill install --format json
安装到指定的 skill 根目录:
yike self skill install --target <skill-root> --format json
除 mcp proxy 外,Agent 调用 CLI 时建议统一使用 --format json,并根据返回的 jobId、mediaId、resumeCommand 或 nextAction.command 继续后续操作。mcp proxy 按专用协议规则运行,不能追加 --format。
匿名使用统计
Yike CLI 默认通过 HTTPS 向 https://gm.mmstat.com/yikecom.cli.use 发送一条 A+ Click(CLK)类型的命令终态事件,用于统计命令使用量、成功率、版本分布和执行耗时。内网包 @ali/yike-cli 与公网包 @yikeai/cli 均默认启用;--help、-h、help、--version 和 -V 不发送事件。
单条事件只包含以下白名单字段:
- 归一化命令名,例如
generate image、media upload;yike ai 各子命令与 mcp proxy 同样按完整命令路径记录,例如 ai image free-view、ai job get、mcp proxy。命令路径之后的位置参数(素材 ID、prompt、配置键)以及 --server、--model 等选项和取值一律不上报;无法识别的命令固定记录为 unknown
success、failure 或 pending 执行结果、退出码和执行耗时
- CLI 包名、CLI 版本、操作系统、Node.js 版本和遥测协议版本
- 仅用于单次事件排查和去重的随机
run_id
CLI 不会上报原始命令行参数、选项值、prompt、文件路径、素材或任务 ID、URL、token、Cookie、配置内容、错误消息或堆栈、trace 内容、Git 用户名、邮箱及 Yike 账号信息。CLI 只把白名单事件交给一个 detached 后台 reporter 进程并立即继续退出,不等待 DNS、TLS 或服务端响应;reporter 自身的网络请求最长运行 1 秒,上报失败不会改变原命令的耗时、输出和退出码。
可以持久化关闭匿名使用统计:
yike config set telemetryDisabled true
也可以只对当前环境关闭:
export YIKE_TELEMETRY_DISABLED=1
true 和 yes(不区分大小写)也会关闭上报,0、false、no 会显式启用;空值或其他非法值不覆盖已保存的 telemetryDisabled。旧变量名 YIKE_DISABLE_TELEMETRY 仍兼容,但新配置应使用 YIKE_TELEMETRY_DISABLED。排查 reporter 无法启动时,可临时设置 YIKE_TELEMETRY_DEBUG=1;它只向 stderr 输出脱敏的 spawn 错误码。
环境变量
环境变量会覆盖本地保存的默认配置:
YIKE_API_TOKEN | Yike API 访问令牌 |
YIKE_WORKSPACE_ID | 默认工作区 ID |
YIKE_PROJECT_ID | 默认项目 ID |
YIKE_PRODUCTION_ID | 项目 ID 的兼容变量 |
YIKE_MODEL | 默认生成模型 |
YIKE_TELEMETRY_DISABLED | 设为 1、true 或 yes 时关闭匿名使用统计 |
YIKE_DISABLE_TELEMETRY | 匿名使用统计关闭开关的兼容旧变量名 |
YIKE_TELEMETRY_DEBUG | 设为 1、true 或 yes 时输出脱敏的 reporter spawn 错误码 |
更新与卸载
检查是否有新版本:
yike update --check
升级到最新版本:
yike update
使用 npm 卸载:
npm uninstall -g @yikeai/cli
常见问题
yike: command not found
检查 npm 全局可执行目录是否位于 PATH:
npm prefix -g
安装时报 Node.js 版本不兼容
升级到 Node.js 20 或更高版本后重新安装。
npm 返回 404
确认使用的是 npm 官方 registry:
npm install -g @yikeai/cli --registry=https://registry.npmjs.org
登录或鉴权失败
重新执行:
yike auth login
项目无权限或项目配置错误
重新获取当前账号可用的项目并设置正确的 projectId:
yike config list projectId --format json
yike config set projectId <projectId> --format json
许可证
本项目采用 MIT 许可证。