Summary
arkcli 认证管理:交互式登录、Volc SSO 登录、查看状态、退出登录、生成 ARK API Key (apikey)、以及云开发机/CI 用 `arkcli init-volc` 从 VOLC_INIT_* 环境变量无交互引导 platform profile。0.1.16 起 SSO 登录走 Gate 1+2 自动绑定 Profile 切面 (type/region/project/owner_trn);AK/SK login 通道暂?
volcengine/ark-cli
arkcli 认证管理:交互式登录、Volc SSO 登录、查看状态、退出登录、生成 ARK API Key (apikey)、以及云开发机/CI 用 `arkcli init-volc` 从 VOLC_INIT_* 环境变量无交互引导 platform profile。0.1.16 起 SSO 登录走 Gate 1+2 自动绑定 Profile 切面 (type/region/project/owner_trn);AK/SK login 通道暂?
npx skills add volcengine/ark-cli --skill arkcli-auth
arkcli 认证管理:交互式登录、Volc SSO 登录、查看状态、退出登录、生成 ARK API Key (apikey)、以及云开发机/CI 用 `arkcli init-volc` 从 VOLC_INIT_* 环境变量无交互引导 platform profile。0.1.16 起 SSO 登录走 Gate 1+2 自动绑定 Profile 切面 (type/region/project/owner_trn);AK/SK login 通道暂?
Other skills from volcengine/ark-cli · top by installs.
npx skills add volcengine/ark-cli
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
13,044 B
SUMMARY.md
696 B
CRITICAL — 开始前 MUST 先用 Read 工具读取 [../arkcli-shared/SKILL.md](../arkcli-shared/SKILL.md),其中包含认证闸门、配置排查与共享安全规则 CRITICAL — 用户目标是其他业务命令时,必须先判断是不是被认证阻塞,再决定是否进入本 skill。 CRITICAL — auth 是身份/TTY 工作流,全域不注册 --dry-run;不要生成该 flag。
⚠️ 0.1.16 变化总览(必读):
isdefault profile.OwnerTrn,4-case 分别走 BuildFirstProfile (新建) / GUIDESKIP (复用) / 提示切 default / 提示新建。详见 docs/volc-sso.md。auth login --access-key / --secret-key 已注释,promptui 也移除"AK/SK"选项;SSO(火山)+ arkcli auth login --no-browser(根命令 flag, 不是 volc-sso 子命令 flag)是唯一登录入口。activeprofile.{name,type,region,project,ownertrn} 和 profilessummary[...];顶层 authmethod/loggedin/volcsso/arkapikey 等老字段全部保留(向后兼容)。arkcli profile:config init/list/show/switch/delete 已 deprecated,详见 [../arkcli-config/SKILL.md](../arkcli-config/SKILL.md)。BuildFirstProfile 的 project 步骤改为经 IAM ListProjects 拉当前身份名下真实 active project 列表交互选(拉取失败/无权限回退兜底 default,不阻断登录)。登录后想换 project 不必重登:arkcli profile project [<name>](拉同一列表重选,把 platform profile 重派生到新 project,个人版 plan profile 保留),详见 [../arkcli-profile/SKILL.md](../arkcli-profile/SKILL.md)。arkcli auth login 交互式浏览器 SSO 分支支持借用本机 volcengine-cli 登录态:检测到 ve >= 1.0.45 且已 ve login 时,直接接管 STS 落一份 arkcli identity (identitystore/<key>/metadata.json.source="ve", 不写 IDToken/refreshtoken/ClientID; STS 由 volcengine-go-sdk 内部持 refreshtoken 自动 refresh)。用户视角: 少一次浏览器授权; agent 视角: authmethod 变成 "sts" 而非 "sso", 但 logged_in=true。检测失败 / ve 未登录 → 自动降级 arkcli 原生 SSO OAuth 流。详见 [references/arkcli-auth-login.md](references/arkcli-auth-login.md) 的"volcengine-cli 登录态借用"节。arkcli<!-- AK/SK 通道在 0.1.16 暂关 (见上方说明); 恢复后取消下条注释 --> <!-- - 使用 AK/SK 做非交互登录 -->
arkcli auth whoamiVOLCINIT* 凭证,无交互引导** —— 用 arkcli init-volc(不是 SSO)云开发机 / CI 等**已经把火山凭证注入成 VOLCINIT* 环境变量**的场景,用 arkcli init-volc 一条命令、零交互地落一个火山 platform profile 并设为 default,让后续 arkcli / OpenCode 调用开箱即用(数据面用 API Key,控制面用 STS)。
auth login 的区别:init-volc 不登录、不交互、不联网,纯消费环境变量;本地终端用户首次引导仍走 auth login(SSO)references/arkcli-auth-init-volc.md](references/arkcli-auth-init-volc.md)arkcli auth statusarkcli auth whoami,不要去 ~/.arkcli/.env 里手动解 JWTarkcli auth login volc-sso(不要只是"提示用户去跑")。SSO 是 0.1.16 唯一可用登录通道,覆盖控制面 BFF + 数据面绝大多数能力- 执行前用一句话告知用户:"检测到未登录,我现在为你启动 SSO 登录,请在弹出的浏览器中完成授权" - Bash 调用必须设 timeout=600000(10 分钟) - 启动失败(浏览器没装、open 失败、端口被占用、超时等)→ 不原地重试,把 stderr 贴回给用户,请用户手动在终端跑对应租户的登录命令(火山:arkcli auth login volc-sso) - 命令成功后立即回到用户原始任务,不要停在 auth 结果
--no-browser(AK/SK 通道 0.1.16 暂关,提到 AK/SK 时告知并引导走这里):agent 终端通常非 TTY,--no-browser 现为两段式,不再阻塞读 stdin(旧版在沙箱必报 读取授权码失败: EOF —— 进程在拿到授权码前就被 EOF 打断):- Phase 1:跑 arkcli auth login --no-browser。它打印授权 URL 并以 JSON 输出 {"stage":"authorizepending","authorizeurl":"...","nextcommand":"..."} 后立即退出(不傻等)。把 authorizeurl 原样转发给用户,请他在任意设备浏览器完成 SSO,复制页面显示的 base64 授权码回来。 - Phase 2:拿到授权码后跑 arkcli auth login --no-browser --code <授权码> 完成登录(读 Phase 1 落盘的 PKCE/state 换 token)。--code 必须连 --no-browser(单独写会报 --code 仅在 --no-browser 模式下有效)。 - 两段必须同一运行环境:Phase 1 落盘 ~/.arkcli/.sso-pending.json、Phase 2 读它接力,两条命令须共享同一 HOME / 同一持久化卷(同一容器 / 开发机);跨容器或跨 HOME 派发会让 Phase 2 报「没有待完成的…会话」。期间不要动 ~/.arkcli/。 - flag 位置:--no-browser / --code 都挂在 auth login 根命令上,不是 volc-sso 子命令;auth login volc-sso --no-browser 会报 unknown flag。 - 出错恢复:会话过期(TTL 10min) / 没有待完成的会话 → 重跑 Phase 1(确保同一 HOME);base64 解码失败 / state 不匹配(CSRF) / token 交换瞬时失败 → pending 仍在盘,TTL 内纠正后直接重试 Phase 2(贴对当前 authorize_url 的码,必要时从同一 URL 重新授权拿新码),不必重跑 Phase 1。 - 真人终端(TTY)下 arkcli auth login --no-browser 仍是一条命令交互式(打印 URL 后当场粘贴),行为不变。
arkcli auth loginarkcli auth logoutauth status 是默认入口;不要上来就 loginauth logout 是破坏性操作,必须由用户明确提出auth status 会对敏感字段做掩码,可直接用于排障,并会展示当前生效的 project_nameauth login 成功后会输出 auth_method;凭证存储位置是实现细节,不再回显路径arkcli auth login volc-sso)与 auth apikey 都会在选中 API Key 之后写入凭证存储;0.1.16 final clean-slate 模型: 整 arkcli 同一时间只 active 一个 identity, 新 SSO 跟旧 sub 不一致时清空所有 profile (含跨 tenant) 重建volcengine-cli >= 1.0.45 且已 ve login 时, arkcli auth login 会先尝试借用其登录态直接落 arkcli identity (省一次浏览器授权)。落盘差异见 [references/arkcli-auth-login.md](references/arkcli-auth-login.md): 不落 token.json (IDToken/refreshtoken/ClientID 由 ve SDK 管), 但落 sts.json + metadata.json.source="ve"; auth whoami 显示 authmethod="sts" 而非 "sso", 是合法登录态。检测失败 / ve 未登录 → 自动降级 arkcli 原生 SSO OAuth。arkcli auth apikey 管的是 arkcli 方舟数据面/控制面链路使用的 ARK API Key。它不能让广场语音模型获得 +chat / +gen / +deploy / +code-example / usage / pricing 能力;用户问 TTS、ASR、配音、语音模型接入时,不要把问题引导成"先 auth apikey"。arkcli api apikey.list --params '{"PageSize":100}' --page-all --format json,不要跑 auth apikey — 后者是交互式选择并写入凭证存储,会改变当前生效 keyauth status 输出里的 arkapikey 字段,不需要再调远端arkcli-models、arkcli-chat、arkcli-gen、arkcli-deploy、arkcli-usage 被鉴权错误阻塞时,先回到这里../arkcli-config/SKILL.md](../arkcli-config/SKILL.md)| 用户怎么说 | 走哪个命令/skill |
|---|---|
| "我是谁/我的身份/当前用户/哪个账号/我自己的 IAM 用户 ID" | arkcli auth whoami |
| "查同事 zhangsan 的 IAM 用户 ID/查别人的 IAM 用户 ID" | 转 arkcli-profile(查看当前 profile 并列出可用 API Key)+ 提示用户使用 arkcli iam 命令(如有) |
| "API Key 泄露/废弃旧 Key/换新 Key/rotate/轮换 API Key" | 转 arkcli-plans:plans personal rotate-apikey 或 plans team rotate-apikey |
| "命令突然报 key 失效/401/InvalidApiKey 但我没换过 key"(疑似后端轮换) | 转 arkcli-profile:先 arkcli profile keys refresh 同步后端 key 再重试(遇失败才触发的反应式自愈,非预防性);refresh 救不了再看 [references/auth-modes.md](references/auth-modes.md) |
| "看我有哪些 Key/Key 列表/可用 Key" | 转 arkcli-profile:arkcli profile keys list |
| "切换默认 Key/用另一个 Key" | 转 arkcli-profile:arkcli profile keys use <key> |
| "AK/SK 登录/access key/secret key" | 告知通道暂关:当前版本 AK/SK 登录通道暂时关闭,请使用 SSO 登录,运行 arkcli auth login
| 命令 | 说明 |
|---|---|
arkcli auth status |
查看当前认证状态(凭证健康度) |
arkcli auth whoami |
查看当前认证身份(用户名 / IAM 用户 ID / 账号 ID 等),脚本与 Skill 用 |
arkcli auth login |
交互式选择登录方式(火山 SSO 浏览器 / 火山 SSO 无浏览器) |
arkcli auth login volc-sso |
浏览器 SSO 登录 |
arkcli auth login --no-browser |
无浏览器 SSO(cross-device)。TTY:一条命令交互式粘贴;非 TTY(agent/沙箱):Phase 1,打印 URL + authorize_pending JSON 后退出 |
arkcli auth login --no-browser --code <授权码> |
无浏览器 SSO Phase 2:把 base64 授权码喂回完成登录(agent/沙箱两段式的第二步) |
<!-- AK/SK 通道 0.1.16 暂关; 恢复后取消下行注释 --> <!-- \| arkcli auth login --access-key <ak> --secret-key <sk> \| 非交互 AK/SK 登录 \| --> | arkcli auth apikey | 获取并配置 ARK API Key(按 active profile 的 tenant 写入对应 identity store) | | arkcli auth logout | 删除本地凭证 |
references/arkcli-auth-login.md](references/arkcli-auth-login.md)references/arkcli-auth-status.md](references/arkcli-auth-status.md)references/arkcli-auth-whoami.md](references/arkcli-auth-whoami.md)