|
| 1 | +<div align="center"> |
| 2 | + |
| 3 | +# ProxyCast 🚀 |
| 4 | + |
| 5 | +**一款强大的桌面应用,将各种大模型客户端 API(Kiro Claude、Gemini CLI、通义千问等)统一转换为本地 OpenAI 兼容接口。** |
| 6 | + |
| 7 | +[](https://www.gnu.org/licenses/gpl-3.0) |
| 8 | +[](https://tauri.app/) |
| 9 | +[](https://react.dev/) |
| 10 | +[](https://www.rust-lang.org/) |
| 11 | + |
| 12 | +</div> |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +ProxyCast 是一款基于 Tauri 2.0 + React 18 + Rust 构建的跨平台桌面应用,能够将原本仅限客户端使用的免费大模型(如 Kiro Claude、Gemini CLI、通义千问)转换为标准 OpenAI 兼容接口,让 Cherry-Studio、NextChat、Cline 等工具可以自由调用 Claude Sonnet 4.5、Gemini 2.5 Flash、Qwen3 Coder Plus 等高级模型。 |
| 17 | + |
| 18 | +> **💡 与 AIClient-2-API 的区别** |
| 19 | +> |
| 20 | +> ProxyCast 是 [AIClient-2-API](https://github.com/justlovemaki/AIClient-2-API) 的桌面版本,提供更友好的图形界面和一键操作体验,无需命令行配置。 |
| 21 | +
|
| 22 | +--- |
| 23 | + |
| 24 | +## ✨ 核心特性 |
| 25 | + |
| 26 | +### 🎯 多 Provider 统一管理 |
| 27 | +- **Kiro Claude** - 通过 OAuth 免费使用 Claude Sonnet 4.5 |
| 28 | +- **Gemini CLI** - 通过 OAuth 突破 Gemini 免费限制 |
| 29 | +- **通义千问** - 通过 OAuth 使用 Qwen3 Coder Plus |
| 30 | +- **OpenAI 自定义** - 配置自定义 OpenAI 兼容 API |
| 31 | +- **Claude 自定义** - 配置自定义 Claude API |
| 32 | + |
| 33 | +### 🖥️ 友好的图形界面 |
| 34 | +- **Dashboard** - 服务状态监控、API 测试面板 |
| 35 | +- **Provider 管理** - 一键加载凭证、Token 刷新、默认 Provider 切换 |
| 36 | +- **设置页面** - 服务器配置、端口设置、API Key 管理 |
| 37 | +- **日志查看** - 实时日志记录、操作追踪 |
| 38 | + |
| 39 | +### 🔄 智能凭证管理 |
| 40 | +- 自动检测凭证文件变化(每 5 秒) |
| 41 | +- 一键读取本地 OAuth 凭证 |
| 42 | +- Token 过期自动刷新 |
| 43 | +- 环境变量导出(.env 格式) |
| 44 | + |
| 45 | +### 🌐 完整 API 兼容 |
| 46 | +- `/v1/chat/completions` - OpenAI Chat API |
| 47 | +- `/v1/models` - 模型列表 |
| 48 | +- `/v1/messages` - Anthropic Messages API |
| 49 | +- `/v1/messages/count_tokens` - Token 计数 |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +## 📸 界面截图 |
| 54 | + |
| 55 | +### Dashboard - 服务控制与 API 测试 |
| 56 | + |
| 57 | + |
| 58 | +### Provider 管理 - 凭证配置与切换 |
| 59 | + |
| 60 | + |
| 61 | +### 设置页面 - 服务器配置 |
| 62 | + |
| 63 | + |
| 64 | +### 日志查看 - 实时操作记录 |
| 65 | + |
| 66 | + |
| 67 | +--- |
| 68 | + |
| 69 | +## 🚀 快速开始 |
| 70 | + |
| 71 | +### 下载安装 |
| 72 | + |
| 73 | +从 [Releases](https://github.com/aiclientproxy/proxycast/releases) 页面下载对应平台的安装包: |
| 74 | + |
| 75 | +- **macOS (Apple Silicon)**: `ProxyCast_x.x.x_aarch64.dmg` |
| 76 | +- **Windows (x64)**: `ProxyCast_x.x.x_x64-setup.exe` |
| 77 | + |
| 78 | +### 凭证文件位置 |
| 79 | + |
| 80 | +| Provider | 默认路径 | 说明 | |
| 81 | +|----------|---------|------| |
| 82 | +| **Kiro** | `~/.aws/sso/cache/kiro-auth-token.json` | Kiro OAuth Token | |
| 83 | +| **Gemini** | `~/.gemini/oauth_creds.json` | Gemini CLI OAuth | |
| 84 | +| **Qwen** | `~/.qwen/oauth_creds.json` | 通义千问 OAuth | |
| 85 | + |
| 86 | +> **提示**: `~` 表示用户主目录(macOS: `/Users/用户名`,Windows: `C:\Users\用户名`) |
| 87 | +
|
| 88 | +### 使用步骤 |
| 89 | + |
| 90 | +1. **启动应用** - 打开 ProxyCast |
| 91 | +2. **加载凭证** - 进入 Provider 管理页面,点击"一键读取凭证" |
| 92 | +3. **启动服务** - 在 Dashboard 点击"启动服务器" |
| 93 | +4. **配置客户端** - 在 Cherry-Studio、Cline 等工具中配置: |
| 94 | + ``` |
| 95 | + API Base URL: http://localhost:3001/v1 |
| 96 | + API Key: proxycast-key |
| 97 | + ``` |
| 98 | + |
| 99 | +--- |
| 100 | + |
| 101 | +## 🔧 API 使用示例 |
| 102 | + |
| 103 | +### OpenAI Chat Completions |
| 104 | + |
| 105 | +```bash |
| 106 | +curl http://localhost:3001/v1/chat/completions \ |
| 107 | + -H "Content-Type: application/json" \ |
| 108 | + -H "Authorization: Bearer proxycast-key" \ |
| 109 | + -d '{ |
| 110 | + "model": "claude-sonnet-4-5-20250514", |
| 111 | + "messages": [ |
| 112 | + {"role": "user", "content": "Hello!"} |
| 113 | + ], |
| 114 | + "stream": true |
| 115 | + }' |
| 116 | +``` |
| 117 | + |
| 118 | +### Anthropic Messages API |
| 119 | + |
| 120 | +```bash |
| 121 | +curl http://localhost:3001/v1/messages \ |
| 122 | + -H "Content-Type: application/json" \ |
| 123 | + -H "x-api-key: proxycast-key" \ |
| 124 | + -H "anthropic-version: 2023-06-01" \ |
| 125 | + -d '{ |
| 126 | + "model": "claude-sonnet-4-5-20250514", |
| 127 | + "max_tokens": 1024, |
| 128 | + "messages": [ |
| 129 | + {"role": "user", "content": "Hello!"} |
| 130 | + ] |
| 131 | + }' |
| 132 | +``` |
| 133 | + |
| 134 | +--- |
| 135 | + |
| 136 | +## 🛠️ 开发构建 |
| 137 | + |
| 138 | +### 环境要求 |
| 139 | + |
| 140 | +- Node.js >= 20.0.0 |
| 141 | +- Rust >= 1.70 |
| 142 | +- pnpm 或 npm |
| 143 | + |
| 144 | +### 本地开发 |
| 145 | + |
| 146 | +```bash |
| 147 | +# 安装依赖 |
| 148 | +npm install |
| 149 | + |
| 150 | +# 启动开发服务器 |
| 151 | +npm run tauri dev |
| 152 | +``` |
| 153 | + |
| 154 | +### 构建发布 |
| 155 | + |
| 156 | +```bash |
| 157 | +# 构建生产版本 |
| 158 | +npm run tauri build |
| 159 | +``` |
| 160 | + |
| 161 | +--- |
| 162 | + |
| 163 | +## 📄 开源协议 |
| 164 | + |
| 165 | +本项目采用 [GNU General Public License v3 (GPLv3)](https://www.gnu.org/licenses/gpl-3.0) 协议开源。 |
| 166 | + |
| 167 | +## 🙏 致谢 |
| 168 | + |
| 169 | +- [AIClient-2-API](https://github.com/justlovemaki/AIClient-2-API) - 核心逻辑参考 |
| 170 | +- [Tauri](https://tauri.app/) - 跨平台桌面框架 |
| 171 | +- [shadcn/ui](https://ui.shadcn.com/) - UI 组件库 |
| 172 | + |
| 173 | +--- |
| 174 | + |
| 175 | +## ⚠️ 免责声明 |
| 176 | + |
| 177 | +### 使用风险提示 |
| 178 | +本项目(ProxyCast)仅供学习和研究使用。用户在使用本项目时需自行承担所有风险。作者不对因使用本项目而导致的任何直接、间接或后果性损失负责。 |
| 179 | + |
| 180 | +### 第三方服务责任声明 |
| 181 | +本项目是一个 API 代理工具,不提供任何 AI 模型服务。所有 AI 模型服务均由各自的第三方提供商(如 Google、Anthropic、阿里云等)提供。用户在通过本项目访问这些服务时,应遵守各第三方服务的使用条款和政策。 |
| 182 | + |
| 183 | +### 数据隐私声明 |
| 184 | +本项目在本地运行,不收集或上传任何用户数据。但用户在使用本项目时应保护好自己的 API 密钥和其他敏感信息。 |
0 commit comments