ccsctx
一个面向 cc-switch 的轻量命令行切换工具。
目标是用最短命令在终端里切换 Claude/Codex/Gemini 的 provider,并支持可选 fzf 交互选择。
功能
- 支持应用:
claude、codex、gemini - 支持通过 provider
ID或展示名切换 - 无参数时列出 provider,并用
*标记当前项 - 支持别名命令:
claudectx、codexctx、geminictx - 支持
CCSCTX_FZF=1启用fzf选择模式 - 切换后同步:
providers.is_current(SQLite)~/.cc-switch/settings.json的currentProvider*- 对应 app 的 live 配置文件
当前状态
claude:支持- 优先读 SQLite(
~/.cc-switch/cc-switch.db) - 若 DB 不存在,回退到
~/.cc-switch/config.json
- 优先读 SQLite(
codex:支持(依赖 SQLite)gemini:支持(依赖 SQLite)opencode:当前不支持(--app opencode会报错)
安装
方式 1:本地构建
可执行文件在:
target/release/ccsctxtarget/release/claudectxtarget/release/codexctxtarget/release/geminictx
方式 2:开发调试运行
用法
参数:
provider:可选。为空时进入“列出 provider”模式。--app <app>:claude | codex | gemini。--verbose:切换时输出详细写入摘要(写了哪些文件、跳过了哪些字段、warning)。
常见示例
列出 Claude provider(默认 app):
切换 Claude:
# 或
列出 Codex:
# 或
切换 Gemini:
# 或
查看详细切换信息:
fzf 模式
开启条件:
- 环境变量
CCSCTX_FZF=1 - 本机已安装
fzf
示例:
CCSCTX_FZF=1
说明:
- 开启后,无
provider参数时会进入fzf选择。 - 如果开启了
CCSCTX_FZF=1但系统找不到fzf,会自动回退到普通列表模式并打印 warning。
live 配置写入路径
默认路径:
- Claude:
~/.claude/settings.json - Codex:
~/.codex/auth.json~/.codex/config.toml
- Gemini:
~/.gemini/settings.json~/.gemini/.env
环境变量
通用
CCSCTX_DB:覆盖 cc-switch SQLite 路径(默认~/.cc-switch/cc-switch.db)CCSCTX_SETTINGS:覆盖 cc-switchsettings.json路径CCSCTX_FZF=1:启用fzf模式
Claude
CCSCTX_CONFIG:覆盖config.json路径(仅 DB 不存在时使用)CCSCTX_CLAUDE_LIVE:覆盖 Claude live 配置路径
Codex
CCSCTX_CODEX_DIR:覆盖 Codex 目录(默认~/.codex)CCSCTX_CODEX_AUTH:覆盖 auth 文件路径CCSCTX_CODEX_CONFIG:覆盖 config 文件路径
Gemini
CCSCTX_GEMINI_DIR:覆盖 Gemini 目录(默认~/.gemini)CCSCTX_GEMINI_SETTINGS:覆盖 settings 文件路径CCSCTX_GEMINI_ENV:覆盖.env文件路径
错误与退出码
- 成功切换:退出码
0 - 已是当前 provider:退出码
0(输出already current) - 业务错误(provider 不存在、配置异常等):退出码
1 - 参数错误(如
--app opencode):退出码2
开发
运行测试:
运行静态检查:
格式化:
说明
- 本项目聚焦“快速切换 provider”场景,不覆盖 cc-switch 全功能。
cc-switch页面当前不会自动感知外部 CLI 的变更;重启后可读取到最新状态。