Skip to content

doctor537/codex-profile-switcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codex Profile Switcher

Windows GUI tool for switching Codex provider profiles and keeping local history usable across providers.

一个给 Codex 插件用的本地 Windows 工具。

核心目标:

  • 一键切换多个中转商配置
  • 不再拆成一堆字段,直接粘贴原始配置块
  • 统一浏览本地历史
  • 尽量把插件左侧历史归并到一起

现在的切换方式

每个商家配置只保留两个大框:

  1. config.toml 上半部
  2. auth.json 内容

也就是说,你直接把这类内容整段粘进去。下面是脱敏示例,发布仓库时不要放真实商家名称、真实接口地址或真实密钥:

model_provider = "example-provider"
model = "gpt-5"
model_reasoning_effort = "high"
disable_response_storage = true

[model_providers.example-provider]
name = "example-provider"
base_url = "https://api.example.com/v1"
wire_api = "responses"
env_key = "EXAMPLE_API_KEY"
{
  "EXAMPLE_API_KEY": "REPLACE_WITH_YOUR_API_KEY"
}

工具不会再逼你把 modelreasoningbase_url 拆成很多小输入框。

它到底改什么

默认会自动定位当前 Windows 用户的 Codex 目录:

  • C:\Users\你的用户名\.codex

也就是等价于 ~/.codex。如果别人的 Windows 用户名不同,工具会自动用他自己的用户目录,不会写死到作者电脑。

切换时只做两件事:

  • ~/.codex/config.toml 的“上半部分”替换成你粘贴的配置块
  • 把整个 ~/.codex/auth.json 替换成你粘贴的 JSON

会尽量保留 config.toml 下面这些尾部内容不动:

  • [projects.*]
  • [mcp_servers.*]
  • 其他不属于顶部 provider 配置块的内容

适合你的原因

因为不同商家 auth.json 不一定一样,比如:

{
  "OPENAI_API_KEY": "REPLACE_WITH_YOUR_API_KEY"
}

或者:

{
  "EXAMPLE_API_KEY": "REPLACE_WITH_YOUR_API_KEY"
}

这个工具现在不再写死键名,直接按你粘贴的 auth.json 原样写回。

GUI 用法

一键切换页

  1. 打开 dist/CodexApiSwitcher.exe
  2. 左侧点 新增配置
  3. 给这个配置起个名字
  4. 在右侧第一个大框粘贴该商家的 config.toml 顶部配置块
  5. 在右侧第二个大框粘贴该商家的完整 auth.json
  6. 保存
  7. 以后切换时,左侧选中这个商家,点 启用

如果当前 .codex 已经是某个商家,可以先选中一个配置,再点 从当前读取

统一历史页

这里可以:

  • 直接扫 ~/.codex/sessions
  • 直接扫 ~/.codex/archived_sessions
  • 不管中转商/provider,统一列出来看
  • 按关键词、目录、provider 过滤
  • 导出某条会话为 Markdown

归并插件左侧历史

统一历史 页里有一个按钮:

  • 归并到插件历史

它的作用不是新建历史,而是尽量把旧历史里这些维度统一:

  • model_provider
  • cwd

目标是尽量减少 Codex 插件左侧历史按不同中转商分裂。

现在的安全逻辑

  • 先检查是否真的还有内容需要归并
  • 如果已经归并过、没有新分裂内容,会直接提示:
    • No merge needed
  • 这时不会再新建备份

只有检测到真有变更时,才会备份:

  • state_5.sqlite
  • state_5.sqlite-shm
  • state_5.sqlite-wal
  • session_index.jsonl
  • config.toml
  • auth.json
  • 将要改写的 sessions/*.jsonl
  • 将要改写的 archived_sessions/*.jsonl

备份目录:

  • ~/.codex/vendor_switcher/merge_backups/latest

这个目录会覆盖上一次归并备份,避免频繁切换商家时备份无限增长。它不会进入 Codex 原生历史扫描目录,所以不会把左侧历史搞乱。

CLI

.\dist\CodexApiSwitcher.Cli.exe --show
.\dist\CodexApiSwitcher.Cli.exe --capture profile-1
.\dist\CodexApiSwitcher.Cli.exe --apply profile-3
.\dist\CodexApiSwitcher.Cli.exe --history
.\dist\CodexApiSwitcher.Cli.exe --merge-native-history

仓库文件

  • Program.cs 主程序源码
  • build.ps1 编译脚本
  • dist/CodexApiSwitcher.exe 构建后生成的 GUI 可执行文件,默认不提交到仓库
  • dist/CodexApiSwitcher.Cli.exe 构建后生成的 CLI 可执行文件,默认不提交到仓库

当前建议

第一次使用时:

  1. 先把常用商家一个个新增进去
  2. 每个商家只粘贴两段原始配置
  3. 关掉 Codex 插件
  4. 点一次 归并到插件历史
  5. 重新打开 Codex 插件

以后就只需要:

  • 左侧选中商家
  • 启用

About

Windows GUI tool for switching Codex provider profiles and keeping local history usable across providers.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages