lys: 本地优先的 AI 客户端配置切换与诊断工具Part of the lys personal open source system.
当前状态:暂停维护
如需成熟可用方案,默认推荐使用:
https://github.com/farion1231/cc-switch
CodexSwitch 是一个本地优先的 AI 配置管理工具原型,用来统一管理和切换:
CodexClaude同时覆盖:
它解决的是下面这类问题:
~/.codex 或 ~/.claude 配置它更接近:
SwitchHosts 一类的本地配置切换器而不是:
当前仓库继续保留公开,但默认不再作为主推项目推进。
原因:
如果你只是想找一个成熟工具,建议直接使用:
cc-switchhttps://github.com/farion1231/cc-switch这是一个开发者辅助工具,不是模型网关,也不是聊天客户端。
当前状态是:
它当前聚焦 3 件事:
CodexSwitch 属于个人开源系统里的AI 协作 / 开发效率工具,不是当前对外主线的一部分。
也就是说:
Smart BLE / Open IoT Platform 这样的主入口项目这个定位比把它硬塞进主线更稳。
当前架构不是“先做一个好看 GUI”,而是:
CodexSwitch
├── Profile Store
│ ├── profile metadata
│ ├── managed file templates
│ └── preset variables
├── Activation Engine
│ ├── render
│ ├── diff preview
│ ├── backup
│ ├── apply
│ └── rollback
├── Core Libraries
│ ├── codex-config
│ ├── launch-spec
│ ├── state
│ └── test-connection
├── Adapter A
│ └── CLI
└── Adapter B
└── Desktop GUI
这套结构的意思是:
所以现在不要把它理解成“做了一半的桌面应用”,而应该理解成“核心已经是独立工具,当前入口先用 CLI”。
运行时覆盖是兼容路径,不是长期主心智。
CodexSwitch 如果继续增加 GUI,不再临时选型,而是直接遵守根目录的标准文档:
具体就是:
Tauri 2RustSvelte 5TypeScriptVite也就是说:
CodexSwitchlys-codex-switch当前已经落地:
initlistcurrentshow <name>save-profiledelete-profilelist-file-profilesshow-file-profilerender-file-profilesync-file-profilesbuild-launch-specpreview-profileimport-current <name>use <name>rollbacktest <name>export当前也已经起了统一栈下的 GUI:
src-ui/src-tauri/它当前的定位是:
当前 GUI 已经具备:
CodexClaudeprovider_name 和 provider_key 不是同一层概念。
provider_nameRelay、Kimi、Zhipu Codingprovider_keyCodex 当前默认仍然是 OpenAI这意味着:
provider_keybase_url、wire_api、auth推荐作为主路径。
特点:
Codex 的持久切换已优先走 file profile 模板目录作为兼容路径保留。
特点:
路径并不是一套写死的规则。
当前已经按:
macOSLinuxWindows区分目标路径展示。
具体矩阵见:
当前工具围绕下面这些本地文件工作:
~/.codex/config.toml~/.codex/auth.json~/.claude.json~/.claude/~/.codex-switch/profiles/~/.codex-switch/profiles.json~/.codex-switch/state.json~/.codex-switch/backups/说明:
profiles.json 是当前兼容层存储profiles/ 目录是正在推进的文件模板存储render_vars 默认不会持久化真实 API key每个 profile 至少包含:
nameclientactivation_strategyprovider_nameprovider_keyproviderbase_urlapi_keywire_apimodelmodel_reasoning_effortrequires_openai_authenv_varscd CodexSwitch
node src/cli.mjs init
node src/cli.mjs list
node src/cli.mjs show "OpenAI Official"
node src/cli.mjs build-launch-spec "OpenAI Official"
node src/cli.mjs sync-file-profiles
node src/cli.mjs list-file-profiles
node src/cli.mjs show-file-profile "OpenAI Official" --client codex
node src/cli.mjs render-file-profile "OpenAI Official" --client codex
node src/cli.mjs preview-profile --json-input '{"name":"OpenAI Official", ... }'
node src/cli.mjs import-current "Imported Current"
node src/cli.mjs use "OpenAI Official"
node src/cli.mjs current
node src/cli.mjs rollback
node src/cli.mjs test "OpenAI Official"
npm install
npm run dev:ui -- --host 0.0.0.0
npm install
npm run tauri:dev
默认暂停。
如果后续有人愿意继续接手,优先方向仍然是: