Skip to content
5hux1nPublic

About

Native macOS menu bar manager for isolated Codex profiles and local context handoff

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodexM 应用图标

CodexM

项目网站

在 macOS 菜单栏管理多个 Codex 账户,让项目在账户之间继续。

为不同账户保留独立登录状态,从菜单栏切换窗口,并通过项目接力继续已有任务。

当前版本:1.1.2 · macOS 14+ · Apple Silicon / Intel

修复“导入成功但找不到会话”:保留原会话名称,同时登记目标客户端项目栏和会话归属。旧导入可在停止两端账户后重复迁移来修复显示。支持分叉会话完整历史与 A → B → A 往返接力;冲突历史保留双方。

CodexM 是独立开发的开源工具,与 OpenAI 无隶属或背书关系,不包含官方客户端。

Install

需要先安装兼容的官方客户端。CodexM 按应用标识 com.openai.codex 识别客户端,部分版本在系统中显示为 ChatGPT。

从 GitHub Release 下载 DMG,打开后将 CodexM 拖入 Applications,再从“应用程序”启动。

也可以使用 Xcode 26+ 和 Python 3 从源码构建:

git clone https://github.com/5hux1n/CodexM.git
cd CodexM
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
./scripts/build_release.sh
open dist/CodexM.app

如果 Xcode 安装在其他位置,请修改 DEVELOPER_DIR。构建会生成 dist/CodexM.app、dist/CodexM-v1.1.2-macOS.dmg 和 ZIP 压缩包。将应用放到固定位置后使用。

当前发布包及本地构建采用 ad-hoc 签名,未经 Developer ID 签名或 Apple 公证。替换应用后,macOS 可能要求重新授予辅助功能权限。

Quickstart

  1. 打开 CodexM,在“通用设置”中确认或选择已安装的官方客户端。
  2. 在“我的账户”中添加账户,点击启动,在官方客户端内完成登录。
  3. 点击菜单栏 CodexM 图标查看账户。悬停右侧箭头展开操作菜单,移走关闭,点击箭头固定展开。
  4. 选择窗口切换到对应任务。需要精确聚焦、新建窗口或悬停预览时,按应用提示授予辅助功能权限。
  5. 需要换账户继续任务时,打开“项目接力”,选择来源任务、目标账户和接力方式。

默认退出 CodexM 后,已运行的客户端继续运行;可以在设置中更改这一行为。

账户与窗口

  • 独立登录: 新增账户分别使用独立的 CODEX_HOME 和 Electron 用户数据目录。默认账户沿用本机已有数据。
  • 集中管理: 启动、停止、重启账户,查看窗口数量,重命名账户配置。
  • 窗口预览: 在子菜单中悬停窗口项进行预览,并通过呼吸边框识别目标窗口;点击切换。
  • 故障诊断: 在通用设置或错误弹窗复制诊断信息,按操作阶段、错误码和定位编号排查;最近 100 条记录不包含账户名称、路径、凭据或对话内容。
  • 本机体验: 支持简体中文、English、系统外观和登录 Mac 时启动。

账户隔离属于应用数据目录隔离,不是虚拟机隔离。删除新增账户会将其数据移入废纸篓;运行中或被占用的账户不能删除,默认账户不能删除。

两种项目接力

方式 适合的用途 使用流程
上下文接力 用整理后的上下文继续任务 读取所选任务,预览接力内容,生成接力包,在目标客户端手动粘贴并发送继续指令
原生任务迁移 将已有任务历史导入目标账户 停止来源及目标客户端,通过占用与兼容性检查后执行接力

原生迁移会恢复所选会话的本地项目归属:目录相同的目标项目会复用,没有时按原项目名称和目录创建。保留原会话历史与时间,不会迁移同项目下未选择的其他会话。

单端往返接力保留同一会话 ID:A → B 成功后,仅在 B 继续;回到 A 时检查 A 的历史是 B 最新历史的前缀,并先备份再更新。后续可继续 A → B 往返。最近一次接收账户是当前接力账户;旧副本会显示提示,不能覆盖新进度。重复执行已完成且历史一致的迁移直接返回成功,不重复增加对话。

如果两端都继续过对话或来源丢失了此前已迁移的历史,自动回迁会拒绝,两份历史保留,可使用上下文接力人工处理。迁移不移动项目文件:共用同一目录时使用同一份当前文件;不同目录、worktree 或其他电脑上的文件需要自行同步。支持通过兼容检查的独立任务和分叉会话;自动合并分叉时继承的历史,不带入原会话后来的新进度。关联目标、子任务、附件及动态工具的任务仍需上下文接力。

原生迁移包含备份、导入验证和回滚,会写入目标任务存储,并依赖官方客户端的本地加载器。官方版本更新可能改变兼容性;检查失败时请保留诊断信息。目标数据发生变化后,回滚也可能被拒绝,以免覆盖后续工作。

上下文接力会做基础脱敏,但不能识别所有敏感内容。发送前请检查生成结果。

数据与使用边界

账户配置与新增账户数据默认位于 ~/Library/Application Support/CodexM/。可以在设置中更改新增账户的数据目录;默认账户仍使用官方客户端原有位置。

CodexM 不提供账户服务器、遥测或凭据同步。登录由官方客户端完成,认证状态检测仅读取认证文件元数据,不解析认证文件内容。官方客户端自身的网络行为由其控制。

多窗口、跨桌面聚焦及原生迁移仍需在你的客户端版本下验证。遇到问题,请在 Issues 中附上 macOS、CodexM、官方客户端版本和复现步骤;不要上传认证文件或完整私人会话。

源码构建与维护说明见 开发文档。

License

采用 MIT License。图标资源的第三方许可见 GitHub Octicons。

About

Native macOS menu bar manager for isolated Codex profiles and local context handoff

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages