mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-04-21 03:40:31 +08:00
Reorganize docs/user-manual/ from flat structure to language subdirectories (zh/, en/, ja/) with shared assets/. Move existing Chinese docs into zh/, fix image paths, add multilingual navigation README, and translate all 23 markdown files (~4500 lines each) to English and Japanese.
6.1 KiB
6.1 KiB
5.3 深度链接协议
功能说明
CC Switch 支持 ccswitch:// 深度链接协议,可以通过链接一键导入配置。
使用场景:
- 团队共享配置
- 教程中的一键配置
- 跨设备快速同步
在线生成工具
CC Switch 提供在线深度链接生成工具:
访问地址:https://farion1231.github.io/cc-switch/deplink.html
使用方法
- 打开上述网页
- 选择导入类型(供应商/MCP/Prompt)
- 填写配置信息
- 点击「生成链接」
- 复制生成的深度链接
- 分享给他人或在其他设备使用
协议格式
V1 协议
使用 URL 参数格式,易读易生成:
ccswitch://v1/import?resource={type}&app={app}&name={name}&...
通用参数:
| 参数 | 必填 | 说明 |
|---|---|---|
resource |
是 | 资源类型:provider / mcp / prompt / skill |
app |
是 | 应用类型:claude / codex / gemini / opencode / openclaw |
name |
是 | 名称 |
供应商参数(resource=provider):
| 参数 | 必填 | 说明 |
|---|---|---|
endpoint |
否 | API 端点地址(支持逗号分隔多个 URL) |
apiKey |
否 | API 密钥 |
homepage |
否 | 供应商官网 |
model |
否 | 默认模型 |
haikuModel |
否 | Haiku 模型(仅 Claude) |
sonnetModel |
否 | Sonnet 模型(仅 Claude) |
opusModel |
否 | Opus 模型(仅 Claude) |
notes |
否 | 备注 |
icon |
否 | 图标 |
config |
否 | Base64 编码的配置内容 |
configFormat |
否 | 配置格式:json / toml |
configUrl |
否 | 远程配置 URL |
enabled |
否 | 是否启用(布尔值) |
usageScript |
否 | 用量查询脚本 |
usageEnabled |
否 | 是否启用用量查询(默认 true) |
usageApiKey |
否 | 用量查询专用 API Key |
usageBaseUrl |
否 | 用量查询专用地址 |
usageAccessToken |
否 | 用量查询访问令牌 |
usageUserId |
否 | 用量查询用户 ID |
usageAutoInterval |
否 | 自动查询间隔(分钟) |
提示词参数(resource=prompt):
| 参数 | 必填 | 说明 |
|---|---|---|
content |
是 | 提示词内容 |
description |
否 | 描述 |
enabled |
否 | 是否启用(布尔值) |
MCP 参数(resource=mcp):
| 参数 | 必填 | 说明 |
|---|---|---|
apps |
是 | 应用列表(逗号分隔,如 claude,codex,gemini,opencode) |
config |
是 | MCP 服务器配置(JSON 格式) |
enabled |
否 | 是否启用(布尔值) |
Skill 参数(resource=skill):
| 参数 | 必填 | 说明 |
|---|---|---|
repo |
是 | 仓库(格式:owner/name) |
directory |
否 | 目录路径 |
branch |
否 | Git 分支 |
示例:
ccswitch://v1/import?resource=provider&app=claude&name=My%20Provider&endpoint=https%3A%2F%2Fapi.example.com&apiKey=sk-xxx
导入类型示例
导入供应商
ccswitch://v1/import?resource=provider&app=claude&name=My%20Provider&endpoint=https%3A%2F%2Fapi.example.com&apiKey=sk-xxx
导入 MCP 服务器
ccswitch://v1/import?resource=mcp&apps=claude,codex&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-fetch%22%5D%7D&name=mcp-fetch
导入 Prompt 预设
ccswitch://v1/import?resource=prompt&app=claude&name=%E4%BB%A3%E7%A0%81%E5%AE%A1%E6%9F%A5&content=%23%20%E8%A7%92%E8%89%B2%0A%E4%BD%A0%E6%98%AF%E4%B8%80%E4%B8%AA%E4%B8%93%E4%B8%9A%E7%9A%84%E4%BB%A3%E7%A0%81%E5%AE%A1%E6%9F%A5%E4%B8%93%E5%AE%B6
导入 Skill
ccswitch://v1/import?resource=skill&name=my-skill&repo=owner/repo&directory=skills/my-skill&branch=main
生成深度链接
手动生成
- 准备参数
- 按 V1 协议格式拼接 URL
- URL 编码特殊字符
示例:
const params = new URLSearchParams({
resource: 'provider',
app: 'claude',
name: 'My Provider',
endpoint: 'https://api.example.com',
apiKey: 'sk-xxx'
});
const url = `ccswitch://v1/import?${params.toString()}`;
在线工具
使用 CC Switch 官方提供的在线深度链接生成工具更方便。
使用深度链接
点击链接
在浏览器或其他应用中点击深度链接:
- 系统会询问是否打开 CC Switch
- 确认后 CC Switch 打开
- 显示导入确认对话框
- 确认导入
导入确认
导入前会显示确认对话框,包含:
- 导入类型
- 配置预览
- 确认/取消按钮
安全提示:只导入来自可信来源的配置。
协议注册
自动注册
CC Switch 安装时会自动注册 ccswitch:// 协议。
手动注册
如果协议未正确注册:
macOS: 重新安装应用,或运行:
/usr/bin/open -a "CC Switch" --args --register-protocol
Windows: 重新安装应用,或检查注册表:
HKEY_CLASSES_ROOT\ccswitch
Linux:
检查 .desktop 文件中的 MimeType 配置。
安全考虑
敏感信息
深度链接中可能包含敏感信息(如 API Key):
- 不要在公开场合分享包含 API Key 的链接
- 分享前移除或替换敏感信息
- 使用安全渠道传输链接
验证来源
导入前 CC Switch 会:
- 验证数据格式
- 显示配置预览
- 要求用户确认
恶意链接防护
CC Switch 会检查:
- 数据格式是否合法
- 必填字段是否完整
- 配置值是否在合理范围
示例链接
示例:导入 Claude 供应商
ccswitch://v1/import?resource=provider&app=claude&name=Test%20Provider&apiKey=sk-xxx&endpoint=https%3A%2F%2Fapi.example.com
示例:导入 MCP 服务器
ccswitch://v1/import?resource=mcp&name=mcp-fetch&apps=claude,codex,gemini&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-fetch%22%5D%7D
故障排除
链接无法打开
检查:
- CC Switch 是否已安装
- 协议是否正确注册
- 链接格式是否正确
导入失败
可能原因:
- Base64 编码错误
- JSON 格式错误
- 缺少必填字段
解决方法:
- 检查原始 JSON 格式
- 重新进行 Base64 编码
- 确保所有必填字段都存在