New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

@yikeai/cli

Package Overview
Dependencies
Maintainers
3
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@yikeai/cli

Yike CLI for local media upload and generation workflows

latest
npmnpm
Version
0.5.0
Version published
Weekly downloads
233
-45.31%
Maintainers
3
Weekly downloads
 
Created
Source

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
# Agent / 脚本读取当前可见模型、默认值和能力
yike generate image --help --format json

生成视频

yike generate video "5 秒咖啡广告短片,镜头缓慢推进" \
  --duration 5 \
  --resolution 720P \
  --wait

查看当前支持的模型和完整参数:

yike generate video --help
# Agent / 脚本读取参考输入、时长、分辨率、比例和音频能力
yike generate video --help --format json

结构化 help 只读取内置模型目录与本地白名单缓存,不发起网络请求;模型条目按 model + taskType + mode 扁平导出 capability manifest,通过输入/输出模态、typed parameters、参考素材和条件约束描述能力。字段缺失表示当前上游能力未声明,目录之外的显式 --model 仍会透传给服务端。完整字段与兼容规则见 docs/model-help-json.md

生成命令在 dry-run 和提交前校验已知模型与已同步 taskType 的兼容性,错误时列出支持的任务类型;未知模型及尚未同步的显式 taskType 仍透传。视频生成的图片 mediaId 使用 --reference-image--reference-media-id 表示视频参考。图片和视频的 --n 均为正整数,默认 1,数量会进入请求和积分预估。--size 必须为正整数 宽*高--aspect-ratio 必须为正数 宽:高;格式正确的自定义比例仍透传给服务端。--format 只接受 jsontext

提交生成任务前,CLI 会展示预计积分消耗并请求确认。自动化流程可以先使用 --dry-run 检查计费估算和请求参数;JSON 中只有 estimation.matched: true 才表示预估有效,matched: false 是价格未知而不是免费,此时 insufficientnull。仅在预估有效且已经获得用户授权时使用 --yes 跳过确认。

使用本地参考素材

本地图片或视频必须先上传为 Yike 媒资:

yike media upload "/absolute/path/to/reference.png" --format json

上传完成后,从 JSON 结果中取得非空的 mediaId,再传给生成命令:

yike generate video "让画面中的人物自然转身" \
  --reference-image <mediaId> \
  --wait \
  --format json

支持的本地格式:

  • 图片:pngjpgjpegbmpwebp
  • 视频:mp4mov
  • 音频:mp3wavm4aaac(ADTS)、flacogg
  • 文档:pdfdocdocxtxtmdcsvxlsxlsxpptpptx

单文件大小上限与前端通用上传一致:图片 50 MiB、视频 4 GiB、音频 15 MiB、文档 100 MiB(按 1024 进制,等于上限允许上传)。media uploadoss upload 共用该检查;前端资产页或生成入口的额外限制由对应入口执行。

文档通过 CommonFile 通道申请上传凭证。上传成功不代表下游模型支持该格式,使用时仍需遵守对应命令的输入能力。

上传超时时,执行返回结果中的 resumeCommand 继续等待。上传或注册失败时,可以重新执行相同的 media upload 命令,CLI 会使用本地检查点继续处理。

外部工具已取得 CreateUploadMedia 响应时,运行 yike oss upload "<path>" --upload-info '<response-body-json>' --format json--upload-info 直接接收未包裹的响应 body,不要再套 { "body": ... }。该命令无需登录,只上传 OSS 对象并返回 Uploaded,不会注册或等待 Yike 媒资。完整字段、程序调用与恢复规则见 OSS 直接上传

HTTP(S) 素材地址和已有的 mediaId 可以直接传给相应的 --reference-image--reference-video 参数,不需要重复上传。

异步任务

不使用 --wait 时,生成命令会返回异步任务信息。可以使用任务 ID 继续查询:

yike job watch <jobId> --wait --format json

恢复本机记录的任务:

yike job recover <jobId> --format json

如果命令返回 resumeCommandnextAction.command,建议直接执行该命令,以保留原任务的工作区、项目、轮询和输出格式参数。

Yike AI 原子能力

Yike AI 的公开目录由 yike ai list --format json 返回,当前固定包含 15 项 core 和 4 项 supporting,共 19 项。命令只使用 yike ai 下的语义化路径与类型化参数,完整参数表、示例、结果门槛和不支持项见 skills/using-yike-cli/references/ai-capabilities.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-viewyike ai image upscaleyike ai image relightyike ai image inpaintyike ai video trimyike ai video upscaleyike ai video subtitle-removeyike ai video subtitle-translateyike ai video voice-translateyike ai video understandyike ai script to-shotlistyike ai prompt reverseyike ai video audio-extractyike ai video audio-demixyike ai audio music。4 项 supporting 提交命令为:yike ai video subtitle-generateyike ai voice-design submityike ai audio-resynth submityike ai audio tts;智能字幕使用 subtitle-get,声音设计使用 get,音频重合成使用 get/batch-get,TTS 使用 audio get,另有 ai job get/watch/list,详见完整参考。智能字幕不提供批量查询。

TTS 先用 yike ai audio voices --all --format json 获取当前账号可见的全部音色,包含官方、上传和 AI 生成三个来源。可用 --source official --language zh --gender female--name '播报' 筛选。输出 voices[] 包含 voiceId、名称、描述、语言、性别、年龄和可用的试听信息;complete: true 表示所选范围完整。未传 --all 时只读取每个所选来源的一页,按 sources[].nextPageNo 继续分页。音色列表查询只读,不创建生成任务。

将列表返回的真实 voiceId 传给 yike ai audio tts --voice <voiceId> --text '你好',先 --dry-run --format json,确认后使用 --yes --wait --format json。CLI 自动查询并补齐音色名称、性别;dry-run 同样需要登录和联网。可成对传入 --emotion happy --emotion-intensity 0.3;情绪支持 happy/angry/sad/fear/hate/low/surprise/neutral,强度 0–1、步长 0.01,Child/OldAge 音色最高 0.5。不要传试听媒资 ID 或旧 NLS 音色短名,音频格式由服务端决定,不接受 --audio-format。保存了本地记录的旧 TTS 任务仍按原查询协议恢复。

本地图片/视频必须先执行 yike media upload "<path>" --format json,只解析 stdout;只有返回非空 mediaIdstatusNormal 才能提交。提交先用完整参数执行 --dry-run,展示最终参数并等待用户确认,再以相同业务参数改用 --yes--dry-run 不消耗额度,真实提交可能消耗额度。需要结果时追加 --wait,提交返回的 jobIdstatus: SubmittedresumeCommand 都不代表完成。只有终态成功且 result.mediaresult.textresult.subtitlesresult.voices 等领域结果存在,才可报告完成;超时原样执行 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,并根据返回的 jobIdmediaIdresumeCommandnextAction.command 继续后续操作。mcp proxy 按专用协议规则运行,不能追加 --format

匿名使用统计

Yike CLI 默认通过 HTTPS 向 https://gm.mmstat.com/yikecom.cli.use 发送一条 A+ Click(CLK)类型的命令终态事件,用于统计命令使用量、成功率、版本分布和执行耗时。内网包 @ali/yike-cli 与公网包 @yikeai/cli 均默认启用;--help-hhelp--version-V 不发送事件。

单条事件只包含以下白名单字段:

  • 归一化命令名,例如 generate imagemedia uploadoss uploadyike ai 各子命令与 mcp proxy 同样按完整命令路径记录,例如 ai image free-viewai job getai audio voicesmcp proxy。命令路径之后的位置参数(素材 ID、prompt、配置键)以及筛选条件、音色资料、--server--model 等选项和取值一律不上报;无法识别的命令固定记录为 unknown
  • successfailurepending 执行结果、退出码和执行耗时
  • CLI 包名、CLI 版本、操作系统、Node.js 版本和遥测协议版本
  • 仅用于单次事件排查和去重的随机 run_id

从遥测协议 schema_version: 2 起,后台 reporter 还会在 A+ 请求的顶层 cna 字段发送一个持久化的随机匿名访客 ID,用于对同一配置目录的多次执行去重。ID 首次使用时随机生成,保存在 ~/.yikecli/telemetry-id(设置 YIKE_CONFIG_DIR 时位于该目录),文件权限为 0600;并发首次运行复用同一个 ID。它不取自浏览器、账号、token、主机名或硬件信息,不会随登录、退出登录或 CLI 升级变化。内网包和公网包使用同一配置目录时共享这个 ID。

因此事件 PV 表示执行事件数,UV 的目标口径是独立匿名配置实例数,不是独立账号或真实人数。同一账号在不同电脑上分别计数;复制整个配置目录会复制访客身份,删除 telemetry-id 后的下一次上报会生成新身份。历史缺少稳定标识的数据无法通过此次修改重新去重。

关闭匿名统计、执行帮助或版本命令时不会创建或读取访客 ID。ID 的读写仅发生在后台 reporter;文件损坏或无法读写时,reporter 跳过上报并以非零状态退出,不临时生成替代身份,也不影响 CLI 结果。确认需要重置匿名身份时,可删除上述独立文件;无需删除登录配置。

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

trueyes(不区分大小写)也会关闭上报,0falseno 会显式启用;空值或其他非法值不覆盖已保存的 telemetryDisabled。旧变量名 YIKE_DISABLE_TELEMETRY 仍兼容,但新配置应使用 YIKE_TELEMETRY_DISABLED。排查 reporter 无法启动时,可临时设置 YIKE_TELEMETRY_DEBUG=1;它只向 stderr 输出脱敏的 spawn 错误码。

环境变量

环境变量会覆盖本地保存的默认配置:

变量用途
YIKE_API_TOKENYike API 访问令牌
YIKE_WORKSPACE_ID默认工作区 ID
YIKE_PROJECT_ID默认项目 ID
YIKE_PRODUCTION_ID项目 ID 的兼容变量
YIKE_MODEL默认生成模型
YIKE_TELEMETRY_DISABLED设为 1trueyes 时关闭匿名使用统计
YIKE_DISABLE_TELEMETRY匿名使用统计关闭开关的兼容旧变量名
YIKE_TELEMETRY_DEBUG设为 1trueyes 时输出脱敏的 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 许可证。

FAQs

Package last updated on 22 Sep 2026

Related posts