CLI 配置
iFlow CLI 提供了丰富的配置选项,您可以通过环境变量、命令行参数和设置文件来定制CLI的行为。下面我们将详细介绍这些配置方式,帮助您打造专属的使用体验。
配置层级
iFlow CLI 采用分层配置系统,按照以下优先级顺序生效,优先级高的设置会覆盖低优先级的设置:
- 应用默认值: CLI 内置的基础配置
- 用户全局设置: 您的个人默认配置,适用于所有项目
- 项目专属设置: 特定项目的配置,会覆盖用户设置
- 系统级设置: 管理员 配置,适用于整个系统
- 命令行参数: 启动时指定的临时配置,优先级最高
环境变量配置
iFlow CLI 现在支持通过环境变量进行配置,所有 ~/.iflow/settings.json
中的配置项都可以通过 IFLOW_ 前缀的环境变量设置,避免与其他项目的环境变量冲突。
环境变量命名约定
IFLOW 前缀规则
为了避免与其他项目的环境变量冲突,所有环境变量都必须使用 IFLOW
或 iflow
前缀。
对于 settings.json
中的任何配置项,iFlow 支持以下 4 种环境变量命名约定(按优先级排序):
- IFLOW_前缀的驼峰命名 -
IFLOW_
+ settings.json 中的 key 名称(推荐) - IFLOW_前缀的下划线命名 -
IFLOW_
+ 大写下划线格式 - iflow_前缀的驼峰命名 -
iflow_
+ settings.json 中的 key 名称 - iflow_前缀的下划线命名 -
iflow_
+ 大写下划线格式
命名示例
settings.json 中的 key | 1. IFLOW_驼峰 | 2. IFLOW_下划线 | 3. iflow_驼峰 | 4. iflow_下划线 |
---|---|---|---|---|
apiKey | IFLOW_apiKey | IFLOW_API_KEY | iflow_apiKey | iflow_API_KEY |
baseUrl | IFLOW_baseUrl | IFLOW_BASE_URL | iflow_baseUrl | iflow_BASE_URL |
modelName | IFLOW_modelName | IFLOW_MODEL_NAME | iflow_modelName | iflow_MODEL_NAME |
vimMode | IFLOW_vimMode | IFLOW_VIM_MODE | iflow_vimMode | iflow_VIM_MODE |
showMemoryUsage | IFLOW_showMemoryUsage | IFLOW_SHOW_MEMORY_USAGE | iflow_showMemoryUsage | iflow_SHOW_MEMORY_USAGE |
支持的配置项
所有在 ~/.iflow/settings.json
中的配置项都支持通过环境变量设置,包括但不限于:
apiKey
- API 密钥baseUrl
- 基础 URLmodelName
- 模型名称vimMode
- Vim 模式开关showMemoryUsage
- 显示内存使用maxSessionTurns
- 最大会话轮数theme
- 主题设置- 以及 Settings 接口中的所有其他配置项
使用方法
方法 1: 使用 IFLOW_前缀的驼峰命名(推荐)
export IFLOW_apiKey="your_api_key_here"
export IFLOW_baseUrl="https://your-api-url.com/v1"
export IFLOW_modelName="your_model_name"
iflow
方法 2: 使用 IFLOW_前缀的下划线命名
export IFLOW_API_KEY="your_api_key_here"
export IFLOW_BASE_URL="https://your-api-url.com/v1"
export IFLOW_MODEL_NAME="your_model_name"
iflow
方法 3: 使用 iflow_前缀(小写)
export iflow_apiKey="your_api_key_here"
export iflow_baseUrl="https://your-api-url.com/v1"
export iflow_modelName="your_model_name"
iflow
方法 4: 一行设置并启动
IFLOW_apiKey=your_key IFLOW_baseUrl=https://api.example.com/v1 iflow
方法 5: 设置更多配置项
# 所有 settings.json 中的配置都支持 IFLOW_ 前缀
export IFLOW_apiKey="your_api_key_here"
export IFLOW_baseUrl="https://your-api-url.com/v1"
export IFLOW_modelName="your_model_name"
export IFLOW_vimMode="true"
export IFLOW_showMemoryUsage="true"
export IFLOW_maxSessionTurns="50"
export IFLOW_coreTools="read,write,shell,grep"
export IFLOW_theme="dark"
iflow
配置优先级
配置的完整优先级(从高到低):
- 命令行参数 - 如
iflow --model your-model
- IFLOW 前缀环境变量 - 支持所有 settings.json 中的配置项
- IFLOW_驼峰命名 > IFLOW_下划线命名 > iflow_驼峰命名 > iflow_下划线命名
- 系统配置文件 -
/etc/iflow-cli/settings.json
或类似路径 - 工作区配置文件 -
./iflow/settings.json
- 用户配置文件 -
~/.iflow/settings.json
- 默认值 - 代码中定义的默认配置
实际使用案例
OpenAI 兼容 API
export IFLOW_apiKey="sk-1234567890abcdef"
export IFLOW_baseUrl="https://api.openai.com/v1"
export IFLOW_modelName="gpt-4"
iflow
自定义 API 服务
export IFLOW_API_KEY="your_custom_key"
export IFLOW_BASE_URL="https://your-custom-api.com/v1"
export IFLOW_MODEL_NAME="your-custom-model"
iflow
在 CI/CD 环境中使用
# 在 GitHub Actions 或其他 CI 环境中
export IFLOW_apiKey="${{ secrets.API_KEY }}"
export IFLOW_baseUrl="${{ vars.API_URL }}"
iflow --prompt "Generate documentation"
环境变量验证
iFlow 会自动检测和验证环境变量:
- 如果检测到有效的环境变量配置,会自动选择 iFlow 认证类型
- 如果没有任何配置,会显示帮助信息指导如何设置
- 错误的配置会显示详细的错误消息
安全注意事项
- 不要在代码中硬编码 API 密钥
- 使用
.env
文件存储本地开发配置 - 在生产环境中使用环境变量或密钥管理服务
- 定期轮换 API 密钥
故障排除
优先级问题
如果配置没有按预期工作,检查是否有更高优先级的配置覆盖了环境变量:
- 检查命令行参数
- 检查
~/.iflow/settings.json
配置文件 - 检查其他环境变量
认证失败
确保:
- API 密钥格式正确
- 基础 URL 可访问
- 模型名称正确
迁移指南
从配置文件迁移到环境变量
如果您之前使用配置文件,可以将设置迁移到环境变量:
# 将以下内容添加到您的 .bashrc 或 .zshrc
export IFLOW_API_KEY="从 settings.json 中的 apiKey"
export IFLOW_BASE_URL="从 settings.json 中的 baseUrl"
export IFLOW_MODEL_NAME="从 settings.json 中的 modelName"
保持向后兼容
现有的所有配置方式继续有效:
settings.json
配置文件- 原有环境变量(
GEMINI_API_KEY
等) - 命令行参数