` | [Grok 视频](https://docs.vibeapi.cn/zh/docs/grok-videos) |
编号一律从 1 开始、按数组顺序数;不点名时模型会自行参考全部素材,点名之后才能区分"主体用哪张、场景用哪张"。
链接必须是**公网可直接下载的 HTTPS 直链**,贴进无痕窗口能直接下载才算数。每个详情页都有完整的多素材示例。
## 错误与退款
**提交阶段报错,额度不扣;任务失败,额度全额退回**(用量日志里失败任务额度记为 0)。
| 现象 | 原因 | 怎么办 |
| --------------------------------------- | ------------------------- | ------------------------------------ |
| `model_not_found` | key 所在分组没有这个模型 | 确认 key 分组,或换模型名 |
| HTTP 400,提示缺时长 | 没传 `seconds` / `duration` | 补上;wan3.0 传字符串,Seedance 传数字(不传按 5 秒) |
| 提示该模型维护中 | 模型临时不可用 | 换模型,或稍后重试 |
| HTTP 400 `reference_videos_unsupported` | 可灵 4.0、wan3.0 暂不收参考视频 | 去掉参考视频;要参考动作可以先截一帧作参考图 |
| 提交成功但很快 `failed` | 生成失败 | 额度已全额退回,直接重试 |
参考素材导致失败的两个常见原因:
1. **链接不是公网可直接下载。** 要登录、要 Cookie、是分享页而非直链都不行。
贴进无痕窗口能直接下载才算数。
2. **在提示词里写了比例或时长。** 「竖屏」「16:9」「8 秒」会和参数冲突,
比例和时长只用 `aspect_ratio` 和 `seconds` 控制。
### 能力边界
| 做不到 | 说明 |
| ------------ | --------------------------------------------------------------------------------- |
| 续写 / 剪辑 / 延长 | 只做单条生成 |
| 固定随机种子 | 同一提示词两次结果不同,没有 seed 参数 |
| 任意模型收参考视频 | 可灵 4.0 与 wan3.0 暂不收,带了返回 400 `reference_videos_unsupported`;Seedance、MiniMax H3 收 |
| H3 上用首尾帧 | 上游不允许首尾帧与参考图混用,本接口只开放参考图。要首尾帧请用 `wan3.0-image-*` |
| 成片长期保留 | 取到就存自己那边 |
| 完成回调 | 只能轮询,没有 Webhook |
## 要点
* 先分清计费口径:**可灵 4.0、wan3.0 与 MiniMax H3 按秒,Seedance 按 token(时长 × 分辨率)**,每多一秒都花钱。
* 分辨率**写在模型名里**,请求体里的 `size` 覆盖不了它。
* **Seedance 用字节官方模型 ID**:`doubao-seedance-2-5-260628` 最长 30 秒、到 1080p、素材最多;`doubao-seedance-2-0-mini-260615` 最便宜。公众人物等敏感素材会被拒。
* 参考素材必须是**公网可直接下载**的 HTTPS 直链,不能要登录。
* 比例和时长**只用参数控制**,别写进提示词,会冲突。
* **可灵 4.0 与 wan3.0 暂不收参考视频**,带了返回 400;参考图和参考音频照常可用。
* 任务失败**全额退款**,重试即可;Seedance 系列请预留一次重试,公众人物等敏感素材会被审核拒掉。
* **H3 的分辨率不用传**,固定 768P;`adaptive` 比例只在带了图或视频时可用。
* **接口以本页为准**,不要照上游厂商的原文调用我们的域名——协议由网关翻译,端点和请求体都不一样。
想让画面更好看,接着读[视频生成工作流](https://docs.vibeapi.cn/zh/docs/videos-workflow)。
## 在线调试
填入你自己的 API Key 即可直接发起请求,参数表与响应结构由接口定义生成。
### 提交任务
### 查询状态
### 下载成片
# 接口参考
import { Card, Cards } from 'fumadocs-ui/components/card';
这里是逐端点的参数与响应定义,每页可直接在线调试(需填入你自己的 API Key)。
「怎么用」「选哪个」「有什么坑」在[调用指南](https://docs.vibeapi.cn/zh/docs/quickstart)里。
## 模型接口
## 账户接口
令牌、用量、日志、充值等——你自己账户下可调用的接口。
# Antigravity CLI(agy)
Antigravity CLI(命令 `agy`)是 Google Antigravity 的终端版,和开源的 Gemini CLI 不是同一个工具。接入 VibeAPI 后走 Gemini 原生协议,**只能用 Gemini 模型**,不需要登录 Google 账号。
**前提**:agy 1.3.5 及以上;令牌能用 Gemini 模型。
## 配置
下面的命令里,把 `sk-xxx` 换成你的令牌。令牌能用 Gemini 模型时,`setup` 会自动配置 agy;还没有安装 agy 的,它会问你是否安装,安装好再写配置:
```bash
vibecli setup --key sk-xxx
```
只让 agy 使用这个令牌:
```bash
vibecli setup --agykey sk-xxx
```
配置完成后,在任何终端都能直接运行 `agy`,用 `/model` 或 `--model` 选择模型。菜单里是这个令牌能用、agy 也认识的 Gemini 模型(如 Gemini 4 Argon、Gemini 3.8 Flash),第一个是默认模型。在新开的终端里,菜单还会带思考档位(低 / 中 / 高)。
## 写了什么
| 位置 | 写入 |
| ----------------------------------------- | --------------------------------------------------------------- |
| `~/.antigravity/settings.json`(权限 `0600`) | `gateway`:VibeAPI 地址、你的令牌、Gemini 原生协议;`models`:模型列表和默认模型。其它设置保留 |
| `~/.gemini/antigravity-cli/` 下的菜单变量文件 | 只有 `AGY_LLM_GATEWAY_MODELS`(带思考档位的菜单),不含令牌 |
| shell 配置(`.zshrc` / `.bashrc` 等) | 加一行加载上面这个文件,行尾带 `# vibecli:agy` 标记;Windows 上写成用户环境变量 |
旧版本 VibeCLI 写过的 `modelProvider: "gemini"` 和 `GEMINI_API_KEY` 会被清掉。
## 验证
运行 `agy`,发一句话能正常回复即配置完成。
## 为什么这样设计
agy 每次启动都读 `~/.antigravity/settings.json`,写进去后任何终端立即生效,已经打开的终端也不用重开。早期 VibeCLI 只用环境变量传令牌,Windows 上已打开的终端拿不到新变量,用户因此看不到新模型。
思考档位只能通过环境变量传给菜单,所以另写一个只含菜单的变量文件。shell 配置常被 dotfiles 仓库同步到网上,里面不放令牌。
网关模式只在 1.3.5 上完整验证过,更早的版本不保证可用。
## 排障
| 现象 | 原因 | 处理 |
| --------- | ----------------------- | ------------------------------------------- |
| 菜单里没有思考档位 | 在配置前就打开的终端里运行 | 新开一个终端 |
| 菜单里少了某个模型 | 这个令牌用不了它,或 agy 还不认识这个模型 | 在控制台确认令牌的分组;运行 `vibecli upgrade agy` 升级 agy |
| 提示版本过旧 | 低于 1.3.5 | 运行 `vibecli upgrade agy` |
## 移除
运行 `vibecli config agy remove`,或在 `vibecli config agy` 的菜单里选「移除」:删掉 `settings.json` 里的 `gateway`、`models`,以及菜单变量文件和 shell 配置里那一行;Windows 上删掉 VibeCLI 写的用户环境变量。之后 agy 回到 Google 账号登录。
# Claude Code
**前提**:Claude Code 2.1.291 及以上;令牌能用 Claude 模型。还没有安装 Claude Code 的,`setup` 会问你是否安装,也可以先用[安装命令](https://docs.vibeapi.cn/zh/docs/coding-tools#手动安装)安装。
## 配置
下面的命令里,把 `sk-xxx` 换成你的令牌。令牌能用 Claude 模型时,`setup` 会自动配置 Claude Code:
```bash
vibecli setup --key sk-xxx
```
只让 Claude Code 使用这个令牌:
```bash
vibecli setup --claudekey sk-xxx
```
打开菜单,选择模型、写入配置、移除或还原:
```bash
vibecli config claude-code
```
配置完成后**新开一个终端**,运行 `claude`。
一般不需要指定模型,默认用 Claude Code 自带的档位。
指定 Opus 档位使用的模型:
```bash
vibecli config tool-model set claude-code opus 'claude-opus-5-5[1m]'
```
再把它写进 Claude Code:
```bash
vibecli config claude-code --yes
```
取消指定,改回 Claude Code 的默认:
```bash
vibecli config claude-code clear-model
```
## 写了什么
| 文件 | 写入 | 保留 |
| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| `~/.claude/settings.json` | `env.ANTHROPIC_BASE_URL`、`env.ANTHROPIC_AUTH_TOKEN`;推荐环境变量(工具搜索、较长的请求超时、关闭非必要流量等);`/model` 菜单里的其它模型(`modelPicker`)和它们的压缩点(`modelSettings`);默认组合下顶层 `model: "opus[1m]"`;你没设置过的推荐设置(默认思考强度 `medium` 等) | hooks、MCP、权限、插件、你自己加的环境变量和菜单项 |
| `~/.claude.json` | 只补 `hasCompletedOnboarding: true`,跳过首次登录引导 | 项目信任状态、MCP 服务器等其它内容 |
| shell 配置(Windows 上是用户环境变量和 PowerShell 配置文件) | 删掉 export 过的 `ANTHROPIC_API_KEY`、`ANTHROPIC_BASE_URL`、`ANTHROPIC_*_MODEL` | 其它内容 |
`settings.json` 里旧的 `ANTHROPIC_API_KEY` 会被删掉,统一用 `ANTHROPIC_AUTH_TOKEN`。
## 验证
1. 新开终端,运行 `claude`,输入 `/status`:Anthropic base URL 应是 VibeAPI 的地址,认证来源是 auth token。
2. 输入 `/model`:能看到 Opus、Sonnet 等档位,后面是这个令牌能用的 GPT、Gemini、Grok、国产模型。
3. 发一句话,能正常回复即配置完成。
也可以运行 `vibecli doctor --deep`:它检查配置是否仍指向 VibeAPI,并通过 Claude Code 实际发一条请求(消耗少量额度)。
## 为什么这样设计
用默认组合时不写模型变量,Claude Code 升级后的新模型会自动出现在 `/model` 里;只有你明确选了别的模型才写。
换成能用默认模型的令牌后重新配置,回退会自动撤掉。
上下文达到 100 万 token 的模型写成 `<模型名>[1m]`,每个模型用到 80% 时自动压缩。最低版本定为 2.1.291:按模型设置压缩点从 2.1.288 起生效,2.1.288–2.1.290 有退出时丢消息的问题。
`ANTHROPIC_AUTH_TOKEN` 是给网关用的 Bearer 凭据,`ANTHROPIC_API_KEY` 是直连 Anthropic 用的。两个同时存在会互相干扰,所以只保留前者。
只在 `setup`、`config` 这类配置命令里删;`doctor`、`base` 不删,以免影响靠这些变量手动接入的用户。
你设置过的值都保留,只补没设置过的;只有「显示思考摘要」始终打开。
经第三方网关时,服务端安全检查不可用,每个动作都会停下等你回车。写入这个变量后改用本地检查;你设置过就不覆盖。
安装 code-review、feature-dev、frontend-design 等 10 个插件,每个只安装一次,你卸载的不会再装回来;其余插件在 Claude Code 里用 `/plugin` 自选。安装插件需要 Git。
## 修改后要不要重启
已经打开的 Claude Code 会话读的是旧配置,**重开一个会话**即可。删了 shell 里的环境变量时,还要**新开一个终端**。
## 排障
| 现象 | 原因 | 处理 |
| ----------------------- | --------------------------------------- | ------------------------------------------------------------ |
| `/status` 里地址不是 VibeAPI | shell 或企业托管配置里的变量盖过了 settings.json | 新开终端;运行 `vibecli doctor`,它会指出托管配置 |
| 第一条请求就报模型不存在 | 令牌的分组没有 Claude Code 默认的模型 | 重新运行 `vibecli setup --key <你的令牌>`,给这个档位换成能用的模型 |
| `/model` 里缺某个模型 | 这个令牌用不了它,或菜单还没同步 | 在控制台确认令牌的分组;重新运行 `vibecli setup --key <你的令牌>` 立即同步 |
| 提示版本过旧 | Claude Code 低于 2.1.291 | 运行 `vibecli upgrade claude-code`;更新渠道是 `stable` 时改成 `latest` |
| Windows 上提示未安装 Git | 没有 Git 时 Claude Code 改用 PowerShell 执行命令 | 用[安装命令](https://docs.vibeapi.cn/zh/docs/coding-tools#手动安装)安装 Git |
| 插件没有安装 | 未安装 Git,或镜像和 GitHub 都无法连接 | 安装 Git 或等网络恢复后,在 Claude Code 里用 `/plugin` 安装 |
## 移除
运行 `vibecli config claude-code remove`,或在 `vibecli config claude-code` 的菜单里选「移除」:删掉 VibeAPI 的地址、令牌和菜单项,其它设置保留。想回到 VibeCLI 修改前的状态,运行 `vibecli config claude-code restore`。
# Claude Desktop
**前提**:Claude Desktop 2.2553.0 及以上;令牌能用 Claude 模型。
## 配置
下面的命令里,把 `sk-xxx` 换成你的令牌。令牌能用 Claude 模型时,`setup` 在 macOS 和 Windows 上会一起配置桌面端;桌面端还没安装也会先写好配置,安装后打开即可使用:
```bash
vibecli setup --key sk-xxx
```
只让桌面端使用这个令牌:
```bash
vibecli setup --desktopkey sk-xxx
```
保留 Claude.ai 账号登录入口:
```bash
vibecli setup --desktopkey sk-xxx --claude-official on
```
打开菜单配置:
```bash
vibecli config claude-desktop
```
配置完成后要**完全退出 Claude Desktop 再打开**,只关窗口不够。VibeCLI 检测到桌面端正在运行时,会问你是否由它来重启。
## 写了什么
VibeCLI 在桌面端「第三方推理」的本地配置库里,新建并选中一条名为 `VibeAPI` 的配置:
| 内容 | 写入 |
| ------ | -------------------------------------------------------- |
| 推理方式 | 网关(gateway),地址是 VibeAPI 根地址,凭据是你的令牌 |
| 模型列表 | 这个令牌能用的 Claude 模型,第一个是默认模型;支持 1M 的标上 1M |
| 官方登录入口 | 默认隐藏 Claude.ai 登录(`--claude-official on` 保留) |
| 功能开关 | 网页抓取、工具搜索、内置浏览器、扩展、SSH 远程会话、导入导出、MCP 超时等,默认打开;只在你没设置过时写入 |
你自己在桌面端保存的其它配置都保留。移除时,选中项会交还给你原来的配置。
配置库位置:macOS `~/Library/Application Support/Claude-3p/`,Windows `%LOCALAPPDATA%\Claude-3p\`,Linux `~/.config/Claude-3p/`。
## 验证
1. 完全退出并重新打开 Claude Desktop。
2. 设置里的推理方式显示为第三方网关,选中的是 `VibeAPI`。
3. 模型菜单里是这个令牌能用的 Claude 模型,支持 1M 的显示 1M。
4. 发一句话,能正常回复即配置完成。
## 聊天记录
第三方推理模式下,聊天记录只存在这台电脑上。VibeCLI 默认打开了导入导出:在 **Settings → Import & export → Export…** 导出成 zip,换电脑后在 **Import…** 里选它导回去;claude.ai 网页上的历史也能从这里导入。步骤见[导出与迁移聊天记录](https://docs.vibeapi.cn/zh/docs/coding-tools/history#claude-desktop)。
## 为什么这样设计
托管配置要管理员或 root 权限才能安装,安装后设置窗口会被锁住;本地配置在三个平台上都不需要额外操作。
写入这个令牌能用的 Claude 模型,数量随令牌的分组变化,不是固定的三个。
桌面端会剔除非 Anthropic 厂商的模型名,并弹出「配置需要注意」,所以国产模型只写进 Claude Code。
登录官方账号后,请求不再经过 VibeAPI。需要在两边切换的,用 `--claude-official on`。
只在你没设置过时打开;关闭遥测的设置保持不变。打开 SSH 远程会话后,令牌会被带到你选的远程主机上。
注册表策略存在时,桌面端不读本地配置,普通权限也改不了它(以前从网关页面下载 .reg 的用户就有这一层)。需要删除旧值时,VibeCLI 会问你一次,再弹一次管理员确认。「不能确定」包括还没安装桌面端、应用商店版还没启动过。仍然不生效,用 `vibecli setup --desktop-registry on` 固定写注册表。
## 排障
| 现象 | 原因 | 处理 |
| ------------------------------ | -------------------------------------------------- | -------------------------------------------------------------------------------------- |
| 重开后仍不是 VibeAPI | 只关了窗口,没有完全退出;或有托管配置 | 从托盘 / 菜单栏完全退出再打开;运行 `vibecli doctor` 检查托管配置 |
| Windows 上始终不生效 | 注册表里有旧的 .reg 配置 | 运行 `vibecli setup --desktopkey <你的令牌>`,按提示确认,在系统弹窗里点击「是」;仍不生效用 `--desktop-registry on` |
| 报 `ERR_CERT_AUTHORITY_INVALID` | 当前网络把域名解析到了别的服务器 | 运行 `vibecli base auto` 换到备用地址;或换网络、改用公共 DNS |
| 提示「配置需要注意」 | 配置里有桌面端不接受的模型名 | 重新运行 `vibecli setup --desktopkey <你的令牌>`,VibeCLI 不写国产模型 |
| 模型菜单里没有 1M | 你的分组没有给这个模型开启 1M | 在控制台查看分组说明 |
| `setup --key` 跳过了桌面端 | 在 Linux 上且没有安装桌面端(Linux 上只配置已安装的),或令牌不能用 Claude 模型 | 在 macOS / Windows 上运行,或换一个能用 Claude 模型的令牌 |
## 移除
运行 `vibecli config claude-desktop remove`,或在 `vibecli config claude-desktop` 的菜单里选「移除」:删掉 `VibeAPI` 这条配置,并把选中项交还给你原来的配置;Windows 上同时清掉 VibeCLI 写过的注册表值。
只删模型列表、让桌面端自动发现模型:
```bash
vibecli config claude-desktop clear-model
```
# Codex
**前提**:Codex 0.122.0 及以上;令牌能用 GPT 模型。命令行和桌面版共用同一份配置,配置一次两边都能用。
## 配置
下面的命令里,把 `sk-xxx` 换成你的令牌。令牌能用 GPT 模型时,`setup` 会自动配置 Codex:
```bash
vibecli setup --key sk-xxx
```
只让 Codex 使用这个令牌:
```bash
vibecli setup --codexkey sk-xxx
```
关闭 1M 上下文(只改上下文设置,不动令牌):
```bash
vibecli setup --no-1m
```
重新打开 1M 上下文:
```bash
vibecli setup --1m
```
指定默认模型:
```bash
vibecli config tool-model set codex gpt-6-astra
```
再把它写进 Codex:
```bash
vibecli config codex --yes
```
配置完成后,**完全退出 Codex(包括桌面版)再打开**。
## 写了什么
| 文件 | 写入 | 保留 |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| `~/.codex/config.toml` | 服务商 `[model_providers.custom]`(VibeAPI 地址、Responses 协议、从 `auth.json` 取凭据);`model_provider = "custom"`;默认模型(`gpt-6-astra`)与思考强度 `high`;`model_catalog_json` 指向模型目录 | 你的 MCP、权限、沙箱、其它服务商等设置 |
| `~/.codex/auth.json` | `auth_mode: "apikey"` 和你的令牌 | — |
| `~/.codex/vibeapi-model-catalog.json` | 模型目录:Codex 自带的 GPT 模型,加上这个令牌能用的 Claude、Gemini、Grok、国产模型,每个模型带自己的上下文窗口和自动压缩点 | — |
服务商下如果有 cc-switch 等工具留下的 `experimental_bearer_token`,VibeCLI 会删掉它(原因见下文)。
## 验证
1. 完全退出 Codex 再打开(命令行重新运行 `codex`)。
2. 打开模型菜单:能看到 GPT 模型,以及这个令牌能用的 Claude、Gemini、Grok、国产模型。
3. 发一句话,能正常回复即配置完成。命令行里可以用 `/status` 确认当前服务商和模型。
## 为什么这样设计
cc-switch 这类工具会在服务商下留下 `PROXY_MANAGED` 占位符,Codex 会优先发送它,导致 401。令牌也不写在这里,以免你切换到别的服务商时被一起带过去。
使用自定义服务商时,Codex 不向网关请求模型列表,不写目录的话菜单里只有 GPT。导出自带目录的功能从 0.122 开始才有,所以最低版本是 0.122。
每个模型带自己的上下文窗口,用到 80% 时自动压缩。不写全局上下文设置,因为它会盖掉所有模型的值。1M 默认开启,关闭后上下文不超过 272K。
auto 分组的令牌看到的模型比官方分组少,这是正常的。Claude 每个系列只放最新的一个。
`setup` 配置好 Codex 后,如果发现以前的会话,会问你是否搬过来。当时没有搬的,之后运行 `vibecli codex sessions`。改之前会先备份,`--undo` 可以撤销;Codex 正在运行时它会拒绝执行。
## 排障
| 现象 | 原因 | 处理 |
| ------------------------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------- |
| `401 Unauthorized: Invalid token`,同一个令牌在 Claude Code 能用 | `config.toml` 里有切换工具留下的占位令牌,或 Codex 用 ChatGPT 账号登录过 | 运行 `vibecli setup --codexkey <你的令牌>`,然后完全退出 Codex 再打开 |
| 以前的会话不见了 | 换过登录方式,会话的服务商对不上 | 退出 Codex 后运行 `vibecli codex sessions` |
| 菜单里只有 GPT | 写目录时没找到本机的 Codex 程序,或版本低于 0.122 | 先运行 `vibecli upgrade codex`,再重新运行 `vibecli setup --codexkey <你的令牌>` |
| 提示版本过旧 | Codex 低于 0.122.0 | 运行 `vibecli upgrade codex` |
| 上下文比预期小 | 关闭过 1M | 运行 `vibecli setup --1m` |
## 移除
不再让 Codex 使用 VibeAPI(例如改回 ChatGPT 订阅)时,运行:
```bash
vibecli config codex remove
```
它删掉 VibeAPI 的服务商、令牌和模型目录引用,其它设置保留。之前在 Codex 里登录过 ChatGPT 的,会直接切回那个登录;没有登录过的,Codex 回到未登录状态,再运行下面的命令用 ChatGPT 订阅登录。Codex 桌面版要完全退出后重新打开,按提示登录。
```bash
codex login
```
这需要 VibeCLI 0.0.105 或更新版本。用旧版本移除后,Codex 仍会用 VibeAPI 的令牌登录(请求报 401),升级后再运行一次上面的移除命令即可。在 `vibecli config codex` 的菜单里选「移除」,效果相同。想回到 VibeCLI 修改前的状态,运行 `vibecli config codex restore`。
# 配置、备份与安全
## 文件在哪
| 内容 | 位置 |
| ------------- | ------------------------------------------- |
| VibeCLI 配置和令牌 | `~/.vibecli/config.yaml`,文件权限 `0600`(只有你能读) |
| VibeCLI 自己的备份 | `~/.vibecli/backups/*.yaml`,同样 `0600` |
| 工具配置的备份 | 各工具配置文件旁边的 `<文件名>.bak-<时间>`,每个文件保留最近 10 份 |
| 日志 | `~/.vibecli/<日期>.log`,按天一个文件,保留 14 天 |
各工具自己的配置文件位置见[各工具一览](https://docs.vibeapi.cn/zh/docs/coding-tools/tools)。
`config.yaml` 的大致结构:
```yaml
active_profile: default
profiles:
default:
api_key: sk-...
tool_api_keys: # 可选:工具专属令牌,优先于 api_key
codex: sk-...
base_url: https://www.vibeapi.cn
models:
opus: claude-opus-5-5[1m]
sonnet: claude-sonnet-5[1m]
tool_models: # 可选:按工具覆盖模型
codex: { opus: gpt-6-astra }
```
## 令牌怎么保存
令牌明文保存,文件权限 `0600`,换电脑不会因为加密绑定了机器而失效。请把用户目录和备份当作敏感数据。`vibecli status` 只显示令牌的指纹。
## 备份与还原
原文件已损坏(不是合法的 JSON / TOML)时,VibeCLI 拒绝写入;加 `--force` 才会先备份、再整份重写。还原前也会先备份当前状态,所以还原本身也能撤销。
| 命令 | 作用 |
| ----------------------------- | -------- |
| `vibecli config <工具> restore` | 回到上一次修改前 |
| `vibecli config <工具> backups` | 列出所有备份 |
## 自动更新与模型同步
只有全局安装时才自动更新(每次启动都检查新版本,更新失败不影响原命令)。用 `npx` 运行,或带 `--json`、`--non-interactive`、`--dry-run` 时不更新。模型菜单同步只改菜单,不动令牌和你选中的模型。
## 环境变量
| 变量 | 作用 |
| --------------------------------- | ------------------- |
| `VIBECLI_DISABLE_AUTO_UPDATE=1` | 关闭启动时的自动更新 |
| `VIBECLI_DISABLE_MODEL_REFRESH=1` | 关闭模型菜单的自动同步 |
| `VIBECLI_CONFIG_DIR` | 把 VibeCLI 的配置目录改到别处 |
| `NO_COLOR` / `FORCE_COLOR=0` | 不输出颜色 |
## 退出码与错误输出
命令成功返回 0。失败时按原因返回固定退出码:
| 退出码 | 含义 |
| --: | ------------------------ |
| 1 | 操作失败 |
| 2 | 用法或输入错误 |
| 3 | 认证失败,令牌无效或被拒绝 |
| 4 | 网络问题,例如 DNS、证书、超时或无法连接网关 |
| 5 | 内部错误 |
| 10 | 需要确认;非交互模式下加 `--yes` |
| 130 | 已取消 |
普通模式下,错误写到 stderr,下一行给出完整的下一条 `vibecli` 命令。带 `--json` 时,失败只在 stderr 输出一个 JSON 对象,stdout 不输出内容;成功时 stdout 的 JSON 格式不变。失败时的输出示例:
```json
{"ok":false,"error":{"type":"authentication","message":"网关拒绝了这个令牌,它可能已被删除、停用或已过期","hint":"vibecli setup --key <你的令牌>","subtype":"invalid_api_key"}}
```
# 常见问题
遇到问题先运行 `vibecli doctor`,它会检查网络、证书、令牌、工具版本和配置是否生效,并给出下一步。
## 一键安装
* **PowerShell 报「标记“&&”不是此版本中的有效语句分隔符」,或 cmd 报「'sh' 不是内部或外部命令」**:复制了 macOS 的命令,请换成 Windows 标签页里的命令。
* **Mac 弹出「命令行开发者工具」安装窗口**:点击「安装」,它会安装 Git;在后台下载,不影响其它步骤。
* **令牌粘贴错了**:会提示重新粘贴,最多三次。
* **不要在命令前加 `sudo`**:工具都安装在你自己的用户目录里。
* **Claude Desktop 还没有安装**:配置已经先写好,安装后打开即可使用。
- **vibecli.cn 无法打开**:把命令里的 `https://vibecli.cn` 换成 `https://cnb.cool/vibeapi/install/-/git/raw/main/vibecli.sh`(Windows 换成 `…/vibecli.ps1`),单个工具同理换成同目录下的同名文件。
## 提示 `command not found: npx`,或安装后找不到 `node`、`claude`
`command not found: npx`:电脑上还没有 Node.js,用[一键安装命令](https://docs.vibeapi.cn/zh/docs/coding-tools)从头安装。
安装后找不到命令:
在当前窗口运行一次(页面上的安装命令末尾已经带了这一句):
```bash
exec "$SHELL" -l
```
Windows 上安装后当前窗口即可使用,之前打开的其它窗口要重新打开。
## 配置后,Claude Code 仍没有使用 VibeAPI
常见原因是 shell 配置里 export 过 `ANTHROPIC_API_KEY`、`ANTHROPIC_BASE_URL`,它们会盖过配置文件。VibeCLI 配置 Claude Code 时会自动删掉这些行,删完要**新开一个终端**,并重开 Claude Code 会话。企业电脑上还可能有托管配置覆盖了地址或令牌,`vibecli doctor` 会指出来。
## 提示「证书不对」「连接不是私密连接」,或一直超时
这不是令牌的问题:当前网络(常见于校园网、酒店网络)把 `www.vibeapi.cn` 解析到了别的服务器。运行 `vibecli base auto` 换到能用的备用地址,已配置的工具会一起换过去;网络恢复后运行 `vibecli base default` 回到主站。也可以换一个网络,或把 DNS 改成公共 DNS(如 119.29.29.29)。用 Clash 这类代理时,确认它的 DNS 设置已生效(配置里应写 `dns: enable: true`,写成 `enabled` 不生效)。
## Codex 报 401,同一个令牌在 Claude Code 里能用
常见原因有两种:`~/.codex/config.toml` 里有 cc-switch 等工具留下的 `experimental_bearer_token`,Codex 会优先发送它,而不是你的令牌;或者 Codex 用 ChatGPT 账号登录过。运行 `vibecli setup --codexkey <你的令牌>`(或 `--key`)重新配置即可修复,然后完全退出 Codex 再打开。
## 换了登录方式,Codex 里以前的会话不见了
会话还在本地,只是 Codex 只显示和当前服务商一致的会话。完全退出 Codex(包括桌面版)后运行 `vibecli codex sessions`,可以用 `--undo <备份目录>` 撤销。换电脑后怎么把会话搬过去,见[导出与迁移聊天记录](https://docs.vibeapi.cn/zh/docs/coding-tools/history#codex)。
## Windows 上配置了 Claude Desktop,重开后仍没有使用 VibeAPI
多半是以前从网关页面下载的 .reg 写进了注册表 `HKCU\SOFTWARE\Policies\Claude`:这一层存在时,桌面端不读本地配置,普通权限也改不了它。运行 `vibecli setup --desktopkey <你的令牌>`,按提示确认,在系统弹窗里点击「是」;仍不生效就运行 `vibecli setup --desktop-registry on`。修改后要**完全退出**桌面端再打开。
## Windows 提示「禁止运行脚本」
PowerShell 默认不允许运行脚本,一键安装命令、`npm`、`npx` 都会被拦截。运行一次下面的命令(只改当前用户,不需要管理员权限),再重新运行原来的命令:
```powershell
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
```
## 提示工具版本过旧,或 `claude update` 无法连接
运行 `vibecli upgrade`(或 `vibecli upgrade claude-code`)。官方渠道无法连接时,它改用国内镜像下载同一个官方程序;电脑上有多份安装时,询问后只保留最新的一份。还没有安装的,用[安装命令](https://docs.vibeapi.cn/zh/docs/coding-tools#手动安装)。
## Claude Code 的 `/model` 菜单里看不到某个模型
菜单只列这个令牌能调用的模型,先在控制台确认令牌的分组。网关新上架的模型,VibeCLI 最多一小时后同步进菜单;想立即更新,运行 `vibecli refresh`,或重新运行 `vibecli setup --key <你的令牌>`。
## 指定过模型,想恢复工具自己的默认
```bash
vibecli config claude-code clear-model
```
只删掉指定的模型,令牌、hooks、MCP、插件都保留。其它工具把 `claude-code` 换成对应的名字即可。
## 工具的配置改坏了
| 命令 | 作用 |
| ----------------------------- | ----------------- |
| `vibecli config <工具> restore` | 回到上一次 VibeCLI 修改前 |
| `vibecli config <工具> --force` | 先备份,再整份重写为推荐配置 |
## Antigravity CLI 提示没有设置 GEMINI\_API\_KEY
这是旧版 VibeCLI 留下的配置。升级 VibeCLI 后重新运行 `vibecli setup --key <你的令牌>`(或 `vibecli config agy`),配置会改为写进 agy 自己的设置文件,任何终端都能直接使用;同时确认 agy 在 1.3.5 及以上(`vibecli upgrade agy`)。
## 命令失败时怎么看退出码
脚本或 CI 可以按退出码处理失败:2 是用法错误,3 是认证失败,4 是网络问题,1 是其它操作失败,完整列表见[配置、备份与安全](https://docs.vibeapi.cn/zh/docs/coding-tools/config#退出码与错误输出)。需要程序读取时加 `--json`,错误对象只写到 stderr。
# Grok Build
**前提**:令牌能用 Grok 模型。还没有安装 Grok Build 的,用[安装命令](https://docs.vibeapi.cn/zh/docs/coding-tools#手动安装)从国内镜像安装(官方安装地址 `x.ai/cli/install.sh` 在国内网络下无法访问),或者在 `vibecli setup` 问你是否安装时选「是」。
## 配置
下面的命令里,把 `sk-xxx` 换成你的令牌。令牌能用 Grok 模型时,`setup` 会自动配置 Grok Build:
```bash
vibecli setup --key sk-xxx
```
只让 Grok Build 使用这个令牌:
```bash
vibecli setup --grokkey sk-xxx
```
打开菜单配置:
```bash
vibecli config grok
```
然后运行 `grok`。思考强度可以在 `/model` 里选,也可以启动时指定:
```bash
grok --effort high
```
## 写了什么
`~/.grok/config.toml`:
| 写入 | 内容 |
| ------------------------ | -------------------------------------------------------------------------- |
| `[endpoints]` | 指向 VibeAPI 的地址 |
| `[model."vibeapi-<模型>"]` | 这个令牌能用的每个 Grok 模型各一条,带令牌、上下文窗口和 `low` / `medium` / `high` / `xhigh` 四档思考强度 |
| `[models].default` | 当前默认模型,默认是 `vibeapi-grok-4.6` |
你自己写的其它模型条目和界面设置都保留。
## 验证
运行 `grok`,在 `/model` 里能看到这个令牌能用的 Grok 模型,发一句话能正常回复即配置完成。
## 为什么这样设计
Grok Build 只在设置了 `XAI_API_KEY` 时才向网关请求模型清单,多数人没有设置,所以 VibeCLI 把模型逐条写进配置。
你不需要再维护一个环境变量;配置文件只在你的用户目录下。
## 移除
运行 `vibecli config grok remove`,或在 `vibecli config grok` 的菜单里选「移除」:删掉 `vibeapi-` 开头的条目、指向它们的默认模型和 `[endpoints]` 里的 VibeAPI 地址。
# 导出与迁移聊天记录
通过 VibeAPI 使用编码工具时,聊天记录只存在你自己的电脑上,VibeAPI 不保存你的对话。换电脑、重装系统之前,需要你自己导出。下面命令里的 `sk-xxx` 换成你的令牌。
| 工具 | 有没有官方导出 | 换电脑后怎么导回去 |
| --------------- | -------------------------------- | ----------------------------------- |
| Claude Desktop | 有:设置 → Import & export → Export… | 新电脑上 Import… 选那个 zip |
| Claude Code(终端) | 没有,复制会话文件夹 | 放回同一位置,`claude --resume` 接着聊 |
| Codex(命令行和桌面版) | 没有,复制会话文件夹 | 放回同一位置,再运行 `vibecli codex sessions` |
## 让 AI 帮你做
不想自己找文件夹,可以给 Claude Code、Codex 这类编码助手安装一个 Skill。把下面这句话发给它:
```text
帮我安装这个 Skill:https://docs.vibeapi.cn/agent-history-skill.zip
```
安装后直接对它说「帮我把 Codex 的聊天记录导出来」「换了电脑,帮我把 Claude Code 的会话导回去」「Codex 里以前的会话不见了」「把这几个会话存成 Markdown」。它会先备份、只复制不删除,打包好的文件放在你指定的位置。
## 以前用官方账号,换到 VibeAPI
以前用 Claude 账号、ChatGPT 账号登录,现在改用 VibeAPI 的令牌,原来的聊天记录都能接着用:
| 工具 | 原来的记录在哪 | 怎么接上 |
| --------------- | ------------------------ | ------------------------------------------------- |
| Claude Desktop | claude.ai 云端 | 在桌面端导入 claude.ai 的历史 |
| Claude Code(终端) | 本机 `~/.claude/projects/` | 不用搬,配置后直接 `claude --resume` |
| Codex(命令行和桌面版) | 本机 `~/.codex/sessions/` | 不用搬,`setup` 时同意搬会话,或运行一次 `vibecli codex sessions` |
**Claude Desktop**:
1. 用 VibeCLI 配置桌面端,然后完全退出 Claude Desktop 再打开:
```bash
vibecli setup --desktopkey sk-xxx
```
2. 进入 **Settings → Import & export**,点击 **Import…**。
3. 第一步点击 **Sign in to claude.ai…**,在浏览器里登录原来的账号、点击 **Authorize**,回到桌面端点击 **Fetch export**。
4. 一路点击 **Continue**,最后点击 **Import**。
以前在官方模式下用过的 Cowork 任务和 Code 会话存在本机,导入向导第二步会一起列出来,勾选即可。附件和项目知识库文件不会导出,这是 claude.ai 的规定。Team、Enterprise 账号要先由空间所有者在 claude.ai 打开「Allow members to export their own data」。
**Claude Code**:会话记录和登录方式无关。用下面的命令配置好令牌后,在原来的项目目录里运行 `claude --resume` 就能看到以前的会话,接着聊即可。
```bash
vibecli setup --key sk-xxx
```
**Codex**:会话也在本机,只是 ChatGPT 账号登录时记的服务商是 `openai`,VibeAPI 是 `custom`。Codex 只列出和当前服务商一致的会话,所以换过来后列表是空的。`setup` 配置好 Codex 后,发现以前的会话会问你是否搬过来,选「是」即可。当时没有搬的,完全退出 Codex(包括桌面版)后运行:
```bash
vibecli codex sessions
```
再打开 Codex,以前的会话就回来了,可以接着聊。用 [Codex++](https://github.com/BigPizzaV3/CodexPlusPlus) 管理桌面版的,它的「供应商切换」也会同步会话,两种方法选一种即可。
桌面版侧边栏仍然没有旧会话时,先把 VibeCLI 升级到 0.0.129 或更新的版本,再运行一次:新版桌面端另有一份会话目录,旧版本的 VibeCLI 不会修改它。
## Claude Desktop
用 VibeCLI 配置的 Claude Desktop,默认打开了导入和导出。
### 导出
1. 打开 Claude Desktop,进入 **Settings**(macOS 快捷键 ⌘,)。
2. 在左侧点击 **Import & export**,再点击 **Export…**。
3. 选择时间范围(Last 30 days / Last 90 days / Everything),点击 **Export**。
文件保存在「下载」文件夹,名字是 `claude-desktop-export-年月日.zip`。
| 包含 | 不包含 |
| ---------------------------- | ------------------------ |
| Chat、Cowork 任务、Code 标签页里的会话 | 你上传的附件 |
| Claude 生成的文件(每个会话 100 MB 以内) | 项目指令、记忆、定时任务、技能、插件、设置 |
| 项目名称 | 终端里的 Claude Code 会话(见下文) |
这个 zip 里是完整的对话内容,按私人文件保管,用完删掉。
### 在新电脑上导入
1. 在新电脑上安装 Claude Desktop,用 VibeCLI 配置:
```bash
vibecli setup --desktopkey sk-xxx
```
2. 进入 **Settings → Import & export**,点 **Import…**。
3. 第一步 **Chats** 点击 **Choose file…**,选择导出的 zip。
4. 第二步 **Cowork & Code** 会列出 zip 里的会话,以及这台电脑上能找到的其它会话。不想导入的来源,取消勾选。
5. 第三步 **Review** 点击 **Import**。
导入的会话出现在左侧列表里。第一次在导入的会话里发消息时,会弹出 **Resume imported session?**,点击 **Trust and resume**。
那样每个会话都会多出一份。导错了,到 **Settings → Import & export → Import history**,在那次导入后面点击 **Remove**,只删导入进来的副本,原来的会话不受影响。
### claude.ai 网页上的历史
在 **Import…** 的第一步点击 **Sign in to claude.ai…**,登录授权后点击 **Fetch export**,网页版的对话和项目会导入桌面端,之后接着聊时请求经过 VibeAPI。
也可以先在 claude.ai 的 **Settings → Privacy → Export data** 导出,收到邮件后下载 zip,再用 **Choose file…** 选它。附件和项目知识库文件不会导出。
### 没有 Import & export,或者没有 Export… 按钮
重新配置一次,VibeCLI 会补上导入导出开关:
```bash
vibecli setup --desktopkey sk-xxx
```
然后完全退出 Claude Desktop 再打开。还是没有,多半是公司电脑上有管理员下发的配置,它会盖过本机配置,需要管理员在配置里打开 `claudeAiImport` 的 `enabled` 和 `exportEnabled`。
### 存放位置
| 系统 | 目录 |
| ------- | ------------------------------------------ |
| macOS | `~/Library/Application Support/Claude-3p/` |
| Windows | `%LOCALAPPDATA%\Claude-3p\` |
| Linux | `~/.config/Claude-3p/` |
Chat 和 Cowork 的会话在 `local-agent-mode-sessions/` 下;Code 标签页的会话记录在 Claude Code 自己的 `~/.claude/projects/` 里。
## Claude Code(终端)
会话记录在 `~/.claude/projects/` 下(Windows 是 `%USERPROFILE%\.claude\projects\`),每个项目一个文件夹,每个会话一个 `<会话ID>.jsonl` 文件。
**导出**:退出 Claude Code,把整个 `projects` 文件夹打包。只想把某个会话给人看,在会话里运行 `/export`,导出成纯文本。
**导回去**:把打包的文件夹放回新电脑的 `~/.claude/projects/`。项目路径和原来一样时,在项目目录里运行 `claude --resume` 就能在列表里看到。
路径不一样(比如用户名变了),列表里看不到,用会话 ID 直接接着聊:
```bash
claude --resume 会话ID
```
会话 ID 就是 `.jsonl` 的文件名。
想在 Claude Desktop 里看这些会话:Desktop 的 **Import…** 第二步会自动扫描 `~/.claude/projects`,勾上就能导进去。
## Codex
命令行和桌面版共用一个目录 `~/.codex/`(Windows 是 `%USERPROFILE%\.codex\`;设了 `CODEX_HOME` 就是那个目录):
| 内容 | 位置 |
| ------- | -------------------------------- |
| 会话记录 | `sessions/年/月/日/rollout-*.jsonl` |
| 已归档的会话 | `archived_sessions/` |
| 会话列表的索引 | `state_*.sqlite` |
**导出**:完全退出 Codex(包括桌面版),打包 `sessions` 和 `archived_sessions` 两个文件夹。不要带上 `auth.json`,里面是你的令牌或登录信息。
**导回去**:
1. 在新电脑上用 VibeCLI 配置 Codex:
```bash
vibecli setup --key sk-xxx
```
2. 完全退出 Codex,把两个文件夹放进新电脑的 `~/.codex/`。索引不用拷,Codex 下次启动会自己补上。
3. 把会话改到当前服务商:
```bash
vibecli codex sessions
```
4. 打开 Codex,旧会话就在列表里了。
### 以前的会话不见了
会话文件还在,只是 Codex 只显示服务商和现在一致的会话。换过登录方式(在官方账号和令牌之间切换)、用过 cc-switch 这类切换工具,旧会话都会被隐藏。
完全退出 Codex(包括桌面版)后运行:
```bash
vibecli codex sessions
```
桌面版侧边栏里仍然没有的话,先把 VibeCLI 升级到 0.0.129 或更新的版本,再运行一次:新版桌面端另有一份会话目录,旧版本的 VibeCLI 不会修改它。
改之前会先备份,输出里有备份目录。想改回去:
```bash
vibecli codex sessions --undo 备份目录
```
还是找不到某个会话,用会话 ID 直接接着聊,ID 是 `rollout-*.jsonl` 文件名末尾那串:
```bash
codex resume 会话ID
```
# 工作原理与设计
## 一次 setup 做了什么
以 `vibecli setup --key sk-xxx` 为例:
令牌无效时立即停下并说明原因,不写任何配置。在终端里运行时,VibeCLI 会先列出要修改的文件和要先安装的工具,你确认后才保存令牌、写配置;选「否」则什么都不改。加 `--yes`、`--non-interactive` 或 `--json` 时不询问。
还没有安装的命令行工具(Claude Code、Codex、Grok Build、agy)先安装、再写配置,不安装就不写。Claude Desktop 例外:在 macOS 和 Windows 上没安装也会先写好配置,安装后打开即可使用。
每个工具由独立的模块负责,一个工具出问题不影响别的工具。
## 只合并,不覆盖
配置文件里大部分是你自己积累的设置,整份覆盖会抹掉它们。原文件已经损坏(不是合法的 JSON / TOML)时,VibeCLI 会停下提示,不猜测着修复;确实要重来,用 `--force`,它先完整备份再重写。
每次修改前,VibeCLI 在原文件旁边留一份 `<文件名>.bak-<时间>`(每个文件保留最近 10 份)。写入时先写临时文件再整体替换,中途被打断也不会留下写了一半的配置。卸载 VibeCLI 不影响已经配置好的工具。
## 令牌怎么保存、发给谁
令牌明文保存,不加密。早期的加密版本把密钥和主机名绑在一起,换电脑就解不开;而 Claude Code、Codex 本来就明文保存同一个令牌,再存一份加密副本并不更安全。`vibecli status` 只显示令牌的指纹。
令牌只发给 VibeCLI 内置的接入地址和你当前使用的地址。有人诱导你「试试这条线路」时,对方的地址拿不到令牌。
## 模型菜单从哪来
不同分组能用的模型不同,按分组名推算容易出错,所以 VibeCLI 直接用这个令牌请求模型列表。同步只改菜单,不动你选中的模型和令牌。工具里的令牌已经不是 VibeCLI 保存的那个时,跳过这个工具。
## 接入地址:按优先级,不按速度
只有主站无法连接时才换,即使备用地址测速更快也不换。「能用」指用你的令牌实际拉到了模型列表。`--base` 在 `setup`、`init`、`auth`、`config` 和交互菜单里会保存,在其它命令里只对这一次有效。
## 升级与国内镜像
镜像里的程序和官方下载的是同一个文件,都核对过校验值。电脑上常有 npm 安装的和官方安装器安装的两份,VibeCLI 按终端实际运行的那份升级,再询问你是否删到只剩一份。
## VibeCLI 自己的更新
只有全局安装时才自动更新(每次启动都检查新版本),更新失败不影响正在运行的命令。用 `npx` 运行,或带 `--json`、`--non-interactive`、`--dry-run` 时不更新;设置 `VIBECLI_DISABLE_AUTO_UPDATE=1` 可以关闭自动更新。
# 一键配置编码工具
import { Card, Cards } from 'fumadocs-ui/components/card';
先在控制台的[「令牌」页](https://www.vibeapi.cn/console/token)新建一个令牌并复制(`sk-` 开头),再把下面一条命令复制到终端运行,即可安装并配置好编码工具。
电脑上还没有 Node.js 和 Git 也可以运行:命令会自动安装它们。新 Mac 弹出「安装命令行开发者工具」时,点击「安装」即可。
运行后按提示粘贴令牌(显示为 `*`,回车后会告诉你令牌是否有效):
```bash
curl -fsSL https://vibecli.cn | sh && exec "$SHELL" -l
```
也可以把令牌写在命令里(把 `sk-xxx` 换成你的令牌):
```bash
curl -fsSL https://vibecli.cn | sh -s -- --key sk-xxx && exec "$SHELL" -l
```
在 PowerShell 里运行,运行后按提示粘贴令牌:
```powershell
irm https://vibecli.cn | iex
```
也可以把令牌写在命令里(把 `sk-xxx` 换成你的令牌):
```powershell
& ([scriptblock]::Create((irm https://vibecli.cn))) --key sk-xxx
```
```bat
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://vibecli.cn | iex"
```
```bat
powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://vibecli.cn))) --key sk-xxx"
```
安装完成后新开一个窗口。
命令运行完,编码工具就已安装并配置好,在终端输入 `claude`、`codex`、`grok` 或 `agy` 即可使用,不需要再做下面的「手动安装」。遇到问题见[常见问题](https://docs.vibeapi.cn/zh/docs/coding-tools/faq#一键安装)。
## 手动安装
用过页首命令的,可以跳过这一节。
从国内镜像下载,程序和官方安装的相同;再运行一次即可升级。
Node.js:
```bash
curl -fsSL https://vibecli.cn/node.sh | sh && exec "$SHELL" -l
```
Git:
```bash
curl -fsSL https://vibecli.cn/git.sh | sh && exec "$SHELL" -l
```
Claude Code:
```bash
curl -fsSL https://vibecli.cn/claude-code.sh | sh && exec "$SHELL" -l
```
Codex:
```bash
curl -fsSL https://vibecli.cn/codex.sh | sh && exec "$SHELL" -l
```
Grok Build:
```bash
curl -fsSL https://vibecli.cn/grok.sh | sh && exec "$SHELL" -l
```
Antigravity CLI(agy):
```bash
curl -fsSL https://vibecli.cn/agy.sh | sh && exec "$SHELL" -l
```
在 PowerShell 里运行:
Node.js:
```powershell
irm https://vibecli.cn/node.ps1 | iex
```
Git:
```powershell
irm https://vibecli.cn/git.ps1 | iex
```
Claude Code:
```powershell
irm https://vibecli.cn/claude-code.ps1 | iex
```
Codex:
```powershell
irm https://vibecli.cn/codex.ps1 | iex
```
Grok Build:
```powershell
irm https://vibecli.cn/grok.ps1 | iex
```
Antigravity CLI(agy):
```powershell
irm https://vibecli.cn/agy.ps1 | iex
```
下面依次是 Node.js、Git、Claude Code、Codex、Grok Build、Antigravity CLI,安装完成后新开一个窗口:
```bat
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://vibecli.cn/node.ps1 | iex"
```
```bat
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://vibecli.cn/git.ps1 | iex"
```
```bat
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://vibecli.cn/claude-code.ps1 | iex"
```
```bat
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://vibecli.cn/codex.ps1 | iex"
```
```bat
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://vibecli.cn/grok.ps1 | iex"
```
```bat
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://vibecli.cn/agy.ps1 | iex"
```
把 `sk-xxx` 换成你的令牌:
```bash
npm install -g @vibeapi/cli --registry=https://registry.npmmirror.com
vibecli setup --key sk-xxx
```
`setup` 按令牌能用的模型配置对应的工具:Claude 配置 Claude Code 与 Claude Desktop,GPT 配置 Codex,Grok 配置 Grok Build,Gemini 配置 Antigravity CLI。在终端里运行时,它会先列出要修改的文件,你确认后才写入。还没有安装的命令行工具,它会问你是否安装,安装好再写配置;选择不安装就不写。Claude Desktop 例外:在 macOS 和 Windows 上没安装也会先写好配置。
不想全局安装 VibeCLI,也可以直接运行:
```bash
npx @vibeapi/cli@latest setup --key sk-xxx
```
不同工具用不同的令牌:
```bash
vibecli setup --claudekey sk-a --codexkey sk-b --agykey sk-g
```
在菜单里选择工具和模型:
```bash
vibecli init
```
## 常用命令
| 命令 | 作用 |
| --------------------------------- | ---------------------- |
| `vibecli status` | 查看当前配置 |
| `vibecli doctor` | 检查网络、令牌、版本、配置 |
| `vibecli upgrade` | 升级编码工具,官方渠道无法连接时改用国内镜像 |
| `vibecli config <工具>` | 单独配置某个工具 |
| `vibecli config <工具> restore` | 回到上一次修改前 |
| `vibecli config <工具> clear-model` | 改回工具自带的默认模型 |
| `vibecli config <工具> --force` | 整份重写为推荐配置 |
`<工具>` 可以是 `claude-code`、`codex`、`grok`、`agy`、`claude-desktop`。完整命令见[命令参考](https://docs.vibeapi.cn/zh/docs/coding-tools/commands)。
## 主站无法连接
校园网、酒店网络有时会出现证书报错,或者请求一直超时。运行下面的命令,VibeCLI 会按顺序测试接入地址,换到第一个能用的:
```bash
vibecli base auto
```
查看所有接入地址:
```bash
vibecli base
```
网络恢复后回到主站:
```bash
vibecli base default
```
# 长会话省额度
Claude Code 每发一次请求,都会把整段会话一起发给模型:你说的话、它的回复、每一次工具调用和输出。
会话越长,每一步的输入就越多。
提示缓存让重复的那部分按低价计费,但缓存会过期。过期后的第一条消息,整段会话要按写入价重新算一遍。
## 缓存怎么计费
以 `claude-opus-5` 为例,按[模型价格](https://www.vibeapi.cn/pricing)里的输入单价,一次请求的输入分三种状态计费:
| 状态 | 什么时候出现 | 按输入单价的倍数 |
| ----------- | --------------- | -------- |
| 缓存命中 | 和上一步前缀相同,缓存还没过期 | 0.1 |
| 缓存写入(5 分钟档) | 第一次发送,或缓存已经过期 | 1.25 |
| 缓存写入(1 小时档) | 同上,开了 1 小时缓存时 | 2 |
**用令牌接入时,Claude Code 的缓存默认只保留 5 分钟。** 通过 VibeAPI 使用就是这种情况;订阅账号是 1 小时。
也就是说,离开 5 分钟以上再回来,下一条消息会把整段会话重新写入一遍。
以一个 30 万 token 的会话为例:
| 回来时 | 下一步的输入相当于 |
| ------- | ----------------------------- |
| 5 分钟内 | 3 万 token 的输入价 |
| 超过 5 分钟 | 37.5 万 token 的输入价,是前者的 12.5 倍 |
Claude 系模型只有在「Claude 官方满血版」分组上才有提示缓存。`auto` 分组的 `usage` 里不返回缓存字段,见 [Messages · 分组差异](https://docs.vibeapi.cn/zh/docs/messages#分组差异)。
在 `auto` 上,长会话的每一步都按全价计算整段上下文,下面的做法对你更重要。
## 第 1 步:看清现在的会话
在 Claude Code 里运行两个命令:
* **`/context`**:当前上下文占了多少 token,哪些部分占得多。
* **`/usage`**:本次会话的用量。Session 一栏里有一行 `Prompt cache (main)`,需要 Claude Code v2.1.251 及以上。
`Prompt cache (main)` 这一行会告诉你:
* 命中率:多少输入是从缓存读的
* 缓存失效(miss)了几次,最近一次重写了多少 token
* 缓存现在是否还有效(warm / cold)
示例:
```text
Prompt cache (main): 14 requests · 91% of input tokens from cache · 2 misses (last 6m 10s ago, 310.2k tokens re-cached) · warm (5m TTL, last activity 40s ago)
```
在[控制台 · 使用日志](https://www.vibeapi.cn/console/log)里,每条请求也能看到缓存读、缓存写的 token 数。
缓存写得多、读得少,说明缓存经常失效。
## 第 2 步:按顺序调整
### 换一件事,就开新会话
一件事做完,下一件和它关系不大时,运行 `/clear` 开始新会话。
旧会话不会删除,想回去用 `/resume`。
为什么要清?旧会话里留着上一件事的工具输出。这些内容对新任务没有用,却会在之后的每一步里跟着发出去。
### 会话很长又放了一阵,开新会话接着做
满足这两条时,不要回原会话接着发:
* 会话已经很长,比如 `/context` 显示超过 20 万 token
* 离开的时间超过了缓存有效期
开一个新会话,在**同一个项目目录**里,把下面这段话发给它:
```text
接着做这个项目上一个会话没做完的事:
1. 在 ~/.claude/projects 下找到这个目录对应的文件夹,按修改时间找到上一个会话的记录(不是你自己这个)。
2. 只读其中用户和助手的文字,不读工具调用和工具输出。
3. 用 git status、git log 和项目里的文件核对现在的状态。
4. 然后接着做。
```
手上有旧会话 ID 的,把「上一个会话」换成这个 ID。
这样做为什么省?
* 会话记录里大部分是工具调用和输出,人和助手说的话只占一小部分。
* 只读文字,新会话花几万 token 就能补上背景,比把几十万 token 的旧会话整段重写便宜得多。
* 旧的工具输出是当时的快照。现在的状态以 `git status` 和文件为准,反而更可靠。
Claude Code 的会话记录在:
```text
~/.claude/projects/<项目目录>/<会话 ID>.jsonl
```
`<项目目录>` 是把工作目录路径里的非字母数字字符换成 `-`,比如 `/Users/me/app` 对应 `-Users-me-app`。
下面这条命令只取人和助手的文字,运行前把 `会话ID.jsonl` 换成实际的文件路径:
```bash
jq -r 'select((.type=="user" or .type=="assistant") and (.isSidechain|not))
| .type as $t | .message.content
| if type=="string" then "\($t): \(.)"
else (.[] | select(.type=="text") | "\($t): \(.text)") end' 会话ID.jsonl \
| grep -v '^user: <'
```
记录用的是 Claude Code 的内部格式,可能随版本变化。命令不再有效时,让助手自己去读,它会按当时的格式处理。
只想给人看,用 `/export` 导出成纯文本。
Codex 的会话记录在:
```text
~/.codex/sessions/<年>/<月>/<日>/rollout-*.jsonl
```
把上面那段话里的路径换成这个目录即可。
人和助手的文字在 `type` 为 `response_item`、`payload.type` 为 `message` 的记录里。
### 经常离开半小时左右再回来,改成 1 小时缓存
在 `~/.claude/settings.json` 里加一行,需要 Claude Code v2.1.242 及以上:
```json
{
"promptCacheTtl": "1h"
}
```
怎么选:
* **改成 1 小时**:写入单价是 5 分钟档的 1.6 倍(2 对 1.25),适合经常停下来想一想、看一眼再回来的用法。
* **保持默认**:一次做完、不中途离开的,5 分钟档更省。
开启 1 小时缓存后还要注意一点:终端里的会话超过 20 万 token、闲置约 54 分钟时,Claude Code 会趁缓存没过期自动压缩一次。回来时会看到:
```text
Compacted while idle, before the prompt cache expired
```
打算按上一节的做法换新会话、不需要摘要的,在同一个文件里关掉它:
```json
{
"promptCacheTtl": "1h",
"idleCompaction": false
}
```
### 不要用 `/compact` 给长会话续命
`/compact` 会先把整段会话读一遍再写摘要:
* 压缩一个大会话,本身就是一次大请求。
* 缓存已经过期时,这一遍还要按写入价算。
* 摘要保留哪些内容,由不得你决定。
想保留进度,用上面「开新会话接着做」的做法;不需要保留,直接 `/clear`。
## 新会话靠什么接得上
新会话能顺利接手,靠的是旧会话留在项目里的内容:
* **提交说明写清改了什么、为什么。** 新会话第一件事就是看 `git log`。
* **定下来的约定写进 `CLAUDE.md`。** Codex 是 `AGENTS.md`。新会话启动时会自动读这个文件,不要只留在聊天里。
* **做到一半的状态写进文件**,比如一份待办清单。
这几样都在,换会话几乎没有损失。
## 确认省下来了
调整一两天后再看一次:
1. `/usage` 里 `Prompt cache (main)` 的命中率更高,misses 更少。
2. 控制台使用日志里,缓存写的 token 数占比下降。
3. 同样的工作量,控制台的消耗曲线更平,不再有回到旧会话时的尖峰。
# 各工具一览
| 工具 | 命令里的名字 | `setup --key` 什么时候配置 | 专属令牌选项 | 最低版本 | 修改后怎么生效 |
| ------------------------------------------------------ | ---------------- | ---------------------------------------- | -------------- | -------- | ---------------- |
| [Claude Code](https://docs.vibeapi.cn/zh/docs/coding-tools/claude-code) | `claude-code` | 令牌能用 Claude 模型 | `--claudekey` | 2.1.291 | 重开会话;清了环境变量时新开终端 |
| [Claude Desktop](https://docs.vibeapi.cn/zh/docs/coding-tools/claude-desktop) | `claude-desktop` | 令牌能用 Claude 模型(macOS / Windows 上没安装也先写好) | `--desktopkey` | 2.2553.0 | 完全退出再打开 |
| [Codex](https://docs.vibeapi.cn/zh/docs/coding-tools/codex)(命令行和桌面版) | `codex` | 令牌能用 GPT 模型 | `--codexkey` | 0.122.0 | 完全退出再打开 |
| [Grok Build](https://docs.vibeapi.cn/zh/docs/coding-tools/grok-build) | `grok` | 令牌能用 Grok 模型 | `--grokkey` | — | 重新运行 `grok` |
| [Antigravity CLI](https://docs.vibeapi.cn/zh/docs/coding-tools/antigravity) | `agy` | 令牌能用 Gemini 模型 | `--agykey` | 1.3.5 | 立即生效(思考档位要新开终端) |
命令行工具还没有安装时,`setup` 会先问你是否安装,安装好才写配置。
## 各工具的共同规则
* **只改 VibeAPI 相关的部分。** 写入令牌、接入地址和模型;你自己的 hooks、MCP、插件、权限、主题等原样保留。
* **修改前先备份。** 每个配置文件旁边保留最近 10 份快照,`vibecli config <工具> restore` 回到上一次修改前。
* **模型菜单只列令牌能用的模型。** 按这个令牌的 `/v1/models` 生成。auto 分组的令牌看到的模型比官方分组少,这是正常的。网关上新的模型最多一小时后自动出现在菜单里。
* **版本过旧时提示。** 配置完成后检查工具版本,低于最低版本时提示运行 `vibecli upgrade`。
* **可以随时移除。** 运行 `vibecli config <工具> remove`,或在 `vibecli config <工具>` 的菜单里选「移除」,只删除 VibeAPI 写入的部分。卸载 VibeCLI 本身不影响已经配置好的工具。
背后的理由见[工作原理与设计](https://docs.vibeapi.cn/zh/docs/coding-tools/how-it-works)。
# 命令参考
{/* 由 scripts/sync-vibecli-commands.py 从 VibeCLI 仓库的 docs/commands.zh_CN.md 同步,请勿手改 */}
和终端里的 `vibecli --help`、`vibecli <命令> --help` 内容一致。
VibeCLI:在 Claude Code、Codex、Grok Build 等编码工具里统一配置 VibeAPI 的令牌和模型。
不带命令运行 vibecli 会打开主菜单。
## 全局选项
全局选项可以与任何命令一起使用。
| 选项 | 说明 |
| ------------------- | ----------------------------------------------------- |
| `-v, --version` | 显示版本号 |
| `--base ` | 接入地址(setup、init、auth、config、enter 和主菜单会保存,其他命令只在本次生效) |
| `--non-interactive` | 不提出任何问题,需要确认的操作直接执行(用于脚本、CI) |
| `--json` | 输出 JSON(仅限支持的命令) |
| `-y, --yes` | 需要确认时一律回答「是」(--non-interactive、--json 也是这样) |
| `--dry-run` | 只显示会修改什么,不写入(不支持预演的命令会直接拒绝) |
| `--no-color` | 不使用颜色 |
| `-h, --help` | 显示帮助 |
## 命令
### 配置
| 命令 | 说明 |
| ----------------------------------- | -------------------------- |
| [`vibecli setup`](#vibecli-setup) | 一条命令完成工具配置(按令牌能用的模型自动选择工具) |
| [`vibecli init`](#vibecli-init) | 首次使用的配置向导 |
| [`vibecli auth`](#vibecli-auth) | 保存或删除令牌 |
| [`vibecli config`](#vibecli-config) | 按工具配置;管理 Profile、模型预设和备份 |
| [`vibecli base`](#vibecli-base) | 查看、测速并切换接入地址 |
### 诊断
| 命令 | 说明 |
| ----------------------------------- | ------------- |
| [`vibecli status`](#vibecli-status) | 查看当前配置 |
| [`vibecli doctor`](#vibecli-doctor) | 检查配置和网络问题 |
| [`vibecli bench`](#vibecli-bench) | 测试接入地址的延迟 |
| [`vibecli logs`](#vibecli-logs) | 查看 VibeCLI 日志 |
### 维护
| 命令 | 说明 |
| ------------------------------------------- | -------------------------------------- |
| [`vibecli list`](#vibecli-list) | 列出 vibecli 能装的运行环境、命令行工具和桌面应用,以及装了哪个版本 |
| [`vibecli install`](#vibecli-install) | 安装运行环境(Node.js、Git、uv)、命令行工具或桌面应用 |
| [`vibecli upgrade`](#vibecli-upgrade) | 升级编码工具、桌面应用和运行环境(Node.js、Git、uv) |
| [`vibecli refresh`](#vibecli-refresh) | 立即更新各工具的模型菜单 |
| [`vibecli update`](#vibecli-update) | 检查 VibeCLI 是否有新版本 |
| [`vibecli codex`](#vibecli-codex) | Codex 辅助功能 |
| [`vibecli sessions`](#vibecli-sessions) | 查看本机的编码会话 |
| [`vibecli lang`](#vibecli-lang) | 切换界面语言 |
| [`vibecli completion`](#vibecli-completion) | 输出命令补全脚本 |
| [`vibecli enter`](#vibecli-enter) | 直接打开某个配置菜单 |
## 示例
| 命令 | 说明 |
| ---------------------------- | ----------------- |
| `vibecli` | 打开主菜单 |
| `vibecli setup --key sk-xxx` | 用一个令牌配置它能用的全部工具 |
| `vibecli doctor` | 检查配置和网络问题 |
| `vibecli base auto` | 主域名无法连接时,切换到可用的地址 |
| `vibecli config codex` | 打开 Codex 的配置菜单 |
## `vibecli setup`
不进入向导,一条命令写好配置。
\--key 先用令牌获取模型列表,按能用的模型配置对应工具(见下表)。
不同分组的令牌用 --claudekey、--codexkey、--grokkey、--desktopkey、--agykey 分别提供。
再次运行即可更换令牌,其他配置保留。
**用法**
```text
vibecli setup [options]
```
**选项**
| 选项 | 说明 |
| ------------------------------ | ------------------------------------------------ |
| `--key ` | 一个令牌,按它能用的模型自动配置工具 |
| `--claudekey ` | Claude Code 专属令牌 |
| `--codexkey ` | Codex 专属令牌 |
| `--grokkey ` | Grok Build 专属令牌 |
| `--desktopkey ` | Claude Desktop 专属令牌 |
| `--agykey ` | Antigravity CLI 专属令牌(需要能使用 Gemini 模型) |
| `--1m` | 为 Codex 开启 1M 上下文 |
| `--no-1m` | 为 Codex 关闭 1M 上下文 |
| `--claude-official ` | Claude Desktop 是否显示 Claude.ai 登录入口(默认 off) |
| `--desktop-registry ` | Windows 版 Claude Desktop:始终写入注册表策略(on)或自动判断(off) |
| `--force` | 先备份,再用推荐配置整份重写(用于修复改坏的配置) |
| `--install` | 未安装的工具直接从国内镜像安装,不再询问 |
| `--no-install` | 未安装的工具只给出安装命令,不安装 |
| `--all` | 配置令牌能用的全部工具(默认行为) |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**--key 能用的模型和自动配置的工具**
| 写法 | 说明 |
| -------- | ------------------------------------------------------------------ |
| `Claude` | Claude Code、Claude Desktop(macOS、Windows 上未安装也会提前写好;Linux 上已安装才配置) |
| `GPT` | Codex |
| `Grok` | Grok Build |
| `Gemini` | Antigravity CLI |
**何时使用**
拿到令牌后第一次配置,或更换令牌、修复改坏的配置时。
**前提**
* 一个 VibeAPI 令牌(在控制台的「令牌」页新建)
* 工具可以之后再安装:未安装的命令行工具会先写好配置,再询问是否从国内镜像安装(加 --install 直接安装);Claude Desktop 在 macOS、Windows 上未安装也会提前写好配置,安装后打开即可使用;Linux 版只配置已安装的
**替代方式**
| 命令 | 什么情况下改用它 |
| ----------------------- | ------------ |
| `vibecli init` | 想一步步选择工具和模型 |
| `vibecli config ` | 只修改一个工具 |
| `vibecli auth ` | 只保存令牌,不写工具配置 |
**示例**
| 命令 | 说明 |
| -------------------------------------------------------------- | --------------------------- |
| `vibecli setup --key sk-xxx` | 用一个令牌配置它能用的全部工具 |
| `vibecli setup --install --key sk-xxx` | 配置完成后一起安装未安装的工具(国内镜像) |
| `vibecli setup --claudekey sk-a --codexkey sk-b --agykey sk-g` | Claude、GPT、Gemini 分组的令牌分别配置 |
| `vibecli setup --force --key sk-xxx` | 配置被改坏时整份重写(会先备份) |
| `vibecli setup --base https://www.vibeapi.si --key sk-xxx` | 在备用地址上配置 |
**另见**: `vibecli setup --help` · [命令列表](#commands)
## `vibecli init`
一步步引导你填写令牌、选择工具并写好配置。
直接运行 vibecli(不带命令)会打开主菜单。
**用法**
```text
vibecli init [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
第一次使用,想一步步回答问题完成配置时。
**前提**
* 一个 VibeAPI 令牌
**替代方式**
| 命令 | 什么情况下改用它 |
| --------------------------- | -------------- |
| `vibecli setup --key ` | 不想回答问题,或在脚本里配置 |
| `vibecli` | 已经配置过,只想修改某一项 |
**示例**
| 命令 | 说明 |
| -------------------------------------------- | ---------- |
| `vibecli init` | 运行配置向导 |
| `vibecli init --base https://www.vibeapi.si` | 在备用地址上运行向导 |
| `vibecli` | 打开主菜单 |
**另见**: `vibecli init --help` · [命令列表](#commands)
## `vibecli auth`
不带参数:提示你输入令牌。
带令牌:验证后保存到 \~/.vibecli/config.yaml。
**用法**
```text
vibecli auth [options] [command] [token]
```
**参数**
| 参数 | 说明 |
| ------- | ------ |
| `token` | 要保存的令牌 |
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**命令**
| 命令 | 说明 |
| --------------------------------------------- | --------------------------------------------- |
| [`vibecli auth revoke`](#vibecli-auth-revoke) | 删除已保存的令牌 |
| [`vibecli auth reload`](#vibecli-auth-reload) | 把已保存的令牌重新写入 Claude Code(claude / claude-code) |
**何时使用**
只想保存、更换或删除令牌,不改动工具配置时。
**替代方式**
| 命令 | 什么情况下改用它 |
| --------------------------- | ------------- |
| `vibecli setup --key ` | 保存令牌并同时写好工具配置 |
**示例**
| 命令 | 说明 |
| --------------------------------------- | ------------------- |
| `vibecli auth` | 提示输入令牌 |
| `vibecli auth sk-xxx --non-interactive` | 直接保存一个令牌 |
| `vibecli auth revoke --yes` | 删除已保存的令牌,不再询问 |
| `vibecli auth reload claude-code` | 把令牌重新写入 Claude Code |
**另见**: `vibecli auth --help` · [命令列表](#commands)
## `vibecli auth revoke`
删除已保存的令牌
**用法**
```text
vibecli auth revoke [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**示例**
| 命令 | 说明 |
| --------------------------- | -------------- |
| `vibecli auth revoke` | 删除已保存的令牌(会先确认) |
| `vibecli auth revoke --yes` | 删除已保存的令牌,不再询问 |
**另见**: `vibecli auth revoke --help` · [`vibecli auth`](#vibecli-auth) · [命令列表](#commands)
## `vibecli auth reload`
把已保存的令牌重新写入 Claude Code(claude / claude-code)
**用法**
```text
vibecli auth reload [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**示例**
| 命令 | 说明 |
| ---------------------------------------- | ------------------- |
| `vibecli auth reload claude-code` | 把令牌重新写入 Claude Code |
| `vibecli auth reload claude-code --json` | 同上,输出 JSON |
**另见**: `vibecli auth reload --help` · [`vibecli auth`](#vibecli-auth) · [命令列表](#commands)
## `vibecli config`
不带参数:选择一个工具,打开它的配置菜单。
子命令和工具名见下表。
**用法**
```text
vibecli config [options] [args...]
```
**参数**
| 参数 | 说明 |
| ------ | ----------- |
| `args` | 子命令和参数(见下表) |
**选项**
| 选项 | 说明 |
| ------------- | -------------------- |
| `-f, --force` | 先备份,再用推荐配置整份重写该工具的配置 |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**子命令**
| 写法 | 说明 |
| -------------------------------------- | ----------------------------------- |
| `` | 打开该工具的配置菜单 |
| ` --force` | 先备份,再用推荐配置整份重写 |
| ` --non-interactive` | 不显示菜单,用已保存的令牌直接写入配置 |
| ` remove` | 移除 VibeAPI 写入的服务商、令牌和模型设置,其他设置保留 |
| ` restore` | 还原该工具最近一次的备份 |
| ` backups` | 列出该工具的备份 |
| ` clear-model` | 只清除固定的模型设置,保留令牌、hooks、MCP 和插件 |
| `tool-model list` | 列出各工具单独设置的模型 |
| `tool-model set [slot] ` | 为某个工具单独设置模型(slot 默认为 opus,即主模型) |
| `tool-model clear ` | 清除某个工具单独设置的模型 |
| `profile list` | 列出 Profile(每个 Profile 包含一套令牌、地址和模型) |
| `profile create ` | 新建 Profile |
| `profile use ` | 切换到某个 Profile |
| `profile delete ` | 删除 Profile |
| `preset list` | 列出模型预设 |
| `preset save ` | 把当前的模型组合保存为预设 |
| `preset use ` | 使用某个预设 |
| `preset delete ` | 删除预设 |
| `backup list` | 列出 VibeCLI 配置的备份 |
| `backup create [label]` | 备份 VibeCLI 配置(可以加标签) |
| `backup restore ` | 从备份还原 VibeCLI 配置 |
**工具名**
| 写法 | 说明 |
| ---------------- | --------------- |
| `claude-code` | Claude Code |
| `codex` | Codex |
| `grok` | Grok Build |
| `claude-desktop` | Claude Desktop |
| `agy` | Antigravity CLI |
**何时使用**
调整单个工具(更换模型、重写或还原配置),或管理 Profile、模型预设和备份时。
**前提**
* 写入工具配置前,需要先保存令牌:vibecli auth \<你的令牌> 或 vibecli setup --key \<你的令牌>
**替代方式**
| 命令 | 什么情况下改用它 |
| ----------------------------------- | ----------- |
| `vibecli setup --force --key ` | 一次重写全部工具的配置 |
| `vibecli status` | 只查看当前配置,不修改 |
**示例**
| 命令 | 说明 |
| ------------------------------------------------- | --------------------------------------- |
| `vibecli config codex` | 打开 Codex 的配置菜单 |
| `vibecli config claude-code --force` | 把 Claude Code 的配置整份重写 |
| `vibecli config tool-model set codex gpt-6-astra` | Codex 单独使用某个模型 |
| `vibecli config profile create work` | 新建一个名为 work 的 Profile |
| `vibecli config codex remove` | 不再让 Codex 使用 VibeAPI(例如改回 ChatGPT 订阅登录) |
**另见**: `vibecli config --help` · [命令列表](#commands)
## `vibecli base`
主域名无法连接或证书报错时,切换到另一个接入地址。
切换后,用 VibeCLI 保存的令牌配置过的工具会一起改到新地址。
**用法**
```text
vibecli base [options] [target]
```
**参数**
| 参数 | 说明 |
| -------- | ----------------------- |
| `target` | 切换到哪个地址(见下表),不填则列出地址并测试 |
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**目标写法**
| 写法 | 说明 |
| --------- | ----------------------------------------------------------- |
| `(不填)` | 列出全部地址并逐个测试,标出当前地址 |
| `<序号>` | 切换到列表里的第 n 个地址 |
| `<地址>` | 切换到指定地址,例如:[https://www.vibeapi.si](https://www.vibeapi.si) |
| `auto` | 按列表顺序切换到第一个可用的地址(不是最快的,优先连接主站) |
| `default` | 回到主站 [https://www.vibeapi.cn](https://www.vibeapi.cn) |
**何时使用**
工具报告无法连接、超时或证书错误时。
**前提**
* 保存过令牌时,内置地址和当前地址会用它确认地址确实可用;其他地址,或没有保存令牌时,只测试网关是否在线
**替代方式**
| 命令 | 什么情况下改用它 |
| ---------------- | ----------- |
| `vibecli doctor` | 不确定是不是地址的问题 |
| `vibecli bench` | 只测试延迟,不切换 |
**示例**
| 命令 | 说明 |
| ------------------------------------- | -------------- |
| `vibecli base` | 列出地址并测试 |
| `vibecli base auto` | 自动切换到第一个可用的地址 |
| `vibecli base 2` | 切换到列表里的第 2 个地址 |
| `vibecli base https://www.vibeapi.si` | 切换到指定地址 |
| `vibecli base default` | 回到主站 |
**另见**: `vibecli base --help` · [命令列表](#commands)
## `vibecli status`
显示当前的令牌和它的余额、接入地址、语言、模型,以及各工具是否已配置。
**用法**
```text
vibecli status [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
想确认现在使用的是哪个令牌、地址和模型时。
**替代方式**
| 命令 | 什么情况下改用它 |
| ---------------- | ------------------ |
| `vibecli doctor` | 要检查配置能否正常使用,而不只是查看 |
**示例**
| 命令 | 说明 |
| ----------------------- | ------------- |
| `vibecli status` | 查看当前配置 |
| `vibecli status --json` | 输出 JSON,供脚本读取 |
**另见**: `vibecli status --help` · [命令列表](#commands)
## `vibecli doctor`
检查令牌、余额、网络、代理、已安装的工具和它们的配置,并给出处理办法。
**用法**
```text
vibecli doctor [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ----------------------------------------------------- |
| `--deep` | 已安装 Claude Code 时,再用它实际发送一条请求(消耗少量额度) |
| `--report` | 检查后上传诊断信息(检查结果、工具版本、设置和最近的运行记录,不含令牌和对话内容),得到一个诊断码发给客服 |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
工具报错(401、无法连接、找不到模型)又不清楚原因时。
**替代方式**
| 命令 | 什么情况下改用它 |
| ------------------- | ------------- |
| `vibecli base auto` | 已经确定是接入地址无法连接 |
| `vibecli logs tail` | 需要把出错细节发给客服 |
**示例**
| 命令 | 说明 |
| ------------------------- | ------------------------------ |
| `vibecli doctor` | 运行一次检查 |
| `vibecli doctor --deep` | 已安装 Claude Code 时,连同它的实际请求一起检查 |
| `vibecli doctor --report` | 上传诊断信息,得到诊断码发给客服 |
**另见**: `vibecli doctor --help` · [命令列表](#commands)
## `vibecli bench`
用已保存的令牌向当前接入地址请求几次模型列表,统计耗时;加上 --stream 会再发送一条真实的流式请求,查看首字时间和流能否正常结束。
**用法**
```text
vibecli bench [options]
```
**选项**
| 选项 | 说明 |
| ----------------- | ----------------------------------- |
| `--samples ` | 请求次数(1–50)(默认 5) |
| `--stream` | 再发送一条真实的流式请求,查看首字时间和流能否正常结束(消耗极少额度) |
| `--model ` | 流式请求使用的模型(默认按令牌能用的模型自动选择) |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
感觉变慢,或想查看当前地址的延迟时。
**前提**
* 已保存令牌(vibecli auth \<你的令牌>)
**替代方式**
| 命令 | 什么情况下改用它 |
| -------------- | -------------- |
| `vibecli base` | 一次测试全部地址,并可以切换 |
**示例**
| 命令 | 说明 |
| -------------------------------------------- | -------------- |
| `vibecli bench` | 请求 5 次 |
| `vibecli bench --samples 3` | 只请求 3 次 |
| `vibecli bench --stream` | 测试延迟,再测试一次流式请求 |
| `vibecli bench --stream --model gpt-6-astra` | 用指定模型测试流式请求 |
| `vibecli bench --json` | 输出 JSON |
**另见**: `vibecli bench --help` · [命令列表](#commands)
## `vibecli logs`
日志按天保存在 \~/.vibecli 目录。出现问题时,可以把 tail 的输出发给客服。
**用法**
```text
vibecli logs [options] [action] [file]
```
**参数**
| 参数 | 说明 |
| -------- | ------------------------- |
| `action` | list、tail 或 path(默认 list) |
| `file` | tail 时要查看的日志文件 |
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**操作**
| 写法 | 说明 |
| ------------- | ---------------- |
| `list` | 列出日志文件 |
| `tail [file]` | 显示最新日志的末尾(或指定文件) |
| `path` | 显示日志目录 |
**何时使用**
命令出错需要查看细节,或客服需要日志时。
**替代方式**
| 命令 | 什么情况下改用它 |
| ---------------- | --------- |
| `vibecli doctor` | 先自行检查常见问题 |
**示例**
| 命令 | 说明 |
| ------------------- | ------ |
| `vibecli logs` | 列出日志文件 |
| `vibecli logs tail` | 查看最新日志 |
| `vibecli logs path` | 显示日志目录 |
**另见**: `vibecli logs --help` · [命令列表](#commands)
## `vibecli list`
列出 Node.js、Git、uv、Claude Code、Codex、Grok Build、Antigravity CLI、Claude Desktop、ChatGPT:装了没有、当前版本、最新版本、用什么方式装的、从哪下载。最新版本缓存一小时,加 --refresh 立即重新查。
**用法**
```text
vibecli list [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ------------ |
| `--refresh` | 不用缓存,重新查最新版本 |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
想知道这台电脑上装了哪些工具、哪些可以升级时。
**替代方式**
| 命令 | 什么情况下改用它 |
| ---------------- | ----------- |
| `vibecli doctor` | 检查令牌和各工具的配置 |
**示例**
| 命令 | 说明 |
| ------------------------ | ------------ |
| `vibecli list` | 列出全部组件 |
| `vibecli list --refresh` | 重新查最新版本 |
| `vibecli list --json` | 输出 JSON,给脚本用 |
**另见**: `vibecli list --help` · [命令列表](#commands)
## `vibecli install`
从国内镜像安装缺少的组件,下载后核对校验值(桌面应用还核对厂商签名)。已经装过的不覆盖:只显示当前版本,落后时给出升级命令;加 --force 重新安装。
Node.js、Git、uv 用 VibeAPI 的安装脚本装进当前用户目录,不需要管理员权限;不要加 sudo。可以写多个组件,有依赖的先装依赖。
**用法**
```text
vibecli install [options]
```
**参数**
| 参数 | 说明 |
| ------------ | -------------------------------------------------------------------- |
| `components` | node、git、uv、claude-code、codex、grok、agy、claude-desktop、chatgpt,可以填写多个 |
**选项**
| 选项 | 说明 |
| ------------ | --------- |
| `--force` | 已经装过也重新安装 |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
要在这台电脑上补装某个工具时;别的应用的安装脚本也可以调用它(npx @vibeapi/api-helper install …)。
**前提**
* 这台电脑已有 Node.js(vibecli 本身要 Node);还没有 Node 时先用一键安装脚本
**替代方式**
| 命令 | 什么情况下改用它 |
| ---------------------------- | ------------- |
| `vibecli upgrade` | 升级已经装好的组件 |
| `vibecli setup --key <你的令牌>` | 装好后写入令牌并配置各工具 |
**示例**
| 命令 | 说明 |
| -------------------------------------- | ------------------------ |
| `vibecli install node uv` | 安装 Node.js 和 uv |
| `vibecli install claude-code codex` | 安装 Claude Code 和 Codex |
| `vibecli install chatgpt` | 安装 ChatGPT 桌面版(内含 Codex) |
| `vibecli install uv --force` | uv 已经装过也重新安装 |
| `vibecli install node uv --yes --json` | 在脚本里安装,输出 JSON |
**另见**: `vibecli install --help` · [命令列表](#commands)
## `vibecli upgrade`
按每份工具当初的安装方式升级:原生安装用工具自带的更新,npm 安装从国内镜像(npmmirror)重新安装,Homebrew 安装用 brew upgrade;原生或 Homebrew 方式无法升级时,改用 VibeAPI 一键安装脚本(程序取自国内镜像)。指定了但还没有安装的工具,也用这个脚本安装。
Claude Desktop 和 ChatGPT(内含 Codex;macOS / Windows)比高速下载站上的版本旧时,从高速下载站下载官方安装包,核对校验值和厂商(Anthropic / OpenAI)的签名后安装;它们自带的自动更新照常开着,vibecli 只在没跟上时补上。应用正在运行时,在终端里问过才关掉它升级,带 --yes 或没有终端时只提示、不关。已是最新时加 --force 重新安装。ChatGPT 的 Mac 版只支持 Apple 芯片。
Node.js、Git、uv 只升级由 VibeAPI 安装脚本管理的那一份(fnm 装的 Node、\~/.local/bin 里的 uv、装在当前用户下的 Git for Windows);用 Homebrew、nvm、系统包管理器等装的,给出对应的升级命令、不改动它,加 --force 另装一份由 vibecli 管理的。fnm 的 Node 升级后,原来全局安装的 npm 包会按原版本装到新版里。
不填名字则升级已安装的全部编码工具和桌面应用,并提示可以升级的运行环境。
升级 VibeCLI 本身请用 vibecli update。
**用法**
```text
vibecli upgrade [options] [tools...]
```
**参数**
| 参数 | 说明 |
| ------- | -------------------------------------------------------------------- |
| `tools` | claude-code、codex、grok、agy、claude-desktop、chatgpt、node、git、uv,可以填写多个 |
**选项**
| 选项 | 说明 |
| ------------ | ------------------------------------------------ |
| `--force` | 桌面应用和运行环境已是最新也重新安装;运行环境由别的方式装的,另装一份由 vibecli 管理的 |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
vibecli doctor 提示版本过低,或工具自带的更新无法完成时。
**前提**
* 不填工具名时,只升级已经安装的工具
**替代方式**
| 命令 | 什么情况下改用它 |
| ---------------- | ------------- |
| `vibecli update` | 升级 VibeCLI 本身 |
**示例**
| 命令 | 说明 |
| --------------------------------- | -------------------------------- |
| `vibecli upgrade` | 升级已安装的全部工具 |
| `vibecli upgrade codex agy` | 升级 Codex 和 Antigravity CLI |
| `vibecli upgrade claude-desktop` | 安装 Claude Desktop,或升到高速下载站上的最新版 |
| `vibecli upgrade chatgpt --force` | ChatGPT 已是最新也重新安装一遍(应用损坏时) |
| `vibecli upgrade node` | 升级 Node.js(fnm 安装的;别的方式装的给出升级命令) |
**另见**: `vibecli upgrade --help` · [命令列表](#commands)
## `vibecli refresh`
按网关当前的模型配置和令牌现在能用的模型,重写各工具的模型菜单,不必等待每小时一次的自动同步。
**用法**
```text
vibecli refresh [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
令牌换了分组、能用的模型有变化,或网关刚上架、下架模型时。
**替代方式**
| 命令 | 什么情况下改用它 |
| ---------------------------- | ------------ |
| `vibecli setup --key <你的令牌>` | 要更换令牌或重新配置工具 |
**示例**
| 命令 | 说明 |
| ---------------------------------------------- | --------------------- |
| `vibecli refresh` | 立即更新模型菜单 |
| `vibecli refresh --base https://hk.vibeapi.cn` | 按另一个接入地址的配置更新(只在本次生效) |
**另见**: `vibecli refresh --help` · [命令列表](#commands)
## `vibecli update`
依次查询这些来源:高速下载站、npmjs、npmmirror、Yarn。有新版本时给出安装命令。
全局安装的 VibeCLI 每次启动时也会检查,有新版本时自动安装并重新运行当前命令。
**用法**
```text
vibecli update [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
想确认 VibeCLI 是否为最新版本时。
**替代方式**
| 命令 | 什么情况下改用它 |
| ----------------- | ------------------------ |
| `vibecli upgrade` | 升级 Claude Code、Codex 等工具 |
**示例**
| 命令 | 说明 |
| ----------------------- | ------- |
| `vibecli update` | 检查新版本 |
| `vibecli update --json` | 输出 JSON |
**另见**: `vibecli update --help` · [命令列表](#commands)
## `vibecli codex`
Codex 相关的辅助命令。
**用法**
```text
vibecli codex [options] [command]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**命令**
| 命令 | 说明 |
| --------------------------------------------------- | ------------------- |
| [`vibecli codex sessions`](#vibecli-codex-sessions) | 让旧会话重新出现在 Codex 列表里 |
**何时使用**
Codex 出现 VibeCLI 能处理的问题时(目前是会话列表变空)。
**示例**
| 命令 | 说明 |
| ------------------------------------- | ---------------- |
| `vibecli codex sessions` | 把全部会话改到当前服务商 |
| `vibecli codex sessions --undo ` | 撤销上一次修改(目录见上次输出) |
**另见**: `vibecli codex --help` · [命令列表](#commands)
## `vibecli codex sessions`
Codex 按服务商筛选会话,更换登录方式或服务商后,旧会话会被隐藏。
这个命令把本地会话改到当前服务商;会先备份,可以用 --undo 撤销。
运行前请先退出 Codex。
**用法**
```text
vibecli codex sessions [options]
```
**选项**
| 选项 | 说明 |
| ----------------- | --------------------------- |
| `--to ` | 改到哪个服务商(默认为 Codex 当前使用的服务商) |
| `--undo ` | 按这个备份目录把会话改回去 |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
Codex 的历史会话列表变空或缺少会话时。
**前提**
* 先退出 Codex(运行时会拒绝修改)
**替代方式**
| 命令 | 什么情况下改用它 |
| ------------------------------------- | -------- |
| `vibecli codex sessions --undo ` | 修改后想改回去 |
**示例**
| 命令 | 说明 |
| ------------------------------------- | ---------------- |
| `vibecli codex sessions` | 把全部会话改到当前服务商 |
| `vibecli codex sessions --to custom` | 把会话改到 custom 服务商 |
| `vibecli codex sessions --undo ` | 撤销上一次修改(目录见上次输出) |
**另见**: `vibecli codex sessions --help` · [`vibecli codex`](#vibecli-codex) · [命令列表](#commands)
## `vibecli sessions`
列出 Claude Code、Codex 和 Claude Desktop(Cowork、Code)保存在本机的会话,按最后更新时间排序。
可以查看会话内容、打印或直接运行继续对话的命令、导出为 Markdown。只读,不修改任何会话文件。
**用法**
```text
vibecli sessions [options] [command]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**命令**
| 命令 | 说明 |
| ----------------------------------------------------- | --------------- |
| [`vibecli sessions list`](#vibecli-sessions-list) | 列出会话(默认) |
| [`vibecli sessions show`](#vibecli-sessions-show) | 显示一个会话的信息和前几条消息 |
| [`vibecli sessions resume`](#vibecli-sessions-resume) | 打印或运行继续对话的命令 |
| [`vibecli sessions export`](#vibecli-sessions-export) | 把会话导出为 Markdown |
**何时使用**
想找回以前的对话、继续对话,或保存对话时。
**替代方式**
| 命令 | 什么情况下改用它 |
| ------------------------ | --------------------------- |
| `vibecli codex sessions` | Codex 列表里看不到旧会话时,把它们改到当前服务商 |
**示例**
| 命令 | 说明 |
| --------------------------------------------------------- | ------------------- |
| `vibecli sessions` | 列出最近 20 个会话 |
| `vibecli sessions --tool codex --here` | 只查看当前目录的会话 |
| `vibecli sessions show 01a0f5fe` | 查看一个会话(ID 写前几位即可) |
| `vibecli sessions resume 01a0f5fe --run` | 在会话原来的目录里继续对话 |
| `vibecli sessions export 01a0f5fe 7c2e9d41 -o ./sessions` | 把两个会话导出到 ./sessions |
**另见**: `vibecli sessions --help` · [命令列表](#commands)
## `vibecli sessions list`
列出会话(默认)
**用法**
```text
vibecli sessions list [options]
```
**选项**
| 选项 | 说明 |
| --------------------- | -------------------------------------------- |
| `--tool ` | 只查看这个工具的会话(claude-code、codex、claude-desktop) |
| `--dir ` | 只查看在这个目录或其子目录中开始的会话 |
| `--here` | 只查看在当前目录或其子目录中开始的会话 |
| `-n, --limit ` | 最多列出多少个(默认 20) |
| `--all` | 全部列出 |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**示例**
| 命令 | 说明 |
| ------------------------------------ | ------------- |
| `vibecli sessions list` | 列出最近 20 个会话 |
| `vibecli sessions list --tool codex` | 只查看 Codex 的会话 |
| `vibecli sessions list --here --all` | 只查看当前目录的会话 |
| `vibecli sessions list --json` | 输出 JSON,供脚本读取 |
**另见**: `vibecli sessions list --help` · [`vibecli sessions`](#vibecli-sessions) · [命令列表](#commands)
## `vibecli sessions show`
显示一个会话的信息和前几条消息
**用法**
```text
vibecli sessions show [options]
```
**选项**
| 选项 | 说明 |
| ------------------------ | ------------- |
| `-m, --messages ` | 显示前几条消息(默认 6) |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**示例**
| 命令 | 说明 |
| -------------------------------------- | ----------------- |
| `vibecli sessions show 01a0f5fe` | 查看一个会话(ID 写前几位即可) |
| `vibecli sessions show 01a0f5fe -m 20` | 显示前 20 条消息 |
**另见**: `vibecli sessions show --help` · [`vibecli sessions`](#vibecli-sessions) · [命令列表](#commands)
## `vibecli sessions resume`
打印或运行继续对话的命令
**用法**
```text
vibecli sessions resume [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ------------------ |
| `--run` | 直接运行继续对话的命令(默认只打印) |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**示例**
| 命令 | 说明 |
| ---------------------------------------- | ----------------- |
| `vibecli sessions resume 01a0f5fe` | 只打印继续对话的命令,自行复制运行 |
| `vibecli sessions resume 01a0f5fe --run` | 在会话原来的目录里继续对话 |
**另见**: `vibecli sessions resume --help` · [`vibecli sessions`](#vibecli-sessions) · [命令列表](#commands)
## `vibecli sessions export`
把会话导出为 Markdown
**用法**
```text
vibecli sessions export [options]
```
**选项**
| 选项 | 说明 |
| -------------------- | ------------------------- |
| `-o, --output ` | 导出到这个目录(不存在时会新建,不覆盖已有文件) |
| `--tools` | 附上工具调用的参数和输出(各截取前 2000 字) |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**示例**
| 命令 | 说明 |
| --------------------------------------------------------- | ------------------- |
| `vibecli sessions export 01a0f5fe 7c2e9d41 -o ./sessions` | 把两个会话导出到 ./sessions |
| `vibecli sessions export 01a0f5fe -o ./sessions --tools` | 导出时附上工具调用的参数和输出 |
**另见**: `vibecli sessions export --help` · [`vibecli sessions`](#vibecli-sessions) · [命令列表](#commands)
## `vibecli lang`
查看或设置 VibeCLI 的界面语言(zh\_CN、en\_US)。
**用法**
```text
vibecli lang [options] [command]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**命令**
| 命令 | 说明 |
| ----------------------------------------- | -------------------- |
| [`vibecli lang show`](#vibecli-lang-show) | 显示当前语言 |
| [`vibecli lang set`](#vibecli-lang-set) | 设置语言:zh\_CN 或 en\_US |
**何时使用**
界面语言不对时。
**替代方式**
| 命令 | 什么情况下改用它 |
| -------------------- | -------- |
| `vibecli enter lang` | 用菜单选择语言 |
**示例**
| 命令 | 说明 |
| ------------------------ | ------ |
| `vibecli lang show` | 显示当前语言 |
| `vibecli lang set en_US` | 切换为英文 |
| `vibecli lang set zh_CN` | 切换为中文 |
**另见**: `vibecli lang --help` · [命令列表](#commands)
## `vibecli lang show`
显示当前语言
**用法**
```text
vibecli lang show [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**示例**
| 命令 | 说明 |
| -------------------------- | --------------- |
| `vibecli lang show` | 显示当前语言 |
| `vibecli lang show --json` | 输出 JSON,包括可选的语言 |
**另见**: `vibecli lang show --help` · [`vibecli lang`](#vibecli-lang) · [命令列表](#commands)
## `vibecli lang set`
设置语言:zh\_CN 或 en\_US
**用法**
```text
vibecli lang set [options]
```
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**示例**
| 命令 | 说明 |
| ------------------------ | ----- |
| `vibecli lang set en_US` | 切换为英文 |
| `vibecli lang set zh_CN` | 切换为中文 |
**另见**: `vibecli lang set --help` · [`vibecli lang`](#vibecli-lang) · [命令列表](#commands)
## `vibecli completion`
输出 bash、zsh、fish 的补全脚本。保存到文件后,在 shell 配置里 source 它(fish 放进补全目录即可)。
**用法**
```text
vibecli completion [options]
```
**参数**
| 参数 | 说明 |
| ------- | --------------- |
| `shell` | bash、zsh 或 fish |
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**何时使用**
想用 Tab 键补全 VibeCLI 的命令时。
**前提**
* 使用 bash、zsh 或 fish
**示例**
| 命令 | 说明 |
| ------------------------------------------------------------------- | ---------- |
| `vibecli completion bash > ~/.vibecli-completion.bash` | 生成 bash 补全 |
| `vibecli completion zsh > ~/.vibecli-completion.zsh` | 生成 zsh 补全 |
| `vibecli completion fish > ~/.config/fish/completions/vibecli.fish` | 生成 fish 补全 |
**另见**: `vibecli completion --help` · [命令列表](#commands)
## `vibecli enter`
不经过主菜单,直接打开指定的配置菜单。
**用法**
```text
vibecli enter [options] [option]
```
**参数**
| 参数 | 说明 |
| -------- | ----------- |
| `option` | 要打开的菜单(见下表) |
**选项**
| 选项 | 说明 |
| ------------ | ---- |
| `-h, --help` | 显示帮助 |
另可使用[全局选项](#global-options):`-v, --version` `--base ` `--non-interactive` `--json` `-y, --yes` `--dry-run` `--no-color`
**菜单**
| 写法 | 说明 |
| -------- | ------------------------------------- |
| `(不填)` | 主菜单 |
| `lang` | 语言设置 |
| `apikey` | 令牌设置 |
| `models` | 模型设置 |
| `` | 该工具的配置菜单(与 vibecli config \ 相同) |
**何时使用**
知道要修改哪一项,想跳过主菜单时。
**替代方式**
| 命令 | 什么情况下改用它 |
| ----------------------- | ----------- |
| `vibecli` | 从主菜单开始选择 |
| `vibecli config ` | 直接用命令配置某个工具 |
**示例**
| 命令 | 说明 |
| ---------------------- | -------------- |
| `vibecli enter` | 打开主菜单 |
| `vibecli enter models` | 打开模型设置 |
| `vibecli enter codex` | 打开 Codex 的配置菜单 |
**另见**: `vibecli enter --help` · [命令列表](#commands)
# 鉴权体系说明(Auth)
## 说明
后台管理接口采用多级鉴权机制,常见为:**公开**、**用户**、**管理员**、**Root**。
## 认证方式(二选一)
### Session
通过登录接口获取 Session:
* `POST /api/user/login`
### Access Token(推荐)
在请求头中携带:
```text
Authorization: Bearer {token}
```
Token 可在「个人设置 - 安全设置 - 系统访问令牌」中生成。
## 必需请求头
部分接口要求携带用户标识请求头:
```text
New-Api-User: {user_id}
```
其中 `{user_id}` 必须与当前登录用户匹配。
## 权限级别
* **公开(Public)**:无需鉴权
* **用户(User)**:需要登录或 Access Token
* **管理员(Admin)**:需要管理员权限
* **Root**:最高权限
# 管理接口
import { Card, Cards } from 'fumadocs-ui/components/card';
# default
import { Card, Cards } from 'fumadocs-ui/components/card';
# 使用兑换码
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 日志
import { Card, Cards } from 'fumadocs-ui/components/card';
# 获取个人日志
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 搜索个人日志
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取个人日志统计
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 通过令牌获取日志
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(通过令牌查询)
# 安全验证
import { Card, Cards } from 'fumadocs-ui/components/card';
# 通用安全验证
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取验证状态
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 充值
import { Card, Cards } from 'fumadocs-ui/components/card';
# 获取支付金额
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 发起Creem支付
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 发起易支付
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取Stripe支付金额
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 发起Stripe支付
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取充值信息
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取用户充值记录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取个人额度数据
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 数据统计
import { Card, Cards } from 'fumadocs-ui/components/card';
# OAuth
import { Card, Cards } from 'fumadocs-ui/components/card';
# Discord OAuth登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(OAuth回调)
# 绑定邮箱
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# GitHub OAuth登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(OAuth回调)
# LinuxDO OAuth登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(OAuth回调)
# OIDC登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(OAuth回调)
# 生成OAuth State
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 绑定Telegram
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# Telegram登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(OAuth回调)
# 绑定微信
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 微信OAuth登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(OAuth回调)
# 获取关于信息
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 获取首页内容
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 系统
import { Card, Cards } from 'fumadocs-ui/components/card';
# 获取模型列表
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取公告
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 获取定价信息
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(可选登录)
# 获取隐私政策
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 获取倍率配置
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 获取初始化状态
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 初始化系统
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 获取系统状态
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 获取Uptime Kuma状态
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 获取用户协议
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 两步验证
import { Card, Cards } from 'fumadocs-ui/components/card';
# 重新生成备用码
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 禁用2FA
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 启用2FA
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 设置2FA
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取2FA状态
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 令牌管理
import { Card, Cards } from 'fumadocs-ui/components/card';
# 批量删除令牌
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取所有令牌
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 删除令牌
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取指定令牌
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 创建令牌
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 更新令牌
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 搜索令牌
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取令牌使用情况
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔑 需要令牌认证(TokenAuth)
# 用户管理
import { Card, Cards } from 'fumadocs-ui/components/card';
# 获取邀请码
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 转换邀请额度
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取用户可用模型
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 删除Passkey
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取Passkey状态
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 开始注册Passkey
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 完成注册Passkey
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 开始验证Passkey
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 完成验证Passkey
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 注销当前用户
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取当前用户信息
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取当前用户分组
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 更新当前用户信息
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 更新用户设置
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 生成访问令牌
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 用户登陆注册
import { Card, Cards } from 'fumadocs-ui/components/card';
# 发送密码重置邮件
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 获取用户分组列表
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 两步验证登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权(登录流程)
# 用户登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 用户登出
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 开始Passkey登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 完成Passkey登录
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 用户注册
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 重置密码
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 发送邮箱验证码
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔓 无需鉴权
# 任务
import { Card, Cards } from 'fumadocs-ui/components/card';
# 获取个人Midjourney任务
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)
# 获取个人任务
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
🔐 需要登录(User权限)