EVA CLI 命令参考

eva-cli命令参考

登录态:login / logout / whoami / auth status

  • eva login [--port <port>] [--no-open] — 通过浏览器登录,JWT 存入系统钥匙串。

    • --port <port>:固定回环端口(默认由 OS 随机选空闲端口)。

    • --no-open:不自动打开浏览器,只打印授权 URL 供手动复制。

    • 换用户登录时会重置本地 current tenant/project,避免仍指向上一个用户的资源。

  • eva logout — 登出,清除当前保存的 token。

  • eva whoami — 显示当前登录身份(evaUserId / platformRole / profile)。

  • eva auth status — 显示登录状态与 token 过期时间,三态:not signed in / expired / signed in

租户:tenant init | list | use | current

init / list 直接调用后端;use / current 只读写本地 config。

  • eva tenant init — 初始化 / 获取你的默认租户(幂等;身份取自 JWT)。

  • eva tenant list — 列出你所属的租户,当前租户以 * 标记。

  • eva tenant use <tenantId> — 设置当前租户(仅本地)。

  • eva tenant current — 显示当前租户(本地)。

项目:project list | create | use | current | archive

list / create / archive 调用后端(tenantId 拼进 URL path);use / current 只读写本地 config。

  • eva project list [--tenant <tenantId>] — 列出租户下的项目(默认当前租户),当前项目以 * 标记,并显示 default / 状态标签。

  • eva project create <name> [--tenant <tenantId>] [--description <text>] — 在租户下创建项目。

  • eva project use <projectId> — 设置当前项目(仅本地)。

  • eva project current — 显示当前项目(本地)。

  • eva project archive <projectId> [-y] — 归档项目(软删除,后端无硬删除);默认交互确认,-y / --yes 跳过。

API Key:key create | list | rm | show | save

均在某个 project 下操作:默认用当前项目,--project <projectId> 可覆盖。

  • eva key create <name> [--project <id>] [--description <text>] [--ttl <90d|180d|365d|never>] [--no-show-key] — 签发一把新 Key,完整明文默认只回显一次

    • 不带 --ttl 且在交互终端(TTY)时,弹菜单选有效期;非交互(--json / 非 TTY)默认 never(永久)。

    • --no-show-key:不回显明文——终端不打印 raw_full_key--json 输出里也置为 null。适合 CI / 随后立即 eva key save 注入 .env 的场景,避免明文落进终端或日志。此时明文将无法再次取回(user 类型 Key 可用 eva key show <id> 事后查看)。

  • eva key list [--project <id>] [--status <ACTIVE|SUSPENDED|REVOKED>] [--page <n>] [--size <n>] — 列出项目下的 Key(脱敏),含 EXPIRES_AT 列。--page 为 0 基页码。

  • eva key rm <credentialId> [--project <id>] [-y] — 吊销 Key(吊销即删除,不可撤回);-y / --yes 跳过确认。

  • eva key show <credentialId> [--project <id>] — 显示某把 Key 的完整明文(仅 user 类型 Key)。

  • eva key save [--key-name <name>] [--project <id>] [--dir <path>] — 把一把 user 类型 Key 的明文写进工程 .env

    • 目标文件名 / 变量名按最近的 .eva/project.json 绑定解析,兜底 .env + EVA_GATEWAY_API_KEY

    • 默认从当前项目的 ACTIVE user 类型 Key 里随机取一把;--key-name 指定具体 Key。

    • --dir 指定用于解析绑定 / 写入 .env 的目录(默认当前目录)。

    • 明文只落文件、不回显;--json 会输出写入的路径与变量名。

脚手架:init

  • eva init [name] [--template <id>] [--dir <path>] [--from <path|git-url>] [--project <id>] [--new-project] [--tenant <id>] [-y]
    • 默认仅初始化项目:创建 / 绑定项目 + 设为当前 + 写 .eva/project.json 绑定。不签 Key、不写 .env、不打印明文

    • --template <id>:额外拉取 quickstart 模板文件(仍不写 .env)。

    • --dir <path>:基目录;给定 name 则在其下创建 <dir>/<name>,仅给 --dir 则使用其本身;两者均未给定时 name 即相对当前目录的目录。

    • --from <path|git-url>:覆盖模板来源(配合 --template)。

    • --project <id>:绑定到已有项目(跳过复用 / 新建)。

    • --new-project:强制新建项目而非复用。

    • --tenant <id>:指定租户(默认当前租户 / 自动 init)。

    • -y / --yes:目标目录已有文件时跳过覆盖确认(配合 --template)。

模板:template list | pull

独立拉取模板,免登录、不初始化项目

  • eva template list — 列出可用的 quickstart 模板。

  • eva template pull <id> [--dir <path>] [--from <path|git-url>] — 将模板克隆到目录。要求目标目录为空目录(忽略 .env/.eva)

    • --dir:目标目录(默认:当前目录)。

    • --from:覆盖模板来源(本地路径或 git URL)。

全局选项

  • --json:JSON 输出(数据走 stdout,错误走 stderr,形如 { error: { code, message, hint } });供脚本 / CI

  • --verbose:输出调试信息到 stderr(绝不打印 token / 明文 Key)

  • --no-color:关闭彩色输出