# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: CLI Proxy AI/OAuth Provider
spec:
    description: OpenAI/Gemini/Claude/Codex compatible API proxy for CLI models with OAuth support - no API keys needed
    coverImage: https://opengraph.githubassets.com/1/router-for-me/CLIProxyAPI
    icon: https://avatars.githubusercontent.com/u/233033915?s=64&v=4
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: Domain for accessing CLIProxyAPI (API will be available at https://<domain>)
        - key: MANAGEMENT_PASSWORD
          type: STRING
          name: Management Password
          description: Password for accessing the management web UI (required for remote configuration)
    tags:
        - AI
        - API
        - Proxy
        - Tool
    readme: "# CLIProxyAPI\n\nA powerful proxy server that wraps CLI-based AI models (Gemini CLI, OpenAI Codex, Claude Code, Qwen Code, iFlow, Antigravity) as OpenAI/Gemini/Claude/Codex compatible API endpoints with OAuth authentication support.\n\n## Features\n\n- **Multi-Provider Support**: OpenAI Codex (GPT-5), Claude Code, Gemini CLI, Qwen Code, iFlow, and Antigravity\n- **OAuth Authentication**: Use your existing subscriptions without API keys\n- **Multi-Account Load Balancing**: Round-robin support across multiple accounts with automatic failover\n- **OpenAI Compatible**: Works seamlessly with any OpenAI SDK and AI coding tools\n- **Streaming Support**: Real-time streaming responses for all providers\n- **Function Calling**: Full tool/function calling support\n- **Web Management UI**: Built-in web interface for easy OAuth configuration\n- **Pre-configured**: Optimized config.yaml included - ready to use out of the box\n\n## Supported AI Coding Tools\n\nCLIProxyAPI works with all major AI coding assistants:\n- **Cursor** - AI-first code editor\n- **Continue** - VS Code extension for AI assistance\n- **Cline** - Claude-powered coding assistant\n- **Windsurf** - AI pair programming tool\n- **Roo Code** - AI code generation\n- **GitHub Copilot Chat** - Via OpenAI compatibility\n- **And many more** - Any tool supporting OpenAI API format\n\n## Quick Start Guide\n\n### Step 1: Authenticate Provider(s)\n\nAfter deployment, you have **two authentication methods**:\n\n#### Method A: Web UI (Recommended)\n\n1. Access Management Web UI at: `https://<your-domain>:8085`\n2. Click OAuth buttons for: **Codex**, **Claude Code**, **Qwen Code**, **iFlow**, or **Antigravity**\n3. Complete the OAuth flow in your browser\n4. For **Gemini CLI**: Use CLI method (requires terminal)\n\n#### Method B: CLI Authentication\n\nUse Zeabur's shell/terminal feature:\n\n```bash\n# Navigate to working directory\ncd /CLIProxyAPI\n\n# Gemini CLI (OAuth via port 8085)\n./CLIProxyAPI -no-browser --login\n\n# OpenAI Codex (OAuth via port 1455)\n./CLIProxyAPI -no-browser --codex-login\n\n# Claude Code (OAuth via port 54545)\n./CLIProxyAPI -no-browser --claude-login\n\n# Qwen Code\n./CLIProxyAPI -no-browser --qwen-login\n\n# iFlow (OAuth via port 11451)\n./CLIProxyAPI -no-browser --iflow-login\n\n# Antigravity (OAuth via port 51121)\n./CLIProxyAPI -no-browser --antigravity-login\n```\n\nThe `-no-browser` flag displays OAuth URL in terminal for manual browser authentication.\n\n### Step 2: Configure Your AI Coding Tool\n\nAfter authentication, configure your tools:\n\n**Base URL**: `https://<your-domain>/v1`  \n**API Key**: `sk-cliproxyapi-default-key-change-me` (or update in config.yaml)\n\n### Available Models\n\nEach provider exposes different models:\n\n**OpenAI Codex**: `gpt-5-codex`, `gpt-5`, `codex-latest`  \n**Claude Code**: `claude-sonnet-4`, `claude-opus-4`, `claude-sonnet-4-5`, `claude-opus-4-5`  \n**Gemini CLI**: `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.0-flash-thinking`  \n**Qwen Code**: `qwen-coder-plus`, `qwen-turbo`, `qwen-max`  \n**iFlow**: `tstars2.0`  \n**Antigravity**: `antigravity-latest`\n\n### Configuration Examples\n\n#### Cursor\n\n```json\n{\n  \"models\": {\n    \"override\": {\n      \"gpt-5-codex\": {\n        \"apiKey\": \"sk-cliproxyapi-default-key-change-me\",\n        \"baseURL\": \"https://<your-domain>/v1\"\n      }\n    }\n  }\n}\n```\n\n#### Continue\n\n```json\n{\n  \"models\": [\n    {\n      \"model\": \"gpt-5-codex\",\n      \"apiKey\": \"sk-cliproxyapi-default-key-change-me\",\n      \"apiBase\": \"https://<your-domain>/v1\"\n    }\n  ]\n}\n```\n\n#### Windsurf\n\n```toml\nmodel_provider = \"cliproxyapi\"\nmodel = \"gpt-5-codex\"\n\n[model_providers.cliproxyapi]\nname = \"cliproxyapi\"\nbase_url = \"https://<your-domain>/v1\"\nwire_api = \"responses\"\n```\n\n#### Cline\n\nIn VS Code Settings → Cline:\n- API Provider: `OpenAI Compatible`\n- Base URL: `https://<your-domain>/v1`\n- API Key: `sk-cliproxyapi-default-key-change-me`\n- Model: `gpt-5-codex`\n\n## Pre-configured Settings\n\nThis template includes an optimized `config.yaml` with:\n\n✅ **Remote Management Enabled** - Access Web UI from anywhere  \n✅ **Auto-retry on Failures** - 3 retries with 30s max interval  \n✅ **Round-robin Load Balancing** - Even distribution across accounts  \n✅ **Streaming Keepalive** - 15s keepalive for stable connections  \n✅ **Log Management** - File-based logging with 100MB limit  \n✅ **Usage Tracking** - Built-in usage statistics  \n✅ **Quota Management** - Auto-switch projects/models on quota exceeded\n\n**Config Location**: `/CLIProxyAPI/config.yaml`\n\nYou can edit the config via Zeabur's file editor or terminal to:\n- Add/update API keys\n- Configure model mappings and aliases\n- Set up proxy routing\n- Add custom headers\n- Exclude specific models\n- Configure payload transformations\n\nSee the [configuration guide](https://help.router-for.me/configuration/options.html) for all options.\n\n## Advanced Configuration\n\n### Custom API Keys\n\nEdit `/CLIProxyAPI/config.yaml` and update the `api-keys` section:\n\n```yaml\napi-keys:\n  - \"sk-your-secure-key-1\"\n  - \"sk-your-secure-key-2\"\n```\n\n### Multi-Account Setup\n\nAdd multiple OAuth accounts per provider via Web UI for load balancing, failover, and rate limiting.\n\n### Storage Backends\n\nFor persistent configuration, configure environment variables:\n\n**Git Storage**:\n```\nGITSTORE_GIT_URL=https://github.com/user/config.git\nGITSTORE_GIT_TOKEN=ghp_xxxxx\n```\n\n**PostgreSQL**:\n```\nPGSQL_ENABLE=true\nPGSQL_DSN=postgres://user:pass@host:5432/db\n```\n\n## Port Reference\n\n| Port | Purpose | Protocol |\n|------|---------|----------|\n| 8317 | Main API Endpoint | HTTP |\n| 8085 | Management Web UI & Gemini OAuth | HTTP |\n| 1455 | OpenAI Codex OAuth Callback | TCP |\n| 54545 | Claude Code OAuth Callback | TCP |\n| 51121 | Antigravity OAuth Callback | TCP |\n| 11451 | iFlow OAuth Callback | TCP |\n\n## Resources\n\n- **Documentation**: https://help.router-for.me/\n- **GitHub**: https://github.com/router-for-me/CLIProxyAPI\n- **Docker Guide**: https://help.router-for.me/docker/docker-compose.html\n- **Configuration**: https://help.router-for.me/configuration/options.html\n- **Issues**: https://github.com/router-for-me/CLIProxyAPI/issues\n\n## License\n\nMIT License - See [LICENSE](https://github.com/router-for-me/CLIProxyAPI/blob/main/LICENSE)\n"
    services:
        - name: CLIProxyAPI
          icon: https://avatars.githubusercontent.com/u/233033915?s=64&v=4
          template: PREBUILT
          spec:
            source:
                image: eceasy/cli-proxy-api:latest
                command:
                    - cd CLIProxyAPI && cp config.example.yaml ../data/config.yaml
                    - cd ..
                    - /CLIProxyAPI/CLIProxyAPI --config /data/config.yaml
            ports:
                - id: api
                  port: 8317
                  type: HTTP
                - id: management
                  port: 8085
                  type: HTTP
                - id: codexoauth
                  port: 1455
                  type: TCP
                - id: claudeoauth
                  port: 54545
                  type: TCP
                - id: antigravity
                  port: 51121
                  type: TCP
                - id: iflowoauth
                  port: 11451
                  type: TCP
            volumes:
                - id: data
                  dir: /data
            env:
                DEPLOY:
                    default: cloud
                    expose: false
                PORT:
                    default: "8317"
                    expose: true
localization:
    id-ID:
        description: Proxy API kompatibel OpenAI/Gemini/Claude/Codex untuk model CLI dengan dukungan OAuth - tanpa API key
        readme: "# CLIProxyAPI\n\nServer proxy yang mengemas model AI berbasis CLI (Gemini CLI, OpenAI Codex, Claude Code, Qwen Code, iFlow, Antigravity) sebagai API endpoint kompatibel OpenAI/Gemini/Claude/Codex dengan dukungan autentikasi OAuth.\n\n## Fitur\n\n- **Dukungan Multi-Provider**: OpenAI Codex (GPT-5), Claude Code, Gemini CLI, Qwen Code, iFlow, dan Antigravity\n- **Autentikasi OAuth**: Gunakan subscription yang sudah ada tanpa API key\n- **Load Balancing Multi-Akun**: Dukungan round-robin dengan failover otomatis\n- **Kompatibel OpenAI**: Bekerja mulus dengan semua SDK OpenAI dan AI coding tools\n- **Dukungan Streaming**: Respons streaming real-time untuk semua provider\n- **Function Calling**: Dukungan penuh untuk tool/function calling\n- **Web Management UI**: Interface web built-in untuk konfigurasi OAuth mudah\n- **Pre-configured**: config.yaml yang sudah dioptimasi - siap pakai langsung\n\n## AI Coding Tools yang Didukung\n\nCLIProxyAPI bekerja dengan semua AI coding assistant utama:\n- **Cursor** - Code editor AI-first\n- **Continue** - Ekstensi VS Code untuk AI assistance\n- **Cline** - Coding assistant berbasis Claude\n- **Windsurf** - AI pair programming tool\n- **Roo Code** - Generasi kode AI\n- **GitHub Copilot Chat** - Via kompatibilitas OpenAI\n- **Dan banyak lagi** - Tool apapun yang mendukung format OpenAI API\n\n## Panduan Quick Start\n\n### Langkah 1: Autentikasi Provider\n\nSetelah deployment, Anda punya **dua metode autentikasi**:\n\n#### Metode A: Web UI (Direkomendasikan)\n\n1. Akses Management Web UI di: `https://<your-domain>:8085`\n2. Klik tombol OAuth untuk: **Codex**, **Claude Code**, **Qwen Code**, **iFlow**, atau **Antigravity**\n3. Selesaikan alur OAuth di browser Anda\n4. Untuk **Gemini CLI**: Gunakan metode CLI (butuh terminal)\n\n#### Metode B: Autentikasi CLI\n\nGunakan fitur shell/terminal Zeabur:\n\n```bash\n# Masuk ke direktori kerja\ncd /CLIProxyAPI\n\n# Gemini CLI (OAuth via port 8085)\n./CLIProxyAPI -no-browser --login\n\n# OpenAI Codex (OAuth via port 1455)\n./CLIProxyAPI -no-browser --codex-login\n\n# Claude Code (OAuth via port 54545)\n./CLIProxyAPI -no-browser --claude-login\n\n# Qwen Code\n./CLIProxyAPI -no-browser --qwen-login\n\n# iFlow (OAuth via port 11451)\n./CLIProxyAPI -no-browser --iflow-login\n\n# Antigravity (OAuth via port 51121)\n./CLIProxyAPI -no-browser --antigravity-login\n```\n\nFlag `-no-browser` menampilkan URL OAuth di terminal untuk autentikasi manual via browser.\n\n### Langkah 2: Konfigurasi AI Coding Tool Anda\n\nSetelah autentikasi, konfigurasikan tool Anda:\n\n**Base URL**: `https://<your-domain>/v1`  \n**API Key**: `sk-cliproxyapi-default-key-change-me` (atau update di config.yaml)\n\n### Model yang Tersedia\n\nSetiap provider menyediakan model berbeda:\n\n**OpenAI Codex**: `gpt-5-codex`, `gpt-5`, `codex-latest`  \n**Claude Code**: `claude-sonnet-4`, `claude-opus-4`, `claude-sonnet-4-5`, `claude-opus-4-5`  \n**Gemini CLI**: `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.0-flash-thinking`  \n**Qwen Code**: `qwen-coder-plus`, `qwen-turbo`, `qwen-max`  \n**iFlow**: `tstars2.0`  \n**Antigravity**: `antigravity-latest`\n\n### Contoh Konfigurasi\n\n#### Cursor\n\n```json\n{\n  \"models\": {\n    \"override\": {\n      \"gpt-5-codex\": {\n        \"apiKey\": \"sk-cliproxyapi-default-key-change-me\",\n        \"baseURL\": \"https://<your-domain>/v1\"\n      }\n    }\n  }\n}\n```\n\n## Pengaturan Pre-configured\n\nTemplate ini sudah include `config.yaml` yang dioptimasi dengan:\n\n✅ **Remote Management Enabled** - Akses Web UI dari mana saja  \n✅ **Auto-retry pada Kegagalan** - 3x retry dengan interval max 30s  \n✅ **Round-robin Load Balancing** - Distribusi merata antar akun  \n✅ **Streaming Keepalive** - Keepalive 15s untuk koneksi stabil  \n✅ **Log Management** - Logging berbasis file dengan limit 100MB  \n✅ **Usage Tracking** - Statistik penggunaan built-in  \n✅ **Quota Management** - Auto-switch project/model saat quota habis\n\n**Lokasi Config**: `/CLIProxyAPI/config.yaml`\n\nAnda bisa edit config via file editor Zeabur atau terminal.\n\n## Referensi Port\n\n| Port | Tujuan | Protokol |\n|------|--------|----------|\n| 8317 | Endpoint API Utama | HTTP |\n| 8085 | Management Web UI & Gemini OAuth | HTTP |\n| 1455 | OpenAI Codex OAuth Callback | TCP |\n| 54545 | Claude Code OAuth Callback | TCP |\n| 51121 | Antigravity OAuth Callback | TCP |\n| 11451 | iFlow OAuth Callback | TCP |\n\n## Sumber Daya\n\n- **Dokumentasi**: https://help.router-for.me/\n- **GitHub**: https://github.com/router-for-me/CLIProxyAPI\n- **Panduan Docker**: https://help.router-for.me/docker/docker-compose.html\n- **Konfigurasi**: https://help.router-for.me/configuration/options.html\n- **Issues**: https://github.com/router-for-me/CLIProxyAPI/issues\n\n## Lisensi\n\nMIT License - Lihat [LICENSE](https://github.com/router-for-me/CLIProxyAPI/blob/main/LICENSE)\n"
    zh-CN:
        description: OpenAI/Gemini/Claude/Codex 兼容的 CLI 模型代理服务，支持 OAuth 认证 - 无需 API 密钥
        readme: "# CLIProxyAPI\n\n一个强大的代理服务器，将基于 CLI 的 AI 模型（Gemini CLI、OpenAI Codex、Claude Code、Qwen Code、iFlow、Antigravity）封装为 OpenAI/Gemini/Claude/Codex 兼容的 API 端点，支持 OAuth 认证。\n\n## 功能特点\n\n- **多供应商支持**: OpenAI Codex (GPT-5)、Claude Code、Gemini CLI、Qwen Code、iFlow 和 Antigravity\n- **OAuth 认证**: 使用现有订阅，无需 API 密钥\n- **多账户负载均衡**: 支持多账户轮询，自动故障转移\n- **OpenAI 兼容**: 与任何 OpenAI SDK 和 AI 编码工具无缝配合\n- **流式支持**: 所有供应商的实时流式响应\n- **函数调用**: 完整的工具/函数调用支持\n- **Web 管理界面**: 内置 Web 界面，便于 OAuth 配置\n- **预配置**: 包含优化的 config.yaml - 开箱即用\n\n## 支持的 AI 编码工具\n\nCLIProxyAPI 支持所有主流 AI 编码助手：\n- **Cursor** - AI 优先的代码编辑器\n- **Continue** - VS Code AI 辅助扩展\n- **Cline** - Claude 驱动的编码助手\n- **Windsurf** - AI 结对编程工具\n- **Roo Code** - AI 代码生成\n- **GitHub Copilot Chat** - 通过 OpenAI 兼容性\n- **等等** - 任何支持 OpenAI API 格式的工具\n\n## 快速开始指南\n\n### 步骤 1: 认证供应商\n\n部署后，您有**两种认证方法**：\n\n#### 方法 A: Web UI（推荐）\n\n1. 访问管理 Web UI：`https://<your-domain>:8085`\n2. 点击 OAuth 按钮：**Codex**、**Claude Code**、**Qwen Code**、**iFlow** 或 **Antigravity**\n3. 在浏览器中完成 OAuth 流程\n4. 对于 **Gemini CLI**：使用 CLI 方法（需要终端）\n\n#### 方法 B: CLI 认证\n\n使用 Zeabur 的 shell/终端功能：\n\n```bash\n# 进入工作目录\ncd /CLIProxyAPI\n\n# Gemini CLI (OAuth 通过端口 8085)\n./CLIProxyAPI -no-browser --login\n\n# OpenAI Codex (OAuth 通过端口 1455)\n./CLIProxyAPI -no-browser --codex-login\n\n# Claude Code (OAuth 通过端口 54545)\n./CLIProxyAPI -no-browser --claude-login\n\n# Qwen Code\n./CLIProxyAPI -no-browser --qwen-login\n\n# iFlow (OAuth 通过端口 11451)\n./CLIProxyAPI -no-browser --iflow-login\n\n# Antigravity (OAuth 通过端口 51121)\n./CLIProxyAPI -no-browser --antigravity-login\n```\n\n`-no-browser` 标志会在终端显示 OAuth URL，供手动浏览器认证。\n\n### 步骤 2: 配置您的 AI 编码工具\n\n认证后，配置您的工具：\n\n**基础 URL**: `https://<your-domain>/v1`  \n**API 密钥**: `sk-cliproxyapi-default-key-change-me`（或在 config.yaml 中更新）\n\n### 可用模型\n\n每个供应商提供不同的模型：\n\n**OpenAI Codex**: `gpt-5-codex`, `gpt-5`, `codex-latest`  \n**Claude Code**: `claude-sonnet-4`, `claude-opus-4`, `claude-sonnet-4-5`, `claude-opus-4-5`  \n**Gemini CLI**: `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.0-flash-thinking`  \n**Qwen Code**: `qwen-coder-plus`, `qwen-turbo`, `qwen-max`  \n**iFlow**: `tstars2.0`  \n**Antigravity**: `antigravity-latest`\n\n### 配置示例\n\n#### Cursor\n\n```json\n{\n  \"models\": {\n    \"override\": {\n      \"gpt-5-codex\": {\n        \"apiKey\": \"sk-cliproxyapi-default-key-change-me\",\n        \"baseURL\": \"https://<your-domain>/v1\"\n      }\n    }\n  }\n}\n```\n\n## 预配置设置\n\n此模板包含优化的 `config.yaml`，具有：\n\n✅ **远程管理已启用** - 从任何地方访问 Web UI  \n✅ **失败自动重试** - 3 次重试，最大 30 秒间隔  \n✅ **轮询负载均衡** - 账户间均匀分配  \n✅ **流式保活** - 15 秒保活，连接稳定  \n✅ **日志管理** - 基于文件的日志，100MB 限制  \n✅ **使用跟踪** - 内置使用统计  \n✅ **配额管理** - 配额超限时自动切换项目/模型\n\n**配置位置**: `/CLIProxyAPI/config.yaml`\n\n您可以通过 Zeabur 的文件编辑器或终端编辑配置。\n\n## 端口参考\n\n| 端口 | 用途 | 协议 |\n|------|------|------|\n| 8317 | 主 API 端点 | HTTP |\n| 8085 | 管理 Web UI 和 Gemini OAuth | HTTP |\n| 1455 | OpenAI Codex OAuth 回调 | TCP |\n| 54545 | Claude Code OAuth 回调 | TCP |\n| 51121 | Antigravity OAuth 回调 | TCP |\n| 11451 | iFlow OAuth 回调 | TCP |\n\n## 资源\n\n- **文档**: https://help.router-for.me/\n- **GitHub**: https://github.com/router-for-me/CLIProxyAPI\n- **Docker 指南**: https://help.router-for.me/docker/docker-compose.html\n- **配置**: https://help.router-for.me/configuration/options.html\n- **问题**: https://github.com/router-for-me/CLIProxyAPI/issues\n\n## 许可证\n\nMIT 许可证 - 参见 [LICENSE](https://github.com/router-for-me/CLIProxyAPI/blob/main/LICENSE)\n"
