@juanbenjumea / pi-multi-opencode-go
Pi的多帐户故障转移 opencode-go 提供者。的实时使用情况来旋转API密钥 官方OpenCode Go使用API (滚动/每周/每月),覆盖 Authorization 每个请求,并在达到限制时保持冷却时间。
灵感来自 pi-multicodex 和 pi-multi-account,但为OpenCode Go构建。
用法抓取存在于 @juanbenjumea/pi-provider-usage-fetcher (与 @juanbenjumea/pi-dynamic-footer). 从v0.2.0开始,它使用官方API (GET https://opencode.ai/zen/go/v1/usage(与聊天完成相同的键)-没有工作区cookie或仪表板HTML抓取。
安装
pi install npm:@juanbenjumea/pi-multi-opencode-go
/reload
这篇文章(发表前):
# settings.json packages entry (relative to pi/agent/settings.json):
# "../packages/pi-multi-opencode-go"
pi -e /path/to/dotfiles/pi/packages/pi-multi-opencode-go
要求
- 节点20 +
@earendil-works/pi-coding-agent≥0.80- 一个主要
opencode-goAPI输入auth.json(或env),因此Pi通过了它的验证检查;这个扩展覆盖每个请求的头部。
建议在 settings.json:
{
"retry": {
"provider": { "maxRetries": 0 }
}
}
配置账户
环境(最多8个插槽):
export OPENCODE_API_KEY_1="oc_..."
export OPENCODE_GO_LABEL_1="sub-1"
(OPENCODE_GO_WORKSPACE_ID_1 / OPENCODE_GO_AUTH_COOKIE_1 是可选的遗留字段,现在忽略。)
~/.pi/agent/auth.json:
{
"opencode-go-failover": {
"accounts": [
{
"label": "sub-1",
"key": "$OPENCODE_API_KEY_1"
}
]
}
}
只有 key -使用API使用与聊天完成相同的密钥进行身份验证。遗产 workspaceId / authCookie 字段被接受但未使用。
Env, auth.json 是 合并后的 (负载)。当一个嫉妒键与一个 auth.json 关键, auth.json 条目获胜,因此保留其标签/工作空间元数据。 auth.json 引用 "key": "$OPENCODE_API_KEY_2" 而 OPENCODE_API_KEY_2 也就是导出一定不要用匿名的影子吧 account-2.
值支持 $ENV, $$literal, !command (shell -仅当你信任你的配置时使用)。
命令
| 命令 | 描述 |
|---|---|
/opencode-accounts | 所有帐户的使用 |
/opencode-rotate | 手动旋转 |
/opencode-failover | 状态摘要 |
/opencode-failover reset | 清晰的冷却时间 |
同伴的扩展
为页脚和槽梯设置全局变量:
__opencode_go_active_label-活动账户标签__opencode_go_has_fallback-存在另一个非冷却账户__opencode_go_all_exhausted每个账号都有冷却时间
状态: ~/.pi/agent/opencode-go-failover-state.json (模式 0600)。
调试日志: ~/.pi/agent/opencode-go-failover.log (只有标签,没有秘密)。
安全
这个扩展从您的代理目录读取API密钥。在安装前检查源代码。不要承诺 auth.json 或者状态文件。
发布
cd pi/packages/pi-multi-opencode-go
npm publish --access public
然后切换 settings.json 来 npm:@juanbenjumea/[email protected].
许可证
麻省理工学院