This commit is contained in:
musistudio
2026-01-01 21:17:41 +08:00
parent 5ac38d3d0f
commit e7608ada4a
76 changed files with 8652 additions and 1187 deletions

View File

@@ -0,0 +1,127 @@
---
title: ccr model
sidebar_position: 2
---
# ccr model
交互式模型选择和配置。
## 用法
```bash
ccr model [命令]
```
## 命令
### 选择模型
交互式选择模型:
```bash
ccr model
```
这将显示一个包含可用提供商和模型的交互式菜单。
### 设置默认模型
直接设置默认模型:
```bash
ccr model set <provider>,<model>
```
示例:
```bash
ccr model set deepseek,deepseek-chat
```
### 列出模型
列出所有配置的模型:
```bash
ccr model list
```
### 添加模型
添加新模型到配置:
```bash
ccr model add <provider>,<model>
```
示例:
```bash
ccr model add groq,llama-3.3-70b-versatile
```
### 删除模型
从配置中删除模型:
```bash
ccr model remove <provider>,<model>
```
## 示例
### 交互式选择
```bash
$ ccr model
? 选择一个提供商: deepseek
? 选择一个模型: deepseek-chat
默认模型设置为: deepseek,deepseek-chat
```
### 直接配置
```bash
ccr model set deepseek,deepseek-chat
```
### 查看当前配置
```bash
ccr model list
```
输出:
```
已配置的模型:
deepseek,deepseek-chat (默认)
groq,llama-3.3-70b-versatile
gemini,gemini-2.5-pro
```
## 交互式功能
`ccr model` 命令提供以下功能:
1. **查看当前配置**:查看所有已配置的模型和路由器设置
2. **切换模型**:快速更改每个路由器类型使用的模型
3. **添加新模型**:向现有提供商添加模型
4. **创建新提供商**:设置完整的提供商配置,包括:
- 提供商名称和 API 端点
- API 密钥
- 可用模型
- 转换器配置,支持:
- 多个转换器openrouter、deepseek、gemini 等)
- 转换器选项(例如,带自定义限制的 maxtoken
- 提供商特定路由例如OpenRouter 提供商偏好)
CLI 工具会验证所有输入并提供有用的提示来引导您完成配置过程,使管理复杂设置变得容易,无需手动编辑 JSON 文件。
## 相关命令
- [ccr start](/zh/docs/cli/start) - 启动服务器
- [ccr config](/zh/docs/cli/other-commands#ccr-config) - 编辑配置

View File

@@ -0,0 +1,84 @@
---
title: 其他命令
sidebar_position: 4
---
# 其他命令
管理 Claude Code Router 的其他 CLI 命令。
## ccr stop
停止运行中的服务器。
```bash
ccr stop
```
## ccr restart
重启服务器。
```bash
ccr restart
```
## ccr code
通过路由器执行 claude 命令。
```bash
ccr code [参数...]
```
## ccr ui
在浏览器中打开 Web UI。
```bash
ccr ui
```
## ccr activate
输出用于与外部工具集成的 shell 环境变量。
```bash
ccr activate
```
## 全局选项
这些选项可用于任何命令:
| 选项 | 说明 |
|------|------|
| `-h, --help` | 显示帮助 |
| `-v, --version` | 显示版本号 |
| `--config <路径>` | 配置文件路径 |
| `--verbose` | 启用详细输出 |
## 示例
### 停止服务器
```bash
ccr stop
```
### 使用自定义配置重启
```bash
ccr restart --config /path/to/config.json
```
### 打开 Web UI
```bash
ccr ui
```
## 相关文档
- [入门](/zh/docs/intro) - Claude Code Router 简介
- [配置](/zh/docs/config/basic) - 配置指南

View File

@@ -0,0 +1,254 @@
---
sidebar_position: 5
---
# ccr preset
管理预设Presets——可共享和重用的配置模板。
## 概述
预设功能让您可以:
- 将当前配置保存为可重用的模板
- 与他人分享配置
- 安装社区提供的预配置方案
- 在不同配置之间轻松切换
## 命令
### export
将当前配置导出为预设。
```bash
ccr preset export <名称> [选项]
```
**选项:**
- `--output <路径>` - 自定义输出目录路径
- `--description <文本>` - 预设描述
- `--author <名称>` - 预设作者
- `--tags <标签>` - 逗号分隔的关键字
- `--include-sensitive` - 包含 API 密钥等敏感数据(不推荐)
**示例:**
```bash
ccr preset export my-config --description "我的生产环境配置" --author "您的名字"
```
**执行过程:**
1. 读取 `~/.claude-code-router/config.json` 中的当前配置
2. 提示输入描述、作者和关键字(如未通过命令行提供)
3. 自动清理敏感字段API 密钥变为占位符)
4.`~/.claude-code-router/presets/<名称>/` 创建预设目录
5. 生成包含配置和元数据的 `manifest.json`
### install
从本地目录安装预设。
```bash
ccr preset install <来源>
```
**来源:**
- 本地目录路径:`/path/to/preset-directory`
- 预设名称(用于重新配置已安装的预设):`preset-name`
**示例:**
```bash
# 从目录安装
ccr preset install ./my-preset
# 重新配置已安装的预设
ccr preset install my-preset
```
**执行过程:**
1. 从预设目录读取 `manifest.json`
2. 验证预设结构
3. 如果预设包含 `schema`提示输入必需的值API 密钥等)
4. 将预设复制到 `~/.claude-code-router/presets/<名称>/`
5.`manifest.json` 中保存用户输入
**注意:** 目前不支持从 URL 安装。请先下载预设目录。
### list
列出所有已安装的预设。
```bash
ccr preset list
```
**示例输出:**
```
Available presets:
• my-config (v1.0.0)
My production setup
by Your Name
• openai-setup
Basic OpenAI configuration
```
### info
显示预设的详细信息。
```bash
ccr preset info <名称>
```
**显示内容:**
- 版本、描述、作者、关键字
- 配置摘要Providers、Router 规则)
- 必需输入(如果有)
**示例:**
```bash
ccr preset info my-config
```
### delete / rm / remove
删除已安装的预设。
```bash
ccr preset delete <名称>
ccr preset rm <名称>
ccr preset remove <名称>
```
**示例:**
```bash
ccr preset delete my-config
```
## 预设结构
预设是一个包含 `manifest.json` 文件的目录:
```json
{
"name": "my-preset",
"version": "1.0.0",
"description": "我的配置",
"author": "作者姓名",
"keywords": ["openai", "production"],
"Providers": [
{
"name": "openai",
"api_base_url": "https://api.openai.com/v1",
"api_key": "{{apiKey}}",
"models": ["gpt-4", "gpt-3.5-turbo"]
}
],
"Router": {
"default": "openai:gpt-4"
},
"schema": [
{
"id": "apiKey",
"type": "password",
"label": "OpenAI API 密钥",
"prompt": "请输入您的 OpenAI API 密钥"
}
]
}
```
### Schema 系统
`schema` 字段定义用户在安装时必须提供的输入:
**字段类型:**
- `password` - 隐藏输入(用于 API 密钥)
- `input` - 文本输入
- `select` - 单选下拉框
- `multiselect` - 多选下拉框
- `confirm` - 是/否确认
- `editor` - 多行文本编辑器
- `number` - 数字输入
**动态选项:**
```json
{
"id": "provider",
"type": "select",
"label": "选择提供商",
"options": {
"type": "providers"
}
}
```
**条件显示:**
```json
{
"id": "model",
"type": "select",
"label": "选择模型",
"when": {
"field": "provider",
"operator": "exists"
},
"options": {
"type": "models",
"providerField": "#{selectedProvider}"
}
}
```
## 分享预设
分享预设的步骤:
1. **导出配置:**
```bash
ccr preset export my-preset
```
2. **分享目录:**
```bash
~/.claude-code-router/presets/my-preset/
```
3. **分发方式:**
- 上传到 GitHub 仓库
- 创建 GitHub Gist
- 打包为 zip 文件分享
- 发布到 npm未来功能
4. **用户安装:**
```bash
ccr preset install /path/to/my-preset
```
## 安全性
### 自动清理
默认情况下,`export` 会清理敏感字段:
- 名为 `api_key`、`apikey`、`password`、`secret` 的字段会被替换为 `{{字段名}}` 占位符
- 这些占位符会成为 schema 中的必需输入
- 用户在安装时会被提示提供自己的值
### 包含敏感数据
要包含实际值(不推荐):
```bash
ccr preset export my-preset --include-sensitive
```
**警告:** 永远不要分享包含敏感数据的预设!
## 相关文档
- [配置指南](/zh/docs/cli/config/basic) - 基础配置
- [项目级配置](/zh/docs/cli/config/project-level) - 项目特定设置
- [服务器:预设](/zh/docs/server/advanced/presets) - 高级预设主题

View File

@@ -0,0 +1,82 @@
---
title: ccr start
sidebar_position: 1
---
# ccr start
启动 Claude Code Router 服务器。
## 用法
```bash
ccr start [选项]
```
## 选项
| 选项 | 别名 | 说明 |
|------|------|------|
| `--port <number>` | `-p` | 监听端口号默认3456 |
| `--config <path>` | `-c` | 配置文件路径 |
| `--daemon` | `-d` | 作为守护进程运行(后台进程) |
| `--log-level <level>` | `-l` | 日志级别fatal/error/warn/info/debug/trace |
## 示例
### 使用默认设置启动
```bash
ccr start
```
### 在自定义端口启动
```bash
ccr start --port 3000
```
### 使用自定义配置启动
```bash
ccr start --config /path/to/config.json
```
### 作为守护进程启动
```bash
ccr start --daemon
```
### 启用调试日志
```bash
ccr start --log-level debug
```
## 环境变量
您也可以使用环境变量配置服务器:
| 变量 | 说明 |
|------|------|
| `PORT` | 监听端口号 |
| `CONFIG_PATH` | 配置文件路径 |
| `LOG_LEVEL` | 日志级别 |
| `CUSTOM_ROUTER_PATH` | 自定义路由器函数路径 |
| `HOST` | 绑定主机地址默认0.0.0.0 |
## 输出
启动成功后,您将看到:
```
Claude Code Router is running on http://localhost:3456
API endpoint: http://localhost:3456/v1
```
## 相关命令
- [ccr stop](/zh/docs/cli/other-commands#ccr-stop) - 停止服务器
- [ccr restart](/zh/docs/cli/other-commands#ccr-restart) - 重启服务器
- [ccr status](/zh/docs/cli/other-commands#ccr-status) - 检查服务器状态

View File

@@ -0,0 +1,63 @@
---
title: ccr status
sidebar_position: 3
---
# ccr status
显示 Claude Code Router 服务器的当前状态。
## 用法
```bash
ccr status
```
## 输出
### 运行中的服务器
当服务器正在运行时:
```
Claude Code Router 状态: 运行中
版本: 2.0.0
PID: 12345
端口: 3456
运行时间: 2小时34分钟
配置: /home/user/.claude-code-router/config.json
```
### 已停止的服务器
当服务器未运行时:
```
Claude Code Router 状态: 已停止
```
## 退出代码
| 代码 | 说明 |
|------|------|
| 0 | 服务器正在运行 |
| 1 | 服务器已停止 |
| 2 | 检查状态时出错 |
## 示例
```bash
$ ccr status
Claude Code Router 状态: 运行中
版本: 2.0.0
PID: 12345
端口: 3456
运行时间: 2小时34分钟
```
## 相关命令
- [ccr start](/zh/docs/cli/start) - 启动服务器
- [ccr stop](/zh/docs/cli/other-commands#ccr-stop) - 停止服务器
- [ccr restart](/zh/docs/cli/other-commands#ccr-restart) - 重启服务器

View File

@@ -0,0 +1,401 @@
---
title: ccr statusline
sidebar_position: 5
---
# ccr statusline
显示可自定义的状态栏,实时展示 Claude Code 会话信息包括工作区、Git 分支、模型、token 使用情况等。
## 概述
`ccr statusline` 命令从 stdin 读取 JSON 数据,并在终端中渲染格式精美的状态栏。它设计用于与 Claude Code 的 hook 系统集成,以显示实时会话信息。
## 使用方法
### 基本用法
```bash
ccr statusline
```
该命令期望通过 stdin 接收 JSON 数据,通常通过管道从 Claude Code hook 传递:
```bash
echo '{"hook_event_name":"...","session_id":"...","..."}' | ccr statusline
```
### Hook 集成
在您的 Claude Code 设置中配置:
```json
{
"hooks": {
"postResponse": {
"command": "ccr statusline",
"input": "json"
}
}
}
```
## 可用主题
### 默认主题
简洁优雅的主题,使用 Nerd Font 图标和彩色文本:
```
󰉋 my-project  main 󰚩 claude-3-5-sonnet-20241022 ↑ 12.3k ↓ 5.2k
```
### Powerline 主题
vim-powerline 风格,带背景色和箭头分隔符:
```
󰉋 my-project  main 󰚩 claude-3-5-sonnet-20241022 ↑ 12.3k ↓ 5.2k
```
通过在配置中设置 `currentStyle: "powerline"` 激活。
### 简单主题
回退主题,不带图标,适用于不支持 Nerd Font 的终端:
```
my-project main claude-3-5-sonnet-20241022 ↑ 12.3k ↓ 5.2k
```
`USE_SIMPLE_ICONS=true` 或在不支持的终端上自动使用。
## 可用模块
状态栏模块显示不同类型的信息:
| 模块 | 说明 | 变量 |
|------|------|------|
| **workDir** | 当前工作目录名称 | `{{workDirName}}` |
| **gitBranch** | 当前 Git 分支 | `{{gitBranch}}` |
| **model** | 使用的模型 | `{{model}}` |
| **usage** | Token 使用情况(输入/输出) | `{{inputTokens}}`, `{{outputTokens}}` |
| **context** | 上下文窗口使用情况 | `{{contextPercent}}`, `{{contextWindowSize}}` |
| **speed** | Token 处理速度 | `{{tokenSpeed}}`, `{{isStreaming}}` |
| **cost** | API 成本 | `{{cost}}` |
| **duration** | 会话持续时间 | `{{duration}}` |
| **lines** | 代码变更 | `{{linesAdded}}`, `{{linesRemoved}}` |
| **script** | 自定义脚本输出 | 动态 |
## 配置
`~/.claude-code-router/config.json` 中配置 statusline
### 默认样式示例
```json
{
"StatusLine": {
"currentStyle": "default",
"default": {
"modules": [
{
"type": "workDir",
"icon": "󰉋",
"text": "{{workDirName}}",
"color": "bright_blue"
},
{
"type": "gitBranch",
"icon": "",
"text": "{{gitBranch}}",
"color": "bright_magenta"
},
{
"type": "model",
"icon": "󰚩",
"text": "{{model}}",
"color": "bright_cyan"
},
{
"type": "usage",
"icon": "↑",
"text": "{{inputTokens}}",
"color": "bright_green"
},
{
"type": "usage",
"icon": "↓",
"text": "{{outputTokens}}",
"color": "bright_yellow"
}
]
}
}
}
```
### Powerline 样式示例
```json
{
"StatusLine": {
"currentStyle": "powerline",
"powerline": {
"modules": [
{
"type": "workDir",
"icon": "󰉋",
"text": "{{workDirName}}",
"color": "white",
"background": "bg_bright_blue"
},
{
"type": "gitBranch",
"icon": "",
"text": "{{gitBranch}}",
"color": "white",
"background": "bg_bright_magenta"
}
]
}
}
}
```
### 完整功能示例
```json
{
"StatusLine": {
"currentStyle": "default",
"default": {
"modules": [
{
"type": "workDir",
"icon": "󰉋",
"text": "{{workDirName}}",
"color": "bright_blue"
},
{
"type": "gitBranch",
"icon": "",
"text": "{{gitBranch}}",
"color": "bright_magenta"
},
{
"type": "model",
"icon": "󰚩",
"text": "{{model}}",
"color": "bright_cyan"
},
{
"type": "context",
"icon": "🪟",
"text": "{{contextPercent}}% / {{contextWindowSize}}",
"color": "bright_green"
},
{
"type": "speed",
"icon": "⚡",
"text": "{{tokenSpeed}} t/s {{isStreaming}}",
"color": "bright_yellow"
},
{
"type": "cost",
"icon": "💰",
"text": "{{cost}}",
"color": "bright_magenta"
},
{
"type": "duration",
"icon": "⏱️",
"text": "{{duration}}",
"color": "bright_white"
},
{
"type": "lines",
"icon": "📝",
"text": "+{{linesAdded}}/-{{linesRemoved}}",
"color": "bright_cyan"
}
]
}
}
}
```
## 自定义脚本
您可以通过执行脚本创建自定义模块:
```json
{
"type": "script",
"icon": "🔧",
"scriptPath": "/path/to/script.js",
"options": {
"customOption": "value"
}
}
```
脚本格式CommonJS
```javascript
// my-status-module.js
module.exports = function(variables, options) {
// 访问变量如 model、gitBranch 等
// 从配置中访问选项
return `Custom: ${variables.model}`;
};
// 或异步
module.exports = async function(variables, options) {
const data = await fetchSomeData();
return data;
};
```
## 颜色选项
### 标准颜色
- `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white`
- `bright_black`, `bright_red`, `bright_green`, `bright_yellow`, `bright_blue`, `bright_magenta`, `bright_cyan`, `bright_white`
### 背景颜色
添加前缀 `bg_``bg_blue`, `bg_bright_red` 等。
### 十六进制颜色
使用 24 位 TrueColor 和十六进制代码:
```json
{
"color": "#FF5733",
"background": "bg_#1E90FF"
}
```
## 可用变量
所有变量都可以在模块文本中使用 `{{variableName}}` 访问:
| 变量 | 说明 | 示例 |
|------|------|------|
| `{{workDirName}}` | 当前目录名称 | `my-project` |
| `{{gitBranch}}` | Git 分支名称 | `main` |
| `{{model}}` | 模型名称 | `claude-3-5-sonnet-20241022` |
| `{{inputTokens}}` | 输入 tokens格式化 | `12.3k` |
| `{{outputTokens}}` | 输出 tokens格式化 | `5.2k` |
| `{{tokenSpeed}}` | 每秒 tokens 数 | `45` |
| `{{isStreaming}}` | 流式传输状态 | `streaming` 或空 |
| `{{contextPercent}}` | 上下文使用百分比 | `45` |
| `{{contextWindowSize}}` | 总上下文窗口 | `200k` |
| `{{cost}}` | 总成本 | `$0.15` |
| `{{duration}}` | 会话持续时间 | `2m34s` |
| `{{linesAdded}}` | 添加的行数 | `150` |
| `{{linesRemoved}}` | 删除的行数 | `25` |
| `{{sessionId}}` | 会话 ID前 8 个字符) | `a1b2c3d4` |
## 环境变量
使用环境变量控制行为:
| 变量 | 值 | 说明 |
|------|------|------|
| `USE_SIMPLE_ICONS` | `true`/`false` | 强制使用不带图标的简单主题 |
| `NERD_FONT` | 任意值 | 自动检测 Nerd Font 支持 |
## 示例
### 极简状态栏
```json
{
"StatusLine": {
"default": {
"modules": [
{
"type": "model",
"text": "{{model}}"
},
{
"type": "usage",
"text": "↑{{inputTokens}} ↓{{outputTokens}}"
}
]
}
}
}
```
输出:`claude-3-5-sonnet-20241022 ↑12.3k ↓5.2k`
### 开发者生产力重点
```json
{
"StatusLine": {
"default": {
"modules": [
{
"type": "gitBranch",
"icon": "",
"text": "{{gitBranch}}",
"color": "bright_magenta"
},
{
"type": "lines",
"icon": "📝",
"text": "+{{linesAdded}}/-{{linesRemoved}}",
"color": "bright_cyan"
},
{
"type": "duration",
"icon": "⏱️",
"text": "{{duration}}",
"color": "bright_white"
}
]
}
}
}
```
输出:` feature/auth 📝 +150/-25 ⏱️ 2m34s`
## Preset 集成
Statusline 主题可以包含在 presets 中。当您安装带有 statusline 配置的 preset 时,激活该 preset 时会自动应用。
查看 [Presets](/docs/server/advanced/presets) 了解更多信息。
## 故障排除
### 图标不显示
在环境中设置 `USE_SIMPLE_ICONS=true`
```bash
export USE_SIMPLE_ICONS=true
```
### 颜色不工作
确保您的终端支持 TrueColor24 位颜色):
```bash
export COLORTERM=truecolor
```
### Git 分支不显示
确保您在 Git 仓库中并安装了 `git` 命令。
## 相关命令
- [ccr status](/docs/cli/commands/status) - 检查服务状态
- [ccr preset](/docs/cli/commands/preset) - 管理带 statusline 主题的 presets