1127 lines
34 KiB
Markdown
1127 lines
34 KiB
Markdown
# ProxyCast 完整配置文档
|
||
|
||
## 系统原理
|
||
|
||
```
|
||
你的 AI 凭证 ProxyCast 任意 AI 工具
|
||
┌─────────────────┐ ┌─────────────┐ ┌─────────────────────┐
|
||
│ Kiro OAuth │ │ │ │ Claude Code │
|
||
│ Gemini API Keys │ ───▶ │ 本地 API │ ───▶ │ Cherry Studio │
|
||
│ Qwen OAuth │ │ 代理服务 │ │ Cursor / Cline │
|
||
│ OpenRouter │ │ :8999 │ │ 你的 AI Agent │
|
||
└─────────────────┘ └─────────────┘ └─────────────────────┘
|
||
```
|
||
|
||
ProxyCast 把你已有的 AI 凭证转换成标准 OpenAI/Anthropic API,让任何支持这些接口的工具都能用。
|
||
|
||
---
|
||
|
||
## 一、启动 ProxyCast
|
||
|
||
```bash
|
||
cd /mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main && ./src-tauri/target/release/proxycast &
|
||
```
|
||
|
||
服务监听:`http://127.0.0.1:8999`
|
||
|
||
---
|
||
|
||
## 二、Claude Code 启动命令
|
||
|
||
### Claude Opus 4.6 (Kiro 凭证,最强)
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-opus-4-5
|
||
```
|
||
|
||
### Claude Sonnet 4.5 (Kiro 凭证)
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-sonnet-4-5
|
||
```
|
||
|
||
### DeepSeek R1 (OpenRouter 免费,推理最强)
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model deepseek/deepseek-r1-0528:free
|
||
```
|
||
|
||
### Gemini 2.0 Flash (OpenRouter 免费)
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model google/gemini-2.0-flash-exp:free
|
||
```
|
||
|
||
### Llama 3.1 405B (OpenRouter 免费,综合最强)
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model meta-llama/llama-3.1-405b-instruct:free
|
||
```
|
||
|
||
### Devstral 2 (OpenRouter 免费,代码专精)
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model mistralai/devstral-2512:free
|
||
```
|
||
|
||
### Gemini 3 Pro Preview - 最新预览版
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-3-pro-preview
|
||
|
||
### Gemini 2.5 Pro - Pro 版本
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-2.5-pro
|
||
```
|
||
|
||
### Gemini 2.5 Pro Preview
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-2.5-pro-preview-06-05
|
||
```
|
||
|
||
### Gemini 2.5 Flash - 快速版本
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-2.5-flash
|
||
```
|
||
|
||
### Gemini 2.5 Flash Lite - 轻量版本
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-2.5-flash-lite
|
||
```
|
||
|
||
---
|
||
|
||
## 三、API 直接调用
|
||
|
||
### 通用配置
|
||
```
|
||
API Base URL: http://127.0.0.1:8999/v1
|
||
API Key: proxy_cast
|
||
```
|
||
|
||
### cURL 示例
|
||
```bash
|
||
curl http://127.0.0.1:8999/v1/chat/completions \
|
||
-H "Content-Type: application/json" \
|
||
-H "Authorization: Bearer proxy_cast" \
|
||
-d '{
|
||
"model": "claude-opus-4-5",
|
||
"messages": [{"role": "user", "content": "Hello"}]
|
||
}'
|
||
```
|
||
|
||
### 获取可用模型列表
|
||
```bash
|
||
curl http://127.0.0.1:8999/v1/models -H "Authorization: Bearer proxy_cast"
|
||
```
|
||
|
||
---
|
||
|
||
## 四、可用模型列表
|
||
|
||
### Kiro 凭证 (Claude)
|
||
| 模型 | 说明 |
|
||
|------|------|
|
||
| `claude-opus-4-5` | 最强模型 |
|
||
| `claude-sonnet-4-5` | 平衡性能 |
|
||
| `claude-sonnet-4-5-20250929` | Sonnet 特定版本 |
|
||
| `claude-3-7-sonnet-20250219` | Claude 3.7 |
|
||
| `claude-3-5-sonnet-latest` | Claude 3.5 |
|
||
|
||
### Gemini API Keys (8个轮询负载均衡)
|
||
| 模型 | 说明 |
|
||
|------|------|
|
||
| `gemini-3-pro-preview` | 最新预览版 |
|
||
| `gemini-2.5-pro` | Pro 版本 |
|
||
| `gemini-2.5-flash` | 快速版本 |
|
||
| `gemini-2.5-flash-lite` | 轻量版本 |
|
||
|
||
### Qwen OAuth
|
||
| 模型 | 说明 |
|
||
|------|------|
|
||
| `qwen3-coder-plus` | 代码增强版 |
|
||
| `qwen3-coder-flash` | 快速版本 |
|
||
|
||
### OpenRouter 免费模型
|
||
| 模型 | 说明 |
|
||
|------|------|
|
||
| `deepseek/deepseek-r1-0528:free` | 推理最强 |
|
||
| `google/gemini-2.0-flash-exp:free` | 翻译首选 |
|
||
| `meta-llama/llama-3.1-405b-instruct:free` | 综合最强 |
|
||
| `meta-llama/llama-3.3-70b-instruct:free` | 速度快 |
|
||
| `mistralai/devstral-2512:free` | 代码专精 123B |
|
||
| `nousresearch/hermes-3-llama-3.1-405b:free` | 指令遵循好 |
|
||
| `openai/gpt-oss-120b:free` | GPT 开源 120B |
|
||
| `openai/gpt-oss-20b:free` | GPT 开源 20B |
|
||
| `moonshotai/kimi-k2:free` | Kimi K2.5 月之暗面 |
|
||
| `z-ai/glm-4.5-air:free` | 中文原生 |
|
||
| `alibaba/tongyi-deepresearch-30b-a3b:free` | 中文研究 |
|
||
| `kwaipilot/kat-coder-pro:free` | 代码 Agent |
|
||
| `qwen/qwen-2.5-vl-7b-instruct:free` | 视觉理解 |
|
||
| `allenai/olmo-3.1-32b-think:free` | 深度推理 |
|
||
|
||
---
|
||
|
||
## 五、凭证配置详情
|
||
|
||
### 凭证文件位置
|
||
| Provider | 路径 |
|
||
|----------|------|
|
||
| Kiro | `~/.aws/sso/cache/kiro-auth-token.json` |
|
||
| Gemini | `~/.gemini/oauth_creds.json` |
|
||
| Qwen | `~/.qwen/oauth_creds.json` |
|
||
| Codex | `~/.codex/auth.json` |
|
||
|
||
### ProxyCast 数据目录
|
||
- 配置文件:`~/.config/proxycast/config.json`
|
||
- 数据库:`~/.proxycast/proxycast.db`
|
||
- 凭证副本:`~/.local/share/proxycast/credentials/`
|
||
|
||
### 当前凭证池
|
||
```
|
||
kiro - Kiro OAuth (Claude)
|
||
qwen - Qwen OAuth
|
||
gemini_api_key - Gemini Key 1-8 (8个轮询)
|
||
openai - OpenRouter Free
|
||
```
|
||
|
||
---
|
||
|
||
## 六、刷新 Kiro Token
|
||
|
||
Kiro Token 过期后,使用以下命令刷新:
|
||
|
||
```bash
|
||
REFRESH_TOKEN=$(cat ~/.aws/sso/cache/kiro-auth-token.json | jq -r '.refreshToken')
|
||
|
||
curl -s -X POST "https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken" \
|
||
-H "Content-Type: application/json" \
|
||
-d "{\"refreshToken\": \"$REFRESH_TOKEN\"}" | jq '.' > /tmp/new_token.json
|
||
|
||
# 更新 token 文件
|
||
cat ~/.aws/sso/cache/kiro-auth-token.json | jq --slurpfile new /tmp/new_token.json '
|
||
.accessToken = $new[0].accessToken |
|
||
.expiresAt = (now + 3600 | todate)
|
||
' > ~/.aws/sso/cache/kiro-auth-token.json.tmp
|
||
|
||
mv ~/.aws/sso/cache/kiro-auth-token.json.tmp ~/.aws/sso/cache/kiro-auth-token.json
|
||
```
|
||
|
||
或者直接在 ProxyCast 界面点"刷新 Token"按钮。
|
||
|
||
---
|
||
|
||
## 七、配置文件参考
|
||
|
||
### ~/.config/proxycast/config.json
|
||
```json
|
||
{
|
||
"server": {
|
||
"host": "127.0.0.1",
|
||
"port": 8999,
|
||
"api_key": "proxy_cast"
|
||
},
|
||
"providers": {
|
||
"kiro": {
|
||
"enabled": true,
|
||
"credentials_path": "~/.aws/sso/cache/kiro-auth-token.json"
|
||
},
|
||
"gemini": {
|
||
"enabled": true,
|
||
"credentials_path": "~/.gemini/oauth_creds.json"
|
||
},
|
||
"qwen": {
|
||
"enabled": true,
|
||
"credentials_path": "~/.qwen/oauth_creds.json"
|
||
}
|
||
},
|
||
"default_provider": "kiro"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 八、其他工具配置
|
||
|
||
### Cherry Studio / Cursor / Cline
|
||
```
|
||
API Base URL: http://127.0.0.1:8999/v1
|
||
API Key: proxy_cast
|
||
Model: claude-opus-4-5
|
||
```
|
||
|
||
### Python 代码
|
||
```python
|
||
import openai
|
||
|
||
client = openai.OpenAI(
|
||
base_url="http://127.0.0.1:8999/v1",
|
||
api_key="proxy_cast"
|
||
)
|
||
|
||
response = client.chat.completions.create(
|
||
model="claude-opus-4-5",
|
||
messages=[{"role": "user", "content": "Hello"}]
|
||
)
|
||
print(response.choices[0].message.content)
|
||
```
|
||
|
||
---
|
||
|
||
## 九、故障排查
|
||
|
||
### ProxyCast 没运行
|
||
```bash
|
||
ps aux | grep proxycast
|
||
# 如果没有,启动它:
|
||
cd /mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main && ./src-tauri/target/release/proxycast &
|
||
```
|
||
|
||
### 检查端口
|
||
```bash
|
||
ss -tlnp | grep 8999
|
||
```
|
||
|
||
### 测试 API
|
||
```bash
|
||
curl http://127.0.0.1:8999/v1/models -H "Authorization: Bearer proxy_cast"
|
||
```
|
||
|
||
### Token 过期
|
||
在 ProxyCast 界面点"刷新 Token",或手动刷新(见第六节)。
|
||
|
||
---
|
||
|
||
## 十、Gemini API Keys
|
||
|
||
当前配置的 8 个 Key(轮询负载均衡):
|
||
```
|
||
# 请在此处填入你自己的 Gemini API Keys
|
||
# 格式:AIzaSy... (每行一个)
|
||
# 获取地址:https://aistudio.google.com/app/apikey
|
||
```
|
||
|
||
每日限制:每个 Key 20 RPD,8 个 Key = 160 次/天
|
||
|
||
---
|
||
|
||
## 十一、OpenRouter API Key
|
||
|
||
```
|
||
# 请在此处填入你自己的 OpenRouter API Key
|
||
# 格式:sk-or-v1-...
|
||
# 获取地址:https://openrouter.ai/keys
|
||
```
|
||
|
||
免费模型无限制使用。
|
||
|
||
---
|
||
|
||
*文档生成时间:2025-12-20 16:38*
|
||
|
||
|
||
---
|
||
|
||
## 十二、Claude Code 完整启动命令大全
|
||
|
||
### Kiro 凭证 (Claude 系列)
|
||
|
||
```bash
|
||
# Claude Opus 4.6 - 最强模型
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-opus-4-5
|
||
|
||
# Claude Sonnet 4.5 - 平衡性能
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-sonnet-4-5
|
||
|
||
# Claude Sonnet 4.5 特定版本
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-sonnet-4-5-20250929
|
||
|
||
# Claude 3.7 Sonnet
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-3-7-sonnet-20250219
|
||
|
||
# Claude 3.5 Sonnet Latest
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-3-5-sonnet-latest
|
||
```
|
||
|
||
### Gemini 系列 (8个 API Key 轮询)
|
||
|
||
```bash
|
||
# Gemini 3 Pro Preview - 最新预览版
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-3-pro-preview
|
||
|
||
# Gemini 2.5 Pro - Pro 版本
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-2.5-pro
|
||
|
||
# Gemini 2.5 Pro Preview
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-2.5-pro-preview-06-05
|
||
|
||
# Gemini 2.5 Flash - 快速版本
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-2.5-flash
|
||
|
||
# Gemini 2.5 Flash Lite - 轻量版本
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-2.5-flash-lite
|
||
```
|
||
|
||
### Qwen 系列 (阿里通义千问)
|
||
|
||
```bash
|
||
# Qwen3 Coder Plus - 代码增强版
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model qwen3-coder-plus
|
||
|
||
# Qwen3 Coder Flash - 快速版本
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model qwen3-coder-flash
|
||
```
|
||
|
||
### OpenRouter 免费模型
|
||
|
||
```bash
|
||
# DeepSeek R1 - 推理最强
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model deepseek/deepseek-r1-0528:free
|
||
|
||
# Gemini 2.0 Flash Exp - 翻译首选
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model google/gemini-2.0-flash-exp:free
|
||
|
||
# Llama 3.1 405B - 综合最强
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model meta-llama/llama-3.1-405b-instruct:free
|
||
|
||
# Llama 3.3 70B - 速度快
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model meta-llama/llama-3.3-70b-instruct:free
|
||
|
||
# Hermes 3 405B - 指令遵循好
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model nousresearch/hermes-3-llama-3.1-405b:free
|
||
|
||
# Devstral 2 - 代码专精 123B
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model mistralai/devstral-2512:free
|
||
|
||
# GLM 4.5 Air - 中文原生
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model z-ai/glm-4.5-air:free
|
||
|
||
# 通义深度研究 - 中文研究
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model alibaba/tongyi-deepresearch-30b-a3b:free
|
||
|
||
# KAT-Coder Pro - 代码 Agent
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model kwaipilot/kat-coder-pro:free
|
||
|
||
# Qwen 2.5 VL - 视觉理解
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model qwen/qwen-2.5-vl-7b-instruct:free
|
||
|
||
# NVIDIA Nemotron 12B VL - 视觉/文档
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model nvidia/nemotron-nano-12b-v2-vl:free
|
||
|
||
# Olmo 3.1 32B Think - 深度推理
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model allenai/olmo-3.1-32b-think:free
|
||
```
|
||
|
||
---
|
||
|
||
## 十三、快捷别名配置
|
||
|
||
在 `~/.bash_aliases` 或 `~/.bashrc` 中添加:
|
||
|
||
```bash
|
||
# ProxyCast 启动
|
||
alias proxycast='cd /mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main && ./src-tauri/target/release/proxycast &'
|
||
|
||
# Claude Code 快捷命令
|
||
alias cc-opus='CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-opus-4-5'
|
||
alias cc-sonnet='CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-sonnet-4-5'
|
||
alias cc-gemini='CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model gemini-3-pro-preview'
|
||
alias cc-deepseek='CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model deepseek/deepseek-r1-0528:free'
|
||
alias cc-qwen='CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model qwen3-coder-plus'
|
||
alias cc-llama='CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model meta-llama/llama-3.1-405b-instruct:free'
|
||
alias cc-devstral='CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model mistralai/devstral-2512:free'
|
||
```
|
||
|
||
添加后执行 `source ~/.bashrc` 生效。
|
||
|
||
---
|
||
|
||
## 十四、模型推荐场景
|
||
|
||
| 场景 | 推荐模型 | 启动命令 |
|
||
|------|----------|----------|
|
||
| 复杂推理/架构设计 | claude-opus-4-5 | `cc-opus` |
|
||
| 日常编码 | claude-sonnet-4-5 | `cc-sonnet` |
|
||
| 快速问答 | gemini-2.5-flash | 见上方命令 |
|
||
| 深度推理 | deepseek/deepseek-r1-0528:free | `cc-deepseek` |
|
||
| 代码专精 | mistralai/devstral-2512:free | `cc-devstral` |
|
||
| 中文任务 | qwen3-coder-plus | `cc-qwen` |
|
||
| 免费综合 | meta-llama/llama-3.1-405b-instruct:free | `cc-llama` |
|
||
|
||
---
|
||
|
||
*文档更新时间:2025-12-20 16:41*
|
||
|
||
|
||
---
|
||
|
||
## 十五、从零部署完整教程
|
||
|
||
### 1. 环境要求
|
||
|
||
```bash
|
||
# 系统要求
|
||
- Linux / WSL2 / macOS
|
||
- Node.js >= 20.0.0
|
||
- Rust >= 1.70
|
||
- pnpm 或 npm
|
||
|
||
# 检查环境
|
||
node -v # v20.x.x
|
||
rustc -V # rustc 1.70+
|
||
```
|
||
|
||
### 2. 获取源码
|
||
|
||
```bash
|
||
# 克隆或下载 ProxyCast
|
||
cd /mnt/d/.projects
|
||
git clone https://github.com/aiclientproxy/proxycast.git
|
||
# 或解压已有的 zip 包
|
||
```
|
||
|
||
### 3. 编译构建
|
||
|
||
```bash
|
||
cd proxycast-main
|
||
|
||
# 安装前端依赖
|
||
npm install
|
||
|
||
# 构建 Tauri 应用
|
||
npm run tauri build
|
||
|
||
# 构建产物位置
|
||
# Linux: src-tauri/target/release/proxycast
|
||
# macOS: src-tauri/target/release/bundle/dmg/
|
||
# Windows: src-tauri/target/release/bundle/msi/
|
||
```
|
||
|
||
### 4. 准备凭证文件
|
||
|
||
#### Kiro 凭证
|
||
```bash
|
||
# 安装 Kiro IDE 并登录,凭证自动生成在:
|
||
~/.aws/sso/cache/kiro-auth-token.json
|
||
```
|
||
|
||
#### Gemini 凭证
|
||
```bash
|
||
# 安装 Gemini CLI 并登录
|
||
pip install gemini-cli
|
||
gemini auth login
|
||
# 凭证位置:~/.gemini/oauth_creds.json
|
||
```
|
||
|
||
#### Qwen 凭证
|
||
```bash
|
||
# 安装通义千问 CLI 并登录
|
||
# 凭证位置:~/.qwen/oauth_creds.json
|
||
```
|
||
|
||
### 5. 首次启动配置
|
||
|
||
```bash
|
||
# 启动 ProxyCast
|
||
./src-tauri/target/release/proxycast &
|
||
|
||
# 等待 GUI 启动后:
|
||
# 1. 进入 "凭证池" 页面
|
||
# 2. 点击 "一键读取凭证" 或手动添加
|
||
# 3. 进入 "Dashboard" 点击 "启动服务器"
|
||
```
|
||
|
||
### 6. 手动添加凭证到数据库(无 GUI 方式)
|
||
|
||
```bash
|
||
# Kiro 凭证
|
||
sqlite3 ~/.proxycast/proxycast.db "INSERT INTO provider_pool_credentials (uuid, provider_type, credential_data, is_healthy, check_health, error_count, is_disabled, name, usage_count, created_at, updated_at, source) VALUES (
|
||
'$(uuidgen)',
|
||
'kiro',
|
||
'{\"type\":\"kiro_o_auth\",\"creds_file_path\":\"$HOME/.aws/sso/cache/kiro-auth-token.json\"}',
|
||
1, 1, 0, 0, 'Kiro OAuth', 0, $(date +%s), $(date +%s), 'manual'
|
||
);"
|
||
|
||
# Gemini OAuth
|
||
sqlite3 ~/.proxycast/proxycast.db "INSERT INTO provider_pool_credentials (uuid, provider_type, credential_data, is_healthy, check_health, error_count, is_disabled, name, usage_count, created_at, updated_at, source) VALUES (
|
||
'$(uuidgen)',
|
||
'gemini',
|
||
'{\"type\":\"gemini_o_auth\",\"creds_file_path\":\"$HOME/.gemini/oauth_creds.json\",\"project_id\":null}',
|
||
1, 1, 0, 0, 'Gemini OAuth', 0, $(date +%s), $(date +%s), 'manual'
|
||
);"
|
||
|
||
# Gemini API Key
|
||
sqlite3 ~/.proxycast/proxycast.db "INSERT INTO provider_pool_credentials (uuid, provider_type, credential_data, is_healthy, check_health, error_count, is_disabled, name, usage_count, created_at, updated_at, source) VALUES (
|
||
'$(uuidgen)',
|
||
'gemini_api_key',
|
||
'{\"type\":\"gemini_api_key\",\"api_key\":\"你的API_KEY\",\"base_url\":null,\"excluded_models\":[]}',
|
||
1, 1, 0, 0, 'Gemini Key 1', 0, $(date +%s), $(date +%s), 'manual'
|
||
);"
|
||
|
||
# Qwen OAuth
|
||
sqlite3 ~/.proxycast/proxycast.db "INSERT INTO provider_pool_credentials (uuid, provider_type, credential_data, is_healthy, check_health, error_count, is_disabled, name, usage_count, created_at, updated_at, source) VALUES (
|
||
'$(uuidgen)',
|
||
'qwen',
|
||
'{\"type\":\"qwen_o_auth\",\"creds_file_path\":\"$HOME/.qwen/oauth_creds.json\"}',
|
||
1, 1, 0, 0, 'Qwen OAuth', 0, $(date +%s), $(date +%s), 'manual'
|
||
);"
|
||
|
||
# OpenRouter (OpenAI 兼容)
|
||
sqlite3 ~/.proxycast/proxycast.db "INSERT INTO provider_pool_credentials (uuid, provider_type, credential_data, is_healthy, check_health, error_count, is_disabled, name, usage_count, created_at, updated_at, source) VALUES (
|
||
'$(uuidgen)',
|
||
'openai',
|
||
'{\"type\":\"open_a_i_key\",\"api_key\":\"sk-or-v1-xxx你的key\",\"base_url\":\"https://openrouter.ai/api\"}',
|
||
1, 1, 0, 0, 'OpenRouter Free', 0, $(date +%s), $(date +%s), 'manual'
|
||
);"
|
||
```
|
||
|
||
### 7. 创建配置文件
|
||
|
||
```bash
|
||
mkdir -p ~/.config/proxycast
|
||
|
||
cat > ~/.config/proxycast/config.json << 'EOF'
|
||
{
|
||
"server": {
|
||
"host": "127.0.0.1",
|
||
"port": 8999,
|
||
"api_key": "proxy_cast",
|
||
"tls": {"enable": false}
|
||
},
|
||
"providers": {
|
||
"kiro": {"enabled": true, "credentials_path": "~/.aws/sso/cache/kiro-auth-token.json"},
|
||
"gemini": {"enabled": true, "credentials_path": "~/.gemini/oauth_creds.json"},
|
||
"qwen": {"enabled": true, "credentials_path": "~/.qwen/oauth_creds.json"}
|
||
},
|
||
"default_provider": "kiro"
|
||
}
|
||
EOF
|
||
```
|
||
|
||
### 8. 验证部署
|
||
|
||
```bash
|
||
# 启动服务
|
||
./src-tauri/target/release/proxycast &
|
||
|
||
# 等待几秒后测试
|
||
curl http://127.0.0.1:8999/v1/models -H "Authorization: Bearer proxy_cast"
|
||
|
||
# 测试聊天
|
||
curl http://127.0.0.1:8999/v1/chat/completions \
|
||
-H "Content-Type: application/json" \
|
||
-H "Authorization: Bearer proxy_cast" \
|
||
-d '{"model":"claude-sonnet-4-5","messages":[{"role":"user","content":"Hi"}]}'
|
||
```
|
||
|
||
---
|
||
|
||
## 十六、无头模式(Headless)部署教程
|
||
|
||
适用于服务器、Docker、无 GUI 环境。
|
||
|
||
### 1. 无头启动
|
||
|
||
```bash
|
||
# 设置无显示环境
|
||
export DISPLAY=
|
||
|
||
# 或使用虚拟显示(如果需要)
|
||
Xvfb :99 -screen 0 1024x768x24 &
|
||
export DISPLAY=:99
|
||
|
||
# 启动 ProxyCast
|
||
./src-tauri/target/release/proxycast &
|
||
```
|
||
|
||
### 2. 纯命令行配置(无需 GUI)
|
||
|
||
```bash
|
||
#!/bin/bash
|
||
# headless-setup.sh - 无头模式一键配置脚本
|
||
|
||
PROXYCAST_DIR="/path/to/proxycast-main"
|
||
DB_PATH="$HOME/.proxycast/proxycast.db"
|
||
CONFIG_PATH="$HOME/.config/proxycast/config.json"
|
||
|
||
# 创建目录
|
||
mkdir -p ~/.proxycast ~/.config/proxycast
|
||
|
||
# 初始化数据库(首次运行会自动创建)
|
||
$PROXYCAST_DIR/src-tauri/target/release/proxycast &
|
||
sleep 3
|
||
pkill -f proxycast
|
||
|
||
# 添加凭证
|
||
add_credential() {
|
||
local type=$1
|
||
local data=$2
|
||
local name=$3
|
||
sqlite3 $DB_PATH "INSERT INTO provider_pool_credentials (uuid, provider_type, credential_data, is_healthy, check_health, error_count, is_disabled, name, usage_count, created_at, updated_at, source) VALUES ('$(uuidgen)', '$type', '$data', 1, 1, 0, 0, '$name', 0, $(date +%s), $(date +%s), 'manual');"
|
||
}
|
||
|
||
# 添加 Kiro
|
||
add_credential "kiro" '{"type":"kiro_o_auth","creds_file_path":"'$HOME'/.aws/sso/cache/kiro-auth-token.json"}' "Kiro OAuth"
|
||
|
||
# 添加 Gemini API Keys
|
||
GEMINI_KEYS=(
|
||
"AIzaSyBt4pIYmLYheuMpXSCj5VLkCA-fhfdEVT4"
|
||
"AIzaSyBSllSwrObqvUiXqFG5RUJXB6woZoBSaTk"
|
||
# 添加更多 keys...
|
||
)
|
||
for i in "${!GEMINI_KEYS[@]}"; do
|
||
add_credential "gemini_api_key" '{"type":"gemini_api_key","api_key":"'${GEMINI_KEYS[$i]}'","base_url":null,"excluded_models":[]}' "Gemini Key $((i+1))"
|
||
done
|
||
|
||
# 添加 OpenRouter
|
||
add_credential "openai" '{"type":"open_a_i_key","api_key":"sk-or-v1-xxx","base_url":"https://openrouter.ai/api"}' "OpenRouter"
|
||
|
||
echo "配置完成!"
|
||
```
|
||
|
||
### 3. Systemd 服务(Linux 后台运行)
|
||
|
||
```bash
|
||
# 创建服务文件
|
||
sudo cat > /etc/systemd/system/proxycast.service << 'EOF'
|
||
[Unit]
|
||
Description=ProxyCast API Proxy Service
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=lenovo
|
||
Environment=DISPLAY=
|
||
WorkingDirectory=/mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main
|
||
ExecStart=/mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main/src-tauri/target/release/proxycast
|
||
Restart=always
|
||
RestartSec=10
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
EOF
|
||
|
||
# 启用并启动服务
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl enable proxycast
|
||
sudo systemctl start proxycast
|
||
|
||
# 查看状态
|
||
sudo systemctl status proxycast
|
||
|
||
# 查看日志
|
||
journalctl -u proxycast -f
|
||
```
|
||
|
||
### 4. Docker 部署(可选)
|
||
|
||
```dockerfile
|
||
# Dockerfile
|
||
FROM rust:1.70 as builder
|
||
WORKDIR /app
|
||
COPY . .
|
||
RUN cargo build --release -p proxycast
|
||
|
||
FROM debian:bookworm-slim
|
||
RUN apt-get update && apt-get install -y libwebkit2gtk-4.1-0 libgtk-3-0 && rm -rf /var/lib/apt/lists/*
|
||
COPY --from=builder /app/target/release/proxycast /usr/local/bin/
|
||
EXPOSE 8999
|
||
CMD ["proxycast"]
|
||
```
|
||
|
||
```bash
|
||
# 构建并运行
|
||
docker build -t proxycast .
|
||
docker run -d -p 8999:8999 -v ~/.proxycast:/root/.proxycast -v ~/.config/proxycast:/root/.config/proxycast proxycast
|
||
```
|
||
|
||
### 5. 无头模式下刷新 Token
|
||
|
||
```bash
|
||
#!/bin/bash
|
||
# refresh-kiro-token.sh - 自动刷新 Kiro Token
|
||
|
||
TOKEN_FILE="$HOME/.aws/sso/cache/kiro-auth-token.json"
|
||
REFRESH_TOKEN=$(jq -r '.refreshToken' "$TOKEN_FILE")
|
||
|
||
# 调用刷新 API
|
||
RESPONSE=$(curl -s -X POST "https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken" \
|
||
-H "Content-Type: application/json" \
|
||
-d "{\"refreshToken\": \"$REFRESH_TOKEN\"}")
|
||
|
||
# 检查是否成功
|
||
if echo "$RESPONSE" | jq -e '.accessToken' > /dev/null 2>&1; then
|
||
NEW_ACCESS_TOKEN=$(echo "$RESPONSE" | jq -r '.accessToken')
|
||
NEW_EXPIRES=$(date -d "+1 hour" --iso-8601=seconds)
|
||
|
||
# 更新 token 文件
|
||
jq --arg token "$NEW_ACCESS_TOKEN" --arg exp "$NEW_EXPIRES" \
|
||
'.accessToken = $token | .expiresAt = $exp' "$TOKEN_FILE" > "${TOKEN_FILE}.tmp"
|
||
mv "${TOKEN_FILE}.tmp" "$TOKEN_FILE"
|
||
|
||
echo "Token 刷新成功!"
|
||
else
|
||
echo "Token 刷新失败:$RESPONSE"
|
||
exit 1
|
||
fi
|
||
```
|
||
|
||
```bash
|
||
# 添加到 crontab,每 50 分钟刷新一次
|
||
crontab -e
|
||
# 添加:*/50 * * * * /path/to/refresh-kiro-token.sh >> /var/log/kiro-refresh.log 2>&1
|
||
```
|
||
|
||
### 6. 健康检查脚本
|
||
|
||
```bash
|
||
#!/bin/bash
|
||
# health-check.sh
|
||
|
||
API_URL="http://127.0.0.1:8999"
|
||
API_KEY="proxy_cast"
|
||
|
||
# 检查服务是否运行
|
||
if ! curl -s "$API_URL/v1/models" -H "Authorization: Bearer $API_KEY" > /dev/null; then
|
||
echo "ProxyCast 服务异常,正在重启..."
|
||
pkill -f proxycast
|
||
sleep 2
|
||
cd /mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main
|
||
./src-tauri/target/release/proxycast &
|
||
sleep 5
|
||
|
||
if curl -s "$API_URL/v1/models" -H "Authorization: Bearer $API_KEY" > /dev/null; then
|
||
echo "重启成功!"
|
||
else
|
||
echo "重启失败,请检查日志"
|
||
exit 1
|
||
fi
|
||
else
|
||
echo "服务正常运行"
|
||
fi
|
||
```
|
||
|
||
### 7. 远程访问配置
|
||
|
||
```bash
|
||
# 修改配置允许外部访问
|
||
sed -i 's/"host": "127.0.0.1"/"host": "0.0.0.0"/' ~/.config/proxycast/config.json
|
||
|
||
# 重启服务
|
||
pkill -f proxycast
|
||
./src-tauri/target/release/proxycast &
|
||
|
||
# 获取 IP
|
||
ip addr show | grep "inet " | grep -v 127.0.0.1
|
||
|
||
# 外部访问
|
||
# API Base URL: http://<你的IP>:8999/v1
|
||
# API Key: proxy_cast
|
||
```
|
||
|
||
---
|
||
|
||
## 十七、常用运维命令
|
||
|
||
```bash
|
||
# 启动
|
||
cd /mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main && ./src-tauri/target/release/proxycast &
|
||
|
||
# 停止
|
||
pkill -f proxycast
|
||
|
||
# 重启
|
||
pkill -f proxycast; sleep 2; cd /mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main && ./src-tauri/target/release/proxycast &
|
||
|
||
# 查看进程
|
||
ps aux | grep proxycast
|
||
|
||
# 查看端口
|
||
ss -tlnp | grep 8999
|
||
|
||
# 查看日志
|
||
tail -f ~/.proxycast/logs/*.log
|
||
|
||
# 查看凭证池
|
||
sqlite3 ~/.proxycast/proxycast.db "SELECT provider_type, name, is_healthy FROM provider_pool_credentials;"
|
||
|
||
# 测试 API
|
||
curl http://127.0.0.1:8999/v1/models -H "Authorization: Bearer proxy_cast" | jq
|
||
|
||
# 清空凭证池
|
||
sqlite3 ~/.proxycast/proxycast.db "DELETE FROM provider_pool_credentials;"
|
||
```
|
||
|
||
---
|
||
|
||
*文档更新时间:2025-12-20 16:42*
|
||
|
||
|
||
---
|
||
|
||
## 十八、断线问题修复
|
||
|
||
### 问题原因
|
||
|
||
Claude Code 使用自定义 API endpoint 时,仍会尝试向 Anthropic 发送遥测数据。遥测失败会导致程序异常退出。
|
||
|
||
### 解决方案
|
||
|
||
所有启动命令都需要添加环境变量禁用遥测:
|
||
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
|
||
```
|
||
|
||
### 完整单行启动命令(无遥测)
|
||
|
||
```bash
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-opus-4-5
|
||
```
|
||
|
||
---
|
||
|
||
*文档更新时间:2025-12-20 17:46*
|
||
|
||
|
||
---
|
||
|
||
## 十九、Codex (OpenAI) 凭证集成(待实现)
|
||
|
||
### 凭证来源
|
||
|
||
Codex 凭证来自 OpenAI 官方 CLI 工具,存储在 `~/.codex/auth.json`:
|
||
|
||
```json
|
||
{
|
||
"id_token": "eyJhbGciOiJSUzI1NiI...",
|
||
"access_token": "eyJhbGciOiJSUzI1NiI...",
|
||
"refresh_token": "rt_TK67iD7Pdgg...",
|
||
"account_id": "24e8f403-dbdb-42f9-8309-98951fc2862e",
|
||
"email": "xxx@gmail.com",
|
||
"type": "codex",
|
||
"expired": "2025-12-30T08:16:48..."
|
||
}
|
||
```
|
||
|
||
### 当前状态
|
||
|
||
- ✅ 凭证已添加到 ProxyCast 数据库
|
||
- ✅ `providers/codex.rs` 已实现 OAuth 刷新逻辑
|
||
- ❌ `server.rs` 中 `call_provider_openai` 函数尚未集成 Codex 调用
|
||
- ❌ WSL 编译环境链接器问题,无法编译新版本
|
||
|
||
### 代码修改位置
|
||
|
||
需要在 `src-tauri/src/server.rs` 的 `call_provider_openai` 函数中添加:
|
||
|
||
```rust
|
||
CredentialData::CodexOAuth { creds_file_path } => {
|
||
// 加载凭证、刷新 token、调用 OpenAI API
|
||
// 参考 KiroOAuth 的实现模式
|
||
}
|
||
```
|
||
|
||
### 支持的模型
|
||
|
||
Codex 凭证支持所有 OpenAI 模型:
|
||
- gpt-4o, gpt-4o-mini, gpt-4-turbo
|
||
- o1, o1-mini, o1-preview
|
||
- o3-mini
|
||
|
||
---
|
||
|
||
## 二十、Antigravity 凭证分析
|
||
|
||
### 凭证位置
|
||
|
||
Antigravity (Google AI IDE) 的凭证存储在 SQLite 数据库中:
|
||
|
||
```
|
||
Windows: %APPDATA%\Antigravity\User\globalStorage\state.vscdb
|
||
```
|
||
|
||
### 凭证结构
|
||
|
||
```sql
|
||
-- 查询凭证
|
||
SELECT value FROM ItemTable WHERE key = 'antigravityAuthStatus';
|
||
```
|
||
|
||
返回 JSON:
|
||
```json
|
||
{
|
||
"name": "git",
|
||
"apiKey": "ya29.a0Aa7pCA-1M5dtt...", // Google OAuth access_token
|
||
"email": "xxx@gmail.com",
|
||
"userStatusProtoBinaryBase64": "..." // 用户状态 protobuf
|
||
}
|
||
```
|
||
|
||
### 限制
|
||
|
||
- **只有 access_token**,没有 refresh_token
|
||
- access_token 有效期约 1 小时
|
||
- 无法自动刷新,需要通过 Antigravity 应用重新登录
|
||
- refresh_token 可能存储在 Windows Credential Manager(WSL 无法访问)
|
||
|
||
### 结论
|
||
|
||
Antigravity 凭证不适合集成到 ProxyCast,因为无法自动刷新。建议使用 Gemini API Key 或 Gemini CLI OAuth 代替。
|
||
|
||
---
|
||
|
||
## 二十一、WSL 编译问题
|
||
|
||
### 问题描述
|
||
|
||
在 WSL 环境下编译 Rust 项目时,链接器报错:
|
||
|
||
```
|
||
error: unknown option '-Wl,--no-undefined-version'
|
||
error: unknown option '-Wl,--as-needed'
|
||
```
|
||
|
||
### 原因
|
||
|
||
Rust 1.90+ 默认使用 `lld` 链接器,但 WSL 的 `lld` 版本不兼容。
|
||
|
||
### 尝试的解决方案
|
||
|
||
1. **使用 gold 链接器**(失败)
|
||
```bash
|
||
RUSTFLAGS="-C link-arg=-fuse-ld=gold" cargo build --release
|
||
```
|
||
|
||
2. **配置 cargo**(失败)
|
||
```toml
|
||
# ~/.cargo/config.toml
|
||
[target.x86_64-unknown-linux-gnu]
|
||
linker = "gcc"
|
||
rustflags = ["-C", "link-arg=-fuse-ld=gold"]
|
||
```
|
||
|
||
### 建议
|
||
|
||
- 在原生 Linux 或 Windows 上编译
|
||
- 使用 Docker 容器编译
|
||
- 使用预编译的 Release 版本
|
||
|
||
---
|
||
|
||
## 二十二、数据库路径差异
|
||
|
||
### WSL vs Windows
|
||
|
||
| 环境 | 数据库路径 |
|
||
|------|-----------|
|
||
| WSL/Linux | `~/.proxycast/proxycast.db` |
|
||
| Windows | `%APPDATA%\proxycast\proxycast.db` |
|
||
| macOS | `~/Library/Application Support/proxycast/proxycast.db` |
|
||
|
||
### 注意事项
|
||
|
||
- WSL 中运行的 ProxyCast 使用 Linux 路径
|
||
- Windows GUI 版本使用 Windows 路径
|
||
- 两者数据库不共享,需要分别配置凭证
|
||
|
||
---
|
||
|
||
## 二十三、本次配置总结
|
||
|
||
### 已配置的凭证池
|
||
|
||
| Provider | 名称 | 状态 |
|
||
|----------|------|------|
|
||
| kiro | Kiro OAuth | ✅ 正常 |
|
||
| qwen | Qwen OAuth | ✅ 正常 |
|
||
| gemini_api_key | Gemini Key 1-8 | ✅ 8个轮询 |
|
||
| openai | OpenRouter Free | ✅ 正常 |
|
||
| codex | Codex OAuth | ⚠️ 待实现 |
|
||
|
||
### 可用模型
|
||
|
||
**Claude (Kiro)**
|
||
- claude-opus-4-5, claude-sonnet-4-5, claude-3-7-sonnet-20250219
|
||
|
||
**Gemini (API Keys)**
|
||
- gemini-3-pro-preview, gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite
|
||
|
||
**Qwen**
|
||
- qwen3-coder-plus, qwen3-coder-flash
|
||
|
||
**OpenRouter Free**
|
||
- deepseek/deepseek-r1-0528:free
|
||
- meta-llama/llama-3.1-405b-instruct:free
|
||
- mistralai/devstral-2512:free
|
||
- 等 10+ 免费模型
|
||
|
||
### 快速启动
|
||
|
||
```bash
|
||
# 启动 ProxyCast
|
||
cd /mnt/d/.projects/kiro-account-manager-main.zip/proxycast-main && ./src-tauri/target/release/proxycast &
|
||
|
||
# 使用 Claude Code
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model claude-opus-4-5
|
||
```
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## 二十四、新增 OpenRouter 免费模型(2025-12-21 测试通过)
|
||
|
||
### 新增模型列表
|
||
|
||
| 模型 | 说明 | 状态 |
|
||
|------|------|------|
|
||
| `openai/gpt-oss-120b:free` | GPT 开源 120B | ✅ 已测试 |
|
||
| `openai/gpt-oss-20b:free` | GPT 开源 20B | ✅ 已测试 |
|
||
| `moonshotai/kimi-k2:free` | Kimi K2.5 | ✅ 已测试 |
|
||
|
||
### Claude Code 启动命令
|
||
|
||
```bash
|
||
# GPT-OSS 120B - 大参数开源模型
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model openai/gpt-oss-120b:free
|
||
|
||
# GPT-OSS 20B - 轻量开源模型
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model openai/gpt-oss-20b:free
|
||
|
||
# Kimi K2.5 - 月之暗面最新模型
|
||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ANTHROPIC_BASE_URL=http://127.0.0.1:8999 ANTHROPIC_API_KEY=proxy_cast claude --dangerously-skip-permissions --model moonshotai/kimi-k2:free
|
||
```
|
||
|
||
### API 测试命令
|
||
|
||
```bash
|
||
# 测试 GPT-OSS 120B
|
||
curl -s http://127.0.0.1:8999/v1/chat/completions \
|
||
-H "Content-Type: application/json" \
|
||
-H "Authorization: Bearer proxy_cast" \
|
||
-d '{"model":"openai/gpt-oss-120b:free","messages":[{"role":"user","content":"Hi"}],"max_tokens":10}'
|
||
|
||
# 测试 Kimi K2.5
|
||
curl -s http://127.0.0.1:8999/v1/chat/completions \
|
||
-H "Content-Type: application/json" \
|
||
-H "Authorization: Bearer proxy_cast" \
|
||
-d '{"model":"moonshotai/kimi-k2:free","messages":[{"role":"user","content":"Hi"}],"max_tokens":10}'
|
||
```
|
||
|
||
### 更新后的 OpenRouter 免费模型完整列表
|
||
|
||
| 模型 | 说明 | 推荐场景 |
|
||
|------|------|----------|
|
||
| `deepseek/deepseek-r1-0528:free` | 推理最强 | 复杂推理 |
|
||
| `meta-llama/llama-3.1-405b-instruct:free` | 综合最强 | 通用任务 |
|
||
| `mistralai/devstral-2512:free` | 代码专精 123B | 编程 |
|
||
| `openai/gpt-oss-120b:free` | GPT 开源 120B | 通用 |
|
||
| `openai/gpt-oss-20b:free` | GPT 开源 20B | 快速响应 |
|
||
| `moonshotai/kimi-k2:free` | Kimi K2.5 | 中文任务 |
|
||
| `google/gemini-2.0-flash-exp:free` | Gemini 2.0 | 翻译 |
|
||
| `meta-llama/llama-3.3-70b-instruct:free` | Llama 3.3 | 速度快 |
|
||
| `nousresearch/hermes-3-llama-3.1-405b:free` | Hermes 3 | 指令遵循 |
|
||
| `z-ai/glm-4.5-air:free` | GLM 4.5 | 中文原生 |
|
||
| `alibaba/tongyi-deepresearch-30b-a3b:free` | 通义深研 | 中文研究 |
|
||
| `kwaipilot/kat-coder-pro:free` | KAT-Coder | 代码 Agent |
|
||
| `qwen/qwen-2.5-vl-7b-instruct:free` | Qwen VL | 视觉理解 |
|
||
| `allenai/olmo-3.1-32b-think:free` | Olmo 3.1 | 深度推理 |
|
||
|
||
---
|
||
|
||
*文档更新时间:2025-12-21 17:07*
|