Skip to content

randolph555/ccs-sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

ccs-sync

ccs-sync 是一个独立的 Node CLI,用来同步 CC Switch 的核心 provider 配置。

它做两件事:

  • 本地导出/导入 ClaudeCodex 的核心配置
  • 把同一份 JSON 发布到 Cloudflare Worker + KV,并通过一个 URL 拉取

范围

  • 只处理 Claude / Codex
  • 只处理核心字段:base_urlapi_keymodel
  • 导入时只插入缺失项,不更新已有项
  • 不切换当前 provider
  • 云端上传是整份 JSON 全量覆盖

环境要求

  • Node.js >= 22
  • 本机可用 sqlite3
  • 本地存在 ~/.cc-switch/cc-switch.db

安装

npm link
ccpsync help

部署清单

默认部署到 workers.dev 时,用户需要:

  • Cloudflare 账号
  • account_id
  • 一个有这些权限的 API Token
    • Workers Scripts: Edit
    • Workers Scripts: Read
    • Workers KV Storage: Edit
    • Workers KV Storage: Read
  • 一个 workers.dev 子域名

如果用户有自己的域名,还可以额外提供:

  • custom-domain
  • 可选 zone-name

命令

本地导出

ccpsync export --out ./provider-core.json

本地导入

ccpsync import --file ./provider-core.json

首次发布到 Cloudflare

ccpsync cloud-init \
  --account-id <cf_account_id> \
  --api-token <cf_api_token> \
  --workers-subdomain <your-workers-subdomain>

如果要绑定自己的域名:

ccpsync cloud-init \
  --account-id <cf_account_id> \
  --api-token <cf_api_token> \
  --workers-subdomain <your-workers-subdomain> \
  --custom-domain sync.example.com

cloud-init 会自动:

  • 创建或复用 workers.dev 子域
  • 创建或复用 KV namespace
  • 部署 Worker
  • 导出本地 provider JSON
  • 上传到云端
  • 生成访问密钥
  • 保存本地 profile

输出里最关键的是:

  • url
  • access_key
  • viewer_url

页面访问时会先要求用户手动输入 access_key。密钥不会拼进 URL。

后续覆盖上传

如果本机已经做过 cloud-init

ccpsync cloud-push

或者显式指定:

ccpsync cloud-push --url <worker_url> --access-key <access_key>

从云端导入

ccpsync cloud-import --url <worker_url> --access-key <access_key>

JSON 结构

导出的格式不是 SQL 备份,而是一份稳定的 provider-core JSON:

{
  "schema_version": 1,
  "format": "provider-core",
  "generated_at": "2026-03-27T00:00:00.000Z",
  "source": {
    "tool": "ccswitch-provider-sync",
    "db_path": "/Users/you/.cc-switch/cc-switch.db"
  },
  "providers": [
    {
      "app_type": "codex",
      "name": "example",
      "base_url": "https://example.com/v1",
      "api_key": "sk-xxx",
      "model": "gpt-5.3-codex",
      "website_url": "",
      "notes": "",
      "endpoint_urls": [
        "https://example.com/v1"
      ],
      "vendor": {
        "ccswitch": {
          "settings_config": {}
        }
      }
    }
  ]
}

说明:

  • base_url / api_key / model 是跨工具可理解的核心层
  • vendor.ccswitch.settings_config 用来尽量保留 CC Switch 原始结构

注意

  • workers-subdomain 指的是账号级 workers.dev 子域,不是自定义域
  • custom-domain 是可选项,只在用户自己的域名已接入 Cloudflare 时使用
  • 远端页面和 API 共用同一个访问密钥

About

ccs-cloude-sync 从云端同步你的ccs的配置

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages