Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/.vuepress/navbar-source.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ export const recipeItemsSource: NavbarDocItem[] = [
{ file: "recipes/15-hatch-pet-photo.md", icon: "image" },
{ file: "recipes/16-android-remote-control.md", icon: "mobile" },
{ file: "recipes/17-desktop-pet.md", icon: "cat" },
{ file: "recipes/18-codex-profiles.md", icon: "terminal" },
];

export const manualItemsSource: NavbarDocItem[] = [
Expand Down
1 change: 1 addition & 0 deletions docs/.vuepress/sidebar/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ export default sidebar({
"15-hatch-pet-photo.md",
"16-android-remote-control.md",
"17-desktop-pet.md",
"18-codex-profiles.md",
],
},
],
Expand Down
1 change: 1 addition & 0 deletions docs/manual/02-credits.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ description: "CodexGuide 参考来源与致谢,整理案例中涉及的第三
| [BigPizzaV3/CodexPlusPlus](https://github.com/BigPizzaV3/CodexPlusPlus) | BigPizzaV3 | 社区工具,用于 Codex 桌面 App 外部 launcher、中转注入和 provider 管理;最后核对日期:2026-05-29 | [连接第三方 API](../start/04-third-party-api.md) |
| [BenedictKing/ccx](https://github.com/BenedictKing/ccx) | BenedictKing | 社区项目,提供 AI API 代理、协议转换、渠道编排和 Codex Responses 网关能力;最后核对日期:2026-05-29 | [连接第三方 API](../start/04-third-party-api.md) |
| [farion1231/cc-switch](https://github.com/farion1231/cc-switch) | farion1231 | 社区工具,用于管理 Codex、Claude Code、Gemini CLI 等工具的供应商配置和一键切换;最后核对日期:2026-05-29 | [连接第三方 API](../start/04-third-party-api.md) |
| [Ducksss/codex-profiles](https://github.com/Ducksss/codex-profiles) | Ducksss | 社区工具,为 Codex CLI 和命名 ChatGPT Desktop 窗口选择独立本地状态;最后核对日期:2026-07-13 | [18 Codex × codex-profiles](../recipes/18-codex-profiles.md) |

---

Expand Down
11 changes: 7 additions & 4 deletions docs/recipes/00-index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: "Codex 实战案例库,收录 PPT、Draw.io、Playwright、Obsidian、临床文献综述、Hatch Pet、安卓手机远程操控、飞书、Figma、Notion、CI 和远程排障案例。"
description: "Codex 实战案例库,收录 PPT、Draw.io、Playwright、Obsidian、临床文献综述、Hatch Pet、安卓手机远程操控、命名本地环境、飞书、Figma、Notion、CI 和远程排障案例。"
permalink: /recipes/
---

Expand All @@ -9,7 +9,7 @@ permalink: /recipes/

# 实战案例库

这里收集可复现、可改写、可迁移到真实工作流里的 Codex 使用案例。当前版本已收录 17 个案例,覆盖 Skill、MCP、浏览器自动化、知识库、临床文献综述、移动端协同、个性化工作台、设计稿、团队协作、远程排障和 CI 自动修复。
这里收集可复现、可改写、可迁移到真实工作流里的 Codex 使用案例。当前版本已收录 18 个案例,覆盖 Skill、MCP、浏览器自动化、知识库、临床文献综述、移动端协同、命名本地环境、个性化工作台、设计稿、团队协作、远程排障和 CI 自动修复。

## 当前案例概览

Expand All @@ -21,9 +21,10 @@ permalink: /recipes/
| 移动协同与个性化工作台 | 安卓手机远程操控、Hatch Pet、桌面宠物 | 在手机端跟进桌面任务,并用自定义宠物和桌面状态反馈优化工作台体验 |
| 浏览器与前端自动化 | Playwright MCP、Chrome 浏览器插件 | 让 Codex 操作网页、检查页面、执行浏览器任务 |
| 设计与协作平台 | Figma MCP、飞书 CLI | 读取设计稿、处理飞书数据、连接团队工具 |
| 本地环境与身份边界 | codex-profiles | 为 CLI 和命名 Desktop 窗口选择独立本地状态,并理解仍然共享的 OS 与服务端边界 |
| 发布与工程运维 | DKFile、云服务器远程修 Bug、GitHub Actions CI 修复 | 从本地/远程环境到自动修复流程的完整闭环 |

## 17 个案例清单
## 18 个案例清单

| 编号 | 案例 | 核心场景 | 推荐入口 | 验证重点 |
| --- | --- | --- | --- | --- |
Expand All @@ -44,6 +45,7 @@ permalink: /recipes/
| 15 | [Codex × Hatch Pet:用一张照片生成专属宠物](../recipes/15-hatch-pet-photo.md) | 生成并安装自定义桌面宠物 | 桌面 App / Hatch Pet | 素材质量、生成进度、宠物包路径 |
| 16 | [Codex × 安卓手机:扫码连接,远程操控](../recipes/16-android-remote-control.md) | 手机端配对并管理桌面任务 | ChatGPT App / Desktop App | 账号一致、网络、防火墙、连接状态 |
| 17 | [Codex × 桌面宠物:显示任务状态](../recipes/17-desktop-pet.md) | 用桌面宠物显示任务进度和完成状态 | 桌面 App | 宠物唤醒、任务状态、提醒反馈 |
| 18 | [Codex × codex-profiles:分开个人与工作环境](../recipes/18-codex-profiles.md) | 为不同 Codex 场景选择独立本地状态 | CLI / macOS App | CODEX_HOME、命名窗口、账号与安全边界 |

## 怎么选择先看哪个

Expand All @@ -55,14 +57,15 @@ permalink: /recipes/
- 想做医学科研资料整理:先看 [临床文献综述](../recipes/14-clinical-literature-review.md),重点学习如何把事实、推断和安全边界分开。
- 想优化桌面工作台体验:先看 [Hatch Pet](../recipes/15-hatch-pet-photo.md) 和 [桌面宠物](../recipes/17-desktop-pet.md),了解如何生成自定义宠物并查看任务状态。
- 想用手机跟进桌面任务:先看 [安卓手机远程操控](../recipes/16-android-remote-control.md),重点检查账号、网络和授权状态。
- 想分开个人与工作环境:先看 [codex-profiles](../recipes/18-codex-profiles.md),重点理解本地状态、账号与操作系统边界。
- 想做工程自动化:先看 [云服务器远程修 Bug](../recipes/11-remote-bug-fix.md)、[GitHub Actions CI 自动修复](../recipes/13-github-actions-ci-fix.md)。
- 想理解浏览器控制能力:先看 [Playwright MCP](../recipes/03-playwright-mcp.md) 和 [Chrome 浏览器插件](../recipes/12-chrome-browser-plugin.md)。

## 案例成熟度

| 状态 | 案例 | 说明 |
| --- | --- | --- |
| 已形成完整流程 | PPT Skill、Playwright MCP、Obsidian、飞书 CLI、临床文献综述、Hatch Pet、桌面宠物、安卓手机远程操控、远程修 Bug、GitHub Actions CI 修复 | 有明确安装、使用步骤或完整操作链路 |
| 已形成完整流程 | PPT Skill、Playwright MCP、Obsidian、飞书 CLI、临床文献综述、Hatch Pet、桌面宠物、安卓手机远程操控、codex-profiles、远程修 Bug、GitHub Actions CI 修复 | 有明确安装、使用步骤或完整操作链路 |
| 偏工具接入教程 | Draw.io MCP、Figma MCP、Notion MCP、DKFile、Chrome 浏览器插件 | 重点在接入方式、典型任务和安全边界 |
| 偏场景展示 | HyperFrames、LLM Wiki | 重点展示 Codex 与创作/知识库场景的组合方式 |

Expand Down
135 changes: 135 additions & 0 deletions docs/recipes/18-codex-profiles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
---
description: "使用 codex-profiles 为个人、工作或客户环境选择独立的 CODEX_HOME,并在 macOS 上启动使用独立本地状态的命名 ChatGPT Desktop 窗口。"
---

::: tip 最后核对
本文最后核对日期:2026-07-13,基于
[codex-profiles v0.7](https://github.com/Ducksss/codex-profiles/tree/v0.7.0)。
Codex 和 ChatGPT Desktop 的实际行为仍应以
[OpenAI Codex 文档](https://developers.openai.com/codex/)和当前客户端为准。
:::

# Codex × codex-profiles:分开个人与工作环境

当一台电脑需要处理个人、工作、学校或客户项目时,不同环境的 Codex
配置、会话和登录状态容易混在一起。`codex-profiles` 是一个开源 Bash
CLI:每个名称选择一个独立的 `CODEX_HOME`;在 macOS 上,命名启动还会为
整个 ChatGPT Desktop 窗口选择独立的 Electron 本地状态。

这个工具管理的是**本地状态路径**,不是账号迁移工具,也不是操作系统级
沙箱。它不会读取、复制、打印、解析、上传、比较或迁移令牌。

## 1. 先理解两个作用范围

| 命令 | 名称控制什么 |
| --- | --- |
| `cli`、`login`、`env`、`use` | 所选 `CODEX_HOME` 中的 Codex CLI 本地状态 |
| `app default` | 系统正常安装的 ChatGPT App 和默认 `~/.codex` |
| `app <name>` | 整个命名 ChatGPT 窗口的 Electron 本地状态,以及匹配的 `CODEX_HOME` |
| `status` | Codex CLI 的本地登录状态,不代表窗口当前显示的 ChatGPT 账号 |

`default` 映射到 `~/.codex`,其他名称映射到
`~/.codex-<name>`。例如:

| 名称 | Codex 本地目录 |
| --- | --- |
| `default` | `~/.codex` |
| `personal` | `~/.codex-personal` |
| `work` | `~/.codex-work` |

命名窗口的 Electron 数据位于对应目录下的
`electron-user-data`。同一个名称会复用同一份本地状态,不同名称可以并行
打开。

## 2. 安装并检查环境

使用 npm 安装时,包名是单数:

```bash
npm install -g codex-profile
codex-profile doctor
```

也可以使用 Homebrew:

```bash
brew install Ducksss/tap/codex-profile
codex-profile doctor
```

`doctor` 应能找到上游 Codex CLI。ChatGPT Desktop 命名窗口只支持
macOS;Linux 可以使用 CLI profile。

## 3. 创建并登录两个 CLI profile

```bash
codex-profile init personal
codex-profile init work

codex-profile login personal
codex-profile login work
```

`login` 会把上游 Codex CLI 放在所选 `CODEX_HOME` 中运行。
`codex-profiles` 本身不读取登录结果中的令牌。

分别运行两个环境:

```bash
codex-profile cli personal
codex-profile cli work exec "检查当前仓库并总结测试命令"
```

查看实际路径和 CLI 状态:

```bash
codex-profile path personal
codex-profile path work
codex-profile status personal
codex-profile status work
```

预期两个 `path` 输出不同。`status` 只用于核对 Codex CLI 本地状态,不能
识别 ChatGPT 窗口中当前可见的账号。

## 4. 在 macOS 启动命名 ChatGPT 窗口

```bash
codex-profile app default ~/Dev/personal-project
codex-profile app work ~/Dev/work-project
```

`app default` 使用系统原有的 ChatGPT 会话。`app work` 使用原始签名的
`ChatGPT.app`,但为整个窗口选择独立的 Electron 本地状态。工具不会复制、
修改、重新签名、退出或替换已安装的 App。

命名窗口第一次打开时可能需要登录。请在窗口界面中检查当前可见账号;不要
根据 profile 名称推断账号。CLI 和 Desktop 是否登录同一账号属于未验证
状态,需要用户分别登录并自行核对。

## 5. 验证隔离是否符合预期

完成后检查以下结果:

1. `codex-profile path personal` 与 `path work` 指向不同目录。
2. 两个 CLI profile 能分别启动,并保留各自的 Codex 本地状态。
3. macOS 上的默认窗口和命名窗口能并行打开。
4. 每个 ChatGPT 窗口中显示的账号与工作区符合预期。
5. 切换一个窗口的 Chat、Work 或 Codex 模式时,仍处于该窗口的本地状态。

## 安全边界

| 已分开 | 仍然共享或不受工具控制 |
| --- | --- |
| 每个名称下的 Codex 配置、会话、插件、缓存和日志 | macOS 用户、文件系统权限和网络 |
| 命名 ChatGPT 窗口的本地 Electron 数据 | SSH key、Git 凭证、GitHub CLI、浏览器 cookie、系统钥匙串 |
| CLI 和 Desktop 接收到的匹配 `CODEX_HOME` | 服务端 ChatGPT 历史、memory、workspace、plan、limit 和 cloud task |

因此,profile 隔离不能替代独立操作系统用户或企业安全边界。需要严格隔离
SSH key、Git 凭证或系统钥匙串时,应使用不同的操作系统用户。

## 参考来源

- [codex-profiles README](https://github.com/Ducksss/codex-profiles)
- [codex-profiles 安全模型](https://github.com/Ducksss/codex-profiles/blob/main/SECURITY.md)
- [OpenAI Codex 文档](https://developers.openai.com/codex/)