hjanuschka/pi-multi-pass
GitHub: hjanuschka/pi-multi-pass
pi-multi-pass是pi CLI的多订阅扩展,支持为多个AI编程助手提供商配置多个OAuth账户,实现速率限制自动轮换和项目级账户绑定。
Stars: 100 | Forks: 3
# pi-multi-pass
[pi](https://github.com/badlogic/pi-mono) 的多订阅扩展 —— 支持为每个提供商使用多个 OAuth 账户,具备自动速率限制轮换和项目级亲和性。
## 安装
```
pi install npm:pi-multi-pass
```
或通过 git:
```
pi install git:github.com/hjanuschka/pi-multi-pass
```
## 功能特性
- **多重订阅**:为任何提供商添加额外的 OAuth 账户
- **轮换池**:对订阅进行分组并在达到速率限制时自动轮换
- **项目亲和性**:限制每个项目使用的订阅/池
- **TUI 管理**:`/subs` 和 `/pool` 命令 —— 无需配置文件
- **标签**:为订阅添加标签(例如 "work"、"personal")
## 快速开始
```
/subs add Pick a provider, add a subscription
/login Authenticate the new subscription
/pool create Group subs into a rotation pool
```
当一个账户达到速率限制时,multi-pass 会自动切换到下一个并重试。
## 命令
### `/subs` -- 订阅管理
```
/subs Open menu
/subs add Add a new subscription
/subs remove Remove a subscription
/subs login Login to a subscription
/subs logout Logout from a subscription
/subs list List all subscriptions with auth status
/subs status Detailed status (token expiry, pool membership)
```
### `/pool` -- 轮换池管理
```
/pool Open menu
/pool create Create a pool (pick provider, select members)
/pool list Show all pools
/pool toggle Enable/disable a pool
/pool remove Delete a pool (keeps subscriptions)
/pool status Member health (logged in, rate limited, cooling down)
/pool project Project-level config (restrict subs, override pools)
```
## 项目级配置
使用 `/pool project` 配置每个项目的订阅亲和性。这会在您的项目目录中创建 `.pi/multi-pass.json` 文件。
### 使用场景:分离工作和个人账户
```
# 全局:您有 3 个 Codex 账户
/subs add -> openai-codex-2 (label: work)
/subs add -> openai-codex-3 (label: personal)
# 企业项目:仅限团队账户
cd ~/work/corp-project
/pool project -> restrict -> select openai-codex-2 only
# 个人项目:允许所有(无限制)
cd ~/side-project
# 无需 .pi/multi-pass.json -- 使用所有全局订阅
```
### 项目配置功能
| 功能 | 描述 |
|---|---|
| **限制订阅** | 仅允许在此项目中使用特定订阅 |
| **覆盖池** | 使用与全局不同的池(或禁用部分池) |
| **清除** | 移除项目配置,回退到全局配置 |
| **信息** | 显示有效配置(哪些池/订阅处于活动状态) |
### 项目配置文件
`.pi/multi-pass.json`:
```
{
"allowedSubs": ["openai-codex-2", "anthropic-2"],
"pools": [
{
"name": "work-codex",
"baseProvider": "openai-codex",
"members": ["openai-codex-2"],
"enabled": true
}
]
}
```
- `allowedSubs`:提供商名称白名单。如果设置,则只有这些(以及原始账户)可用。省略则允许所有。
- `pools`:如果设置,将替换此项目的全局池。省略则继承全局池。
## 池工作原理
1. 您正在使用 `openai-codex` 并遇到了速率限制
2. Multi-pass 检测到错误,将 `openai-codex` 标记为耗尽
3. 切换到 `openai-codex-2`(相同的模型 ID,不同的账户)
4. 自动重试您最后的提示
5. 经过 5 分钟的冷却后,`openai-codex` 再次变为可用
## 支持的提供商
| 提供商键 | 服务 |
|---|---|
| `anthropic` | Claude Pro/Max |
| `openai-codex` | ChatGPT Plus/Pro (Codex) |
| `github-copilot` | GitHub Copilot |
| `google-gemini-cli` | Google Cloud Code Assist |
| `google-antigravity` | Antigravity |
## 环境变量(可选)
```
export MULTI_SUB="openai-codex:2,anthropic:1"
```
环境变量条目会与保存的配置合并。
## 配置文件
| 文件 | 范围 | 内容 |
|---|---|---|
| `~/.pi/agent/multi-pass.json` | 全局 | 订阅 + 默认池 |
| `.pi/multi-pass.json` | 项目 | 池覆盖 + 订阅限制 |
## 许可证
MIT
标签:AI开发工具, Anthropic, API速率限制, CIS基准, Codex, Copilot, Gemini, MITM代理, OAuth管理, PE 加载器, Token管理, TUI, 会话保持, 多账户管理, 威胁情报, 开发者工具, 暗色界面, 流量调度, 浏览器扩展, 自动化攻击, 自动重试, 订阅管理, 负载均衡, 账户轮换, 项目级配置