Qoder 环境变量动态加载:根据不同项目文件夹自动切换 API 环境
先来说一个挺常见的场景:
手头同时维护着好几个项目,有的对接的是开发环境,有的跑在测试环境,还有的已经上了生产。Qoder 本身用起来很顺手,但问题在于,所有项目默认都共用同一套环境变量。比如 QODER_API_TOKEN、QODER_CREDITS_PROVIDER 这些关键配置,一旦切错项目,请求可能发错地方,权限校验也会莫名其妙地挂掉。
这背后的核心诉求其实很简单:能不能让 Qoder 根据当前打开的项目文件夹,自动切换对应的 API 环境?
答案是肯定的。而且不止一种方式,下面逐一拆解。
一、利用 .qoder/env 文件实现项目级变量覆盖
Qoder 原生支持在项目根目录放置一个 .qoder/env 文件。这个文件采用最朴素的键值对格式,里面的变量优先级高于全局环境变量。最关键的是,它只有在进入该项目目录时才生效,退出后自动失效——这就叫“上下文感知”。
具体操作分四步:
1. 新建隐藏文件夹。
.qoder 的文件夹。它应该跟 .git 同一个层级。
2. 创建 env 文件。
.qoder 目录里新建一个纯文本文件,名字就叫 env(无扩展名)。每行一个变量赋值,比如:
QODER_API_TOKEN=sk-proj-test-abc123
QODER_CREDITS_PROVIDER=mock-provider
NO_PROXY=localhost,127.0.0.1
3. 激活配置。
qoder reload-project)。Qoder 会自动读取并注入这个 env 文件里的变量。
4. 验证效果。
qoder env list,确认输出中包含了你刚才设置的变量,并且标记为 project-scoped。
这种方式最直接,适合个人开发者快速隔离环境配置。
二、通过 .gitattributes 声明式绑定 Profile
如果团队里有多套标准化的 API 环境(比如 dev、staging、prod),逐个编辑 env 文件就显得有点笨重了。这时可以用 Qoder 的 Profile 机制配合 .gitattributes 来实现批量加载。
操作方法如下:
1. 编辑 .gitattributes。
.gitattributes 文件。
2. 添加声明。
/ .qoder/profile=dev-env。这里的 dev-env 是你事先定义好的 Profile 名称。
3. 创建 Profile 文件。
QODER_HOME 环境变量指定)下的 profiles/ 子目录中,创建一个对应的 JSON 文件,比如 dev-env.json:
{
"QODER_API_TOKEN": "sk-proj-dev-xyz789",
"QODER_CREDITS_PROVIDER": "internal-dev-auth",
"QODER_MODEL_ROUTER": "qoder-llm-small"
}
4. 应用 Profile。
qoder profile apply dev-env,当前项目就会立即加载该 Profile 中的所有变量。
这种方式的好处是,环境配置集中管理,团队成员共用一套 Profile,减少手误。很适合需要统一管控多环境配置的项目组。
三、使用 shell wrapper 脚本启动项目专属会话
有些场景比较特殊——比如临时对接客户的私有化部署接口,既不想在 .qoder/env 里留下痕迹,也不想改动 .gitattributes。这时候,一个简单的启动脚本可能是最灵活的选择。
做法很简单:
1. 创建启动脚本。
start-qoder.sh,Windows 下命名为 start-qoder.bat。
2. 编写脚本内容。
#!/bin/bash
export QODER_API_TOKEN="sk-proj-customer-999"
export QODER_CREDITS_PROVIDER="customer-sso"
export QODER_WORKSPACE_ROOT="$(pwd)"
qoder "$@"
Windows 版本:
@echo off
set QODER_API_TOKEN=sk-proj-customer-999
set QODER_CREDITS_PROVIDER=customer-sso
set QODER_WORKSPACE_ROOT=%cd%
qoder %*
3. 赋予执行权限。
chmod +x start-qoder.sh。之后在项目目录中直接运行 ./start-qoder.sh 启动 Qoder,所有变量会被临时注入,不影响其他项目。
这就像是给每个项目准备了一个“专用的 Qoder 环境”,用完即走,干干净净。
