# openroutermore **Repository Path**: opencode-plugin/openroutermore ## Basic Information - **Project Name**: openroutermore - **Description**: openrouter-支持多key轮询 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-18 - **Last Updated**: 2026-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenRouter More OpenCode 插件 — 为 [OpenRouter](https://openrouter.ai) 免费模型提供多 API Key 轮询支持,突破单 key 的 RPM/QPD 限制。 ## 特性 - **多 Key 自动轮询** — 每次请求轮换 API Key,有效叠加配额(单 key:20 RPM / 1000 QPD) - **错误容忍** — 单个 key 连续 3 次失败自动跳过;全部 key 失败时自动重置 - **Key 持久化** — 多 key 保存在 `~/.openroutermore/auth.json`,重启不丢失 - **9 个免费模型** — 涵盖推理增强、多模态、代码生成等场景 - **调试日志** — 环境变量一键开启,输出到 `~/.openroutermore/debug.log` ## 安装 ```bash # 克隆项目 git clone openroutermore cd openroutermore # 安装依赖 npm install # 构建 npm run build ``` ## 连接配置 在 OpenCode 中执行: ``` opencode connect openroutermore ``` 然后输入你的 OpenRouter API Key(多个 key 用逗号分隔): ``` 创建 API Key: https://openrouter.ai/workspaces/default/keys 免费模型限制:RPM:20,QPD:1000 /apikey 输入 API Keys(多key用逗号分隔)> ``` ## 可用模型 | 模型 key | OpenRouter 模型 ID | 上下文 | 最大输出 | 推理 | 视觉 | |----------|-------------------|--------|---------|:---:|:---:| | `nemotron-3-super-120b-a12` | `nvidia/nemotron-3-super-120b-a12b:free:nitro` | 1,000,000 | 262,144 | ✅ | ❌ | | `nemotron-3-nano-30b-a3b` | `nvidia/nemotron-3-nano-30b-a3b:free:nitro` | 262,144 | 262,144 | ✅ | ❌ | | `nemotron-3-nano-omni-30b-a3b` | `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free:nitro` | 262,144 | 65,536 | ✅ | ✅ | | `gpt-oss-120b` | `openai/gpt-oss-120b:free` | 131,072 | 8192 | ✅ | ❌ | | `gemma-4-31b-it` | `google/gemma-4-31b-it:free:nitro` | 262,144 | 32,768 | ✅ | ✅ | | `laguna-xs.2` | `poolside/laguna-xs.2:free:nitro` | 262,144 | 32,768 | ✅ | ❌ | | `laguna-m.1` | `poolside/laguna-m.1:free:nitro` | 262,144 | 32,768 | ✅ | ❌ | | `nex-n2-pro` | `nex-agi/nex-n2-pro:free:nitro` | 262,144 | 262,144 | ✅ | ✅ | | `north-mini-code` | `cohere/north-mini-code:free:nitro` | 262,144 | 65,536 | ✅ | ❌ | > 所有模型均为 **OpenRouter 免费 Nitro 路由**,输入/输出均为 **$0/1M tokens**。 ## 弃用模型 | 模型 key | OpenRouter 模型 ID | 上下文 | 最大输出 | 推理 | 视觉 | | ------------------- | ------------------------------------------- | ------- | -------- | :--: | :--: | | `nemotron-nano-12b` | `nvidia/nemotron-nano-12b-v2-vl:free:nitro` | 131,072 | 131,072 | ✅ | ✅ | ## 多 Key 轮询原理 ``` ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ KeyManager │────▶│ Key 1 (idx) │────▶│ auth.loader │ │ │ │ Key 2 (idx) │ │ (初始化) │ │ Round Robin │ │ Key 3 (idx) │ └──────────────┘ │ + 错误计数 │ │ ... │ │ └──────────────┘ └──────────────┘ │ │ ▼ │ ┌──────────────┐ └─────────────────────────────────▶│ chat.headers │ │ (每次请求轮换) │ └──────────────┘ ``` - **auth.loader**:首次初始化时读取所有 key,初始化 KeyManager - **chat.headers**:每次请求前轮换到下一个可用 key - **错误处理**:单个 key 连续 3 次错误会被跳过;全部 key 都失败时自动重置 ## 调试 通过环境变量开启调试日志: ```bash # 方式一:通用调试 export DEBUG=1 # 方式二:仅当前插件 export OPENCODE_OPENROUTERMORE_DEBUG=1 ``` 日志输出到:`~/.openroutermore/debug.log` ## 开发 ```bash # 类型检查 npm run typecheck # 构建 npm run build ``` ## 项目结构 ``` openroutermore/ ├── package.json # 依赖:@ai-sdk/openai-compatible, @opencode-ai/plugin ├── tsconfig.json └── src/ ├── index.ts # 主入口 — 多 key 轮换 + OpenAI 兼容格式 ├── constants.ts # 9 个模型定义与规格 ├── plugin/ │ ├── auth.ts # Key 持久化存储 │ └── key-manager.ts # 轮询管理器 └── utils/ └── debug-logger.ts # 调试日志 ```