mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-08-02 05:37:45 +00:00
feat: codex config installer with rollback
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
<a href="#dao-fa-shu-qi"><img src="https://img.shields.io/badge/☯️_道法术器-底层框架-purple?style=for-the-badge" alt="道法术器"></a>
|
||||
<a href="./docs/getting-started/README.md#learning-map"><img src="https://img.shields.io/badge/🚀_从零开始-完整入门-red?style=for-the-badge" alt="从零开始完整入门"></a>
|
||||
<a href="./docs/getting-started/README.md#vibe-coding-experience"><img src="https://img.shields.io/badge/🧠_Vibe_Coding-经验必读-crimson?style=for-the-badge" alt="Vibe Coding 经验"></a>
|
||||
<a href="./tools/config/.codex/README.md"><img src="https://img.shields.io/badge/⚙️_Codex配置-一键安装-blue?style=for-the-badge" alt="Codex 配置一键安装"></a>
|
||||
<a href="./docs/concepts/README.md#concept-problem-solving"><img src="https://img.shields.io/badge/🧩_问题求解-必读-purple?style=for-the-badge" alt="问题求解"></a>
|
||||
<a href="./docs/philosophy/README.md#philosophy-thinking-models"><img src="https://img.shields.io/badge/🧭_思维模型-认知工具-purple?style=for-the-badge" alt="思维模型"></a>
|
||||
<a href="./docs/philosophy/README.md#philosophy-methodology-toolbox"><img src="https://img.shields.io/badge/🔮_哲学方法论-底层协议-purple?style=for-the-badge" alt="哲学与方法论"></a>
|
||||
@@ -251,7 +252,7 @@ pip install -r tools/prompts-library/scripts/requirements.txt
|
||||
- Markdown lint 配置:`.github/lint_config.json`
|
||||
- Markdown lint 版本:`Makefile` 中固定为 `markdownlint-cli@0.48.0`
|
||||
- CI 配置:`.github/workflows/ci.yml`,在 `develop` / `master` 分支的 push / pull_request 上运行 markdown-lint、本地链接检查、docs 结构检查与 link-checker
|
||||
- Codex 配置基线:`tools/config/.codex/config.toml`
|
||||
- Codex 配置基线:`tools/config/.codex/README.md`,支持一键安装、自动备份和恢复。
|
||||
- Submodule 来源:`.gitmodules`
|
||||
|
||||
### 部署
|
||||
@@ -420,6 +421,7 @@ pip install -r tools/prompts-library/scripts/requirements.txt
|
||||
#### AI CLI 与模型服务
|
||||
|
||||
* [**Codex CLI**](docs/getting-started/README.md#cli-setup): 本教程默认 AI CLI 路线,用于需求拆解、代码修改、命令执行、测试验证与 Git 迭代。
|
||||
* [**Codex CLI 配置基线**](tools/config/.codex/README.md): 可通过一条命令安装到 `~/.codex/`,安装前自动备份,支持恢复。
|
||||
* [**Claude Opus 4.7**](https://claude.ai/new): 性能强大的 AI 模型,通过 Claude Code 等平台提供服务,并支持 CLI 和 IDE 插件。
|
||||
* [**gpt-5.5 (xhigh)**](https://chatgpt.com/codex/): 适用于处理大型项目和复杂逻辑的 AI 模型,可通过 Codex CLI 等平台使用。
|
||||
* [**Droid**](https://factory.ai/news/terminal-bench): 提供对 Claude Opus 4.7 等多种模型的 CLI 访问。
|
||||
@@ -494,6 +496,7 @@ pip install -r tools/prompts-library/scripts/requirements.txt
|
||||
* [**从零开始完整入门**](docs/getting-started/README.md#learning-map): 新手从网络环境、CLI 配置、开发环境和 Git 闭环开始。
|
||||
* [**Vibe Coding 经验**](docs/getting-started/README.md#vibe-coding-experience): 通用语言能力、人机分工、机器门禁和入门铁律。
|
||||
* [**CLI 配置**](docs/getting-started/README.md#cli-setup): Codex CLI 默认路线与 OpenCode 备选路线。
|
||||
* [**Codex 配置一键安装**](tools/config/.codex/README.md): 安全默认配置、高权限配置、自动备份和一键恢复。
|
||||
* [**开发流程**](docs/workflow/README.md#workflow-development-process): 默认任务推进顺序、质量门禁、版本控制和交付闭环。
|
||||
* [**问题求解**](docs/concepts/README.md#concept-problem-solving): 用目标、现状、差距、标准、约束、对象和路径定义问题。
|
||||
* [**拼好码(胶水编程的超集)**](docs/concepts/README.md#concept-glue-coding): 复用成熟能力,用胶水代码连接、编排、适配业务流程。
|
||||
|
||||
@@ -47,6 +47,7 @@ GEOFlow 的关键启发是:GEO 不是关键词堆砌,而是内容工程链
|
||||
- docs/getting-started/README.md#learning-map:新手、开发者、团队、Prompt、Skill、质量门禁和 GEO/SEO 的路线选择。
|
||||
- docs/getting-started/README.md#network-environment:OpenAI、GitHub、文档和依赖源访问配置。
|
||||
- docs/getting-started/README.md#cli-setup:Codex CLI 默认路线与 OpenCode 备选路线。
|
||||
- tools/config/.codex/README.md:Codex CLI 全局配置基线,支持一键安装、自动备份和恢复。
|
||||
- docs/getting-started/README.md#development-environment:让 Agent 主动配置开发依赖、编辑器建议和测试命令。
|
||||
- docs/concepts/README.md:核心概念索引,汇总问题求解、拼好码、系统构建方法、开发范式演进、语言层要素和递归自优化系统。
|
||||
- docs/concepts/README.md#concept-problem-solving:问题定义、目标、约束、对象、路径。
|
||||
@@ -79,7 +80,7 @@ GEOFlow 的关键启发是:GEO 不是关键词堆砌,而是内容工程链
|
||||
|
||||
当用户不知道从哪里开始时,优先推荐 `docs/README.md`。更具体的路由如下:
|
||||
|
||||
- 新手入门:读取 `docs/getting-started/README.md#vibe-coding-experience`、`docs/getting-started/README.md#learning-map`、`docs/getting-started/README.md#cli-setup`,再读 `docs/concepts/README.md#concept-problem-solving`、`docs/concepts/README.md#concept-glue-coding` 和 `docs/references/README.md#reference-engineering-practice`。
|
||||
- 新手入门:读取 `docs/getting-started/README.md#vibe-coding-experience`、`docs/getting-started/README.md#learning-map`、`docs/getting-started/README.md#cli-setup`、`tools/config/.codex/README.md`,再读 `docs/concepts/README.md#concept-problem-solving`、`docs/concepts/README.md#concept-glue-coding` 和 `docs/references/README.md#reference-engineering-practice`。
|
||||
- 工程开发:读取 `docs/concepts/README.md#concept-glue-coding`、`docs/concepts/README.md#concept-system-building`、`docs/references/README.md#reference-technology-stack` 和 `docs/references/README.md#reference-engineering-practice`。
|
||||
- 思维模型:读取 `README.md#dao-fa-shu-qi`、`docs/philosophy/README.md#philosophy-thinking-models`、`docs/philosophy/README.md#philosophy-compositional-description-model`、`docs/philosophy/README.md#philosophy-programming-dao`、`docs/philosophy/README.md#philosophy-software-engineering-truths` 和 `docs/philosophy/README.md#philosophy-methodology-toolbox`。
|
||||
- 新技术判断:读取 `docs/research/README.md`,再读具体研究笔记,例如 `docs/research/README.md#research-harness-engineering`。
|
||||
|
||||
@@ -540,7 +540,7 @@ ____
|
||||
-> npm 安装 Codex CLI
|
||||
-> codex --version 验证
|
||||
-> codex login 浏览器登录
|
||||
-> 复制本仓库 Codex 配置基线
|
||||
-> 安全安装本仓库 Codex 配置基线
|
||||
-> 进入项目运行 codex
|
||||
```
|
||||
|
||||
@@ -719,17 +719,36 @@ $env:OPENAI_API_KEY | codex login --with-api-key
|
||||
|
||||
### 使用仓库配置基线
|
||||
|
||||
本仓库已经提供 CLI 配置基线:
|
||||
本仓库已经提供可回滚的 Codex CLI 配置基线:
|
||||
|
||||
- `tools/config/.codex/config.toml`
|
||||
- `tools/config/.codex/config.power.toml`
|
||||
- `tools/config/.codex/AGENTS.safe.md`
|
||||
- `tools/config/.codex/AGENTS.md`
|
||||
- `tools/config/.codex/install.sh`
|
||||
|
||||
在仓库根目录执行:
|
||||
推荐使用安全默认版。脚本会先备份你已有的 `~/.codex/config.toml` 和 `~/.codex/AGENTS.md`,再安装新配置:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.codex
|
||||
cp -f tools/config/.codex/config.toml ~/.codex/config.toml
|
||||
cp -f tools/config/.codex/AGENTS.md ~/.codex/AGENTS.md
|
||||
curl -fsSL https://raw.githubusercontent.com/tukuaiai/vibe-coding-cn/develop/tools/config/.codex/install.sh | bash
|
||||
```
|
||||
|
||||
如果已经 clone 本仓库,也可以在仓库根目录执行:
|
||||
|
||||
```bash
|
||||
bash tools/config/.codex/install.sh
|
||||
```
|
||||
|
||||
需要完全可信本地环境下的高权限配置时,显式安装 `power` profile:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/tukuaiai/vibe-coding-cn/develop/tools/config/.codex/install.sh | bash -s -- --profile power
|
||||
```
|
||||
|
||||
恢复最近一次安装前的配置:
|
||||
|
||||
```bash
|
||||
bash ~/.codex/backups/vibe-coding-cn/LATEST/restore.sh
|
||||
```
|
||||
|
||||
详细说明见:[Codex 配置基线](../../tools/config/.codex/README.md)。
|
||||
|
||||
@@ -26,6 +26,7 @@ vibe-coding-cn 是一个中文 Vibe Coding / AI 结对编程系统教程,帮
|
||||
- docs/getting-started/README.md#learning-map
|
||||
- docs/getting-started/README.md#network-environment
|
||||
- docs/getting-started/README.md#cli-setup
|
||||
- tools/config/.codex/README.md
|
||||
- docs/getting-started/README.md#development-environment
|
||||
- docs/concepts/README.md#concept-problem-solving
|
||||
- docs/concepts/README.md#concept-glue-coding
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Codex 全局安全默认指令
|
||||
|
||||
你是用户本地 Codex Agent。默认以安全、可验证、可回滚的方式协助用户完成软件工程任务。
|
||||
|
||||
## 工作原则
|
||||
|
||||
- 先读当前目录与任务上下文,再修改文件。
|
||||
- 优先复用成熟方案、官方能力、稳定工具和项目既有模式。
|
||||
- 不硬编码密钥、Token、Cookie、私钥或个人敏感信息。
|
||||
- 不执行不可逆或破坏性操作,除非用户明确要求并已经说明风险。
|
||||
- 修改前尽量缩小影响范围,修改后给出验证命令和结果。
|
||||
- 涉及 Git 时,先查看 `git status --short --branch`,避免混入无关改动。
|
||||
|
||||
## 质量门禁
|
||||
|
||||
- 能用测试、lint、类型、schema、脚本或 CI 验证的规则,不只写在提示词里。
|
||||
- 不把“看起来对”当成完成;优先给出可复现命令、diff、测试输出和剩余风险。
|
||||
- 遇到不确定事实时,明确说明不确定性和查证路径。
|
||||
|
||||
## 输出风格
|
||||
|
||||
- 默认使用中文。
|
||||
- 简洁直接,先给结论,再给关键证据和下一步。
|
||||
- 对人看的文档、注释和说明使用中文;代码符号保持英文且语义清楚。
|
||||
@@ -1,49 +1,106 @@
|
||||
# `tools/config/.codex/` 用法说明
|
||||
# Codex CLI 配置基线
|
||||
|
||||
本目录用于在仓库内版本化管理 Codex CLI 的“全局配置基线”,便于多人同步、审阅与回滚。
|
||||
本目录把 Codex CLI 全局配置做成可审阅、可安装、可回滚的公开基线。
|
||||
|
||||
你只需要把本目录里的两个文件复制到 **Codex Home**(默认 `~/.codex/`)即可生效:
|
||||
## 字多不看
|
||||
|
||||
- `tools/config/.codex/config.toml` → `~/.codex/config.toml`
|
||||
- `tools/config/.codex/AGENTS.md` → `~/.codex/AGENTS.md`
|
||||
- 默认安装 `safe` 配置:不写入本机路径,不启用 `danger-full-access`,不设置 `approval_policy = "never"`。
|
||||
- 需要全自动高权限体验时,显式安装 `power` 配置。
|
||||
- 安装前会备份用户现有 `~/.codex/config.toml` 和 `~/.codex/AGENTS.md`。
|
||||
- 每次安装都会生成恢复脚本,误覆盖后可以一键恢复。
|
||||
- 支持通过 `CODEX_HOME` 指定 Codex Home。
|
||||
|
||||
## 1. 一键安装(推荐)
|
||||
## 一键安装
|
||||
|
||||
在仓库根目录执行:
|
||||
安全默认版:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.codex
|
||||
cp -f tools/config/.codex/config.toml ~/.codex/config.toml
|
||||
cp -f tools/config/.codex/AGENTS.md ~/.codex/AGENTS.md
|
||||
curl -fsSL https://raw.githubusercontent.com/tukuaiai/vibe-coding-cn/develop/tools/config/.codex/install.sh | bash
|
||||
```
|
||||
|
||||
## 2. 路径示例
|
||||
高权限版:
|
||||
|
||||
### Linux / WSL(实际生效位置)
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/tukuaiai/vibe-coding-cn/develop/tools/config/.codex/install.sh | bash -s -- --profile power
|
||||
```
|
||||
|
||||
- `\\wsl.localhost\\Ubuntu\\home\\<你的用户名>\\.codex\\config.toml`
|
||||
- `\\wsl.localhost\\Ubuntu\\home\\<你的用户名>\\.codex\\AGENTS.md`
|
||||
指定 Codex Home:
|
||||
|
||||
(在 WSL 内对应:`~/.codex/config.toml` 与 `~/.codex/AGENTS.md`)
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/tukuaiai/vibe-coding-cn/develop/tools/config/.codex/install.sh | CODEX_HOME="$HOME/.codex" bash
|
||||
```
|
||||
|
||||
### Windows(原生)
|
||||
## 恢复
|
||||
|
||||
Codex Home 默认是 `~/.codex/`;在 Windows 上 `~` 通常展开为用户目录:
|
||||
恢复最近一次安装前的配置:
|
||||
|
||||
- `C:\\Users\\<你的用户名>\\.codex\\config.toml`
|
||||
- `C:\\Users\\<你的用户名>\\.codex\\AGENTS.md`
|
||||
```bash
|
||||
bash ~/.codex/backups/vibe-coding-cn/LATEST/restore.sh
|
||||
```
|
||||
|
||||
如果你自己的 Codex Home 被改到了其它位置(例如 `C:\\Users\\<你的用户名>\\.config\\...`),请把两份文件复制到你实际的 Codex Home。
|
||||
也可以恢复某一次具体备份:
|
||||
|
||||
## 3. 配置优先级(重要)
|
||||
```bash
|
||||
bash ~/.codex/backups/vibe-coding-cn/YYYYMMDD-HHMMSS/restore.sh
|
||||
```
|
||||
|
||||
- **全局配置**:`~/.codex/config.toml`
|
||||
- **项目覆盖**:在项目根目录创建 `.codex/config.toml`(仅对当前项目生效)
|
||||
备份目录包含:
|
||||
|
||||
如果你想把某些配置“只对本仓库生效”,建议使用项目覆盖(`.codex/config.toml`),全局配置只保留你长期通用的习惯与安全策略。
|
||||
- `config.toml`:安装前的用户原配置;如果原文件不存在,会写入 `.missing-config.toml` 标记。
|
||||
- `AGENTS.md`:安装前的用户原指令;如果原文件不存在,会写入 `.missing-AGENTS.md` 标记。
|
||||
- `MANIFEST.txt`:安装来源、profile、目标路径和恢复脚本位置。
|
||||
- `restore.sh`:恢复脚本。
|
||||
|
||||
## 4. 参考(官方文档)
|
||||
## 文件说明
|
||||
|
||||
- Configuration / Config file:说明 `~/.codex/config.toml` 与项目级 `.codex/config.toml` 的优先级
|
||||
- Custom instructions / Global instructions:说明 `~/.codex/AGENTS.md` 的全局指令加载方式
|
||||
| 文件 | 用途 |
|
||||
|:---|:---|
|
||||
| `install.sh` | 一键安装、备份和恢复入口 |
|
||||
| `config.toml` | 公开安全默认配置 |
|
||||
| `config.power.toml` | 高权限配置,显式 `--profile power` 才安装 |
|
||||
| `AGENTS.safe.md` | 公开安全默认全局指令 |
|
||||
| `AGENTS.md` | 高强度个人工作流指令,配合 `power` profile 使用 |
|
||||
|
||||
## 安全边界
|
||||
|
||||
`safe` profile 适合新手和公共分发:
|
||||
|
||||
- 不自动信任任何本机项目路径。
|
||||
- 不放开全盘读写和命令执行权限。
|
||||
- 不关闭审批确认。
|
||||
|
||||
`power` profile 只适合完全可信的本地环境:
|
||||
|
||||
- 会写入 `sandbox_mode = "danger-full-access"`。
|
||||
- 会写入 `approval_policy = "never"`。
|
||||
- 会安装更强势的全局 `AGENTS.md`。
|
||||
|
||||
如果你不确定该选哪个,使用默认 `safe`。
|
||||
|
||||
## 本地仓库内安装
|
||||
|
||||
如果你已经 clone 本仓库,也可以在仓库根目录执行:
|
||||
|
||||
```bash
|
||||
bash tools/config/.codex/install.sh
|
||||
```
|
||||
|
||||
安装高权限版:
|
||||
|
||||
```bash
|
||||
bash tools/config/.codex/install.sh --profile power
|
||||
```
|
||||
|
||||
## 路径示例
|
||||
|
||||
Linux / WSL:
|
||||
|
||||
- `~/.codex/config.toml`
|
||||
- `~/.codex/AGENTS.md`
|
||||
|
||||
Windows 原生:
|
||||
|
||||
- `C:\Users\<你的用户名>\.codex\config.toml`
|
||||
- `C:\Users\<你的用户名>\.codex\AGENTS.md`
|
||||
|
||||
如果你自己的 Codex Home 被改到了其它位置,请通过 `CODEX_HOME` 或 `--codex-home` 指定。
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# ==================== Codex CLI 高权限基线 ====================
|
||||
#
|
||||
# 这个 profile 面向完全可信的本地机器和仓库:
|
||||
# - sandbox_mode = "danger-full-access" 会放开文件系统和命令执行能力。
|
||||
# - approval_policy = "never" 会减少确认弹窗,让 Agent 自动推进。
|
||||
# - 不包含任何本机 projects 信任路径;请按需在本地 config.toml 中追加。
|
||||
#
|
||||
# 安装方式:
|
||||
# bash install.sh --profile power
|
||||
|
||||
model = "gpt-5.5"
|
||||
model_provider = "openai-http"
|
||||
model_reasoning_effort = "xhigh"
|
||||
|
||||
sandbox_mode = "danger-full-access"
|
||||
approval_policy = "never"
|
||||
|
||||
web_search = "live"
|
||||
personality = "pragmatic"
|
||||
|
||||
startup_timeout_ms = 20000
|
||||
|
||||
[tui]
|
||||
notifications = true
|
||||
|
||||
[tui.model_availability_nux]
|
||||
"gpt-5.5" = 4
|
||||
|
||||
[features]
|
||||
multi_agent = true
|
||||
responses_websockets = false
|
||||
responses_websockets_v2 = false
|
||||
|
||||
[model_providers.openai-http]
|
||||
name = "OpenAI"
|
||||
wire_api = "responses"
|
||||
requires_openai_auth = true
|
||||
supports_websockets = false
|
||||
|
||||
[notice]
|
||||
hide_gpt5_1_migration_prompt = true
|
||||
"hide_gpt-5.1-codex-max_migration_prompt" = true
|
||||
hide_rate_limit_model_nudge = true
|
||||
|
||||
# 本地可信项目示例:
|
||||
# [projects."/absolute/path/to/your/project"]
|
||||
# trust_level = "trusted"
|
||||
+11
-197
@@ -1,223 +1,37 @@
|
||||
# ==================== 基础配置 ====================
|
||||
# ==================== Codex CLI 安全默认基线 ====================
|
||||
#
|
||||
# 这是公开分发默认配置:
|
||||
# - 不包含本机 projects 信任路径。
|
||||
# - 不设置 danger-full-access。
|
||||
# - 不设置 approval_policy = "never"。
|
||||
# - 适合新用户先跑通 Codex CLI,再按项目需要逐步放开权限。
|
||||
#
|
||||
# 需要更高权限时,请显式安装 config.power.toml:
|
||||
# bash install.sh --profile power
|
||||
|
||||
# 模型:
|
||||
# - 这里填写 Codex CLI 支持的模型名(字符串)。
|
||||
# - 建议写成你常用的默认模型,临时切换用命令行 `-m` 覆盖更合适。
|
||||
# - 经验上:`*-codex` 更偏“写代码/改代码”,非 `*-codex` 更偏通用对话(以你实际使用体验为准)。
|
||||
model = "gpt-5.5"
|
||||
model_provider = "openai-http"
|
||||
|
||||
# 推理强度(思考深度):
|
||||
# - low → 更快,适合“明确指令 + 小改动”
|
||||
# - medium → 均衡,适合多数日常任务
|
||||
# - high → 更深,适合复杂重构/疑难排障
|
||||
# - xhigh → 最深,适合架构级设计/大范围推理(可能更慢)
|
||||
# 注意:
|
||||
# - 不同模型对选项支持范围可能不同;遇到报错优先降一档再试。
|
||||
model_reasoning_effort = "xhigh"
|
||||
|
||||
# 运行策略
|
||||
# sandbox_mode:
|
||||
# - 用来约束/放开文件系统、命令执行等能力(不同版本 Codex/运行器实现可能略有差异)。
|
||||
# - `danger-full-access` 表示最大权限:可读写任意路径、可执行任意命令。
|
||||
# - 仅在你明确知道自己在做什么、并且仓库/机器可信时使用。
|
||||
sandbox_mode = "danger-full-access"
|
||||
|
||||
# approval_policy:
|
||||
# - 控制是否需要用户确认(例如写文件、跑命令等高影响操作)。
|
||||
# - `never` 表示不再弹确认,自动执行。
|
||||
# - 风险提示:如果你经常在不熟的目录/不可信脚本环境里使用,建议改成更保守的策略。
|
||||
approval_policy = "never"
|
||||
|
||||
# web_search:
|
||||
# - 控制联网搜索能力策略(以你安装的 Codex CLI 版本为准)。
|
||||
# - `live` 通常表示允许实时联网搜索(适用于需要最新信息的任务)。
|
||||
model_reasoning_effort = "medium"
|
||||
web_search = "live"
|
||||
|
||||
# 交互风格
|
||||
# personality:
|
||||
# - 影响输出风格(例如更务实/更解释型等)。
|
||||
personality = "pragmatic"
|
||||
|
||||
# 指令来源(可选,与 AGENTS.md 二选一)
|
||||
# experimental_instructions_file:
|
||||
# - 指定一份“系统指令/长期提示词”文件路径。
|
||||
# - 如果项目内已经用 `AGENTS.md` 管理行为准则,通常不需要再额外打开。
|
||||
# experimental_instructions_file = "/home/lenovo/.codex/custom-instructions.md"
|
||||
|
||||
# ==================== MCP 默认配置 ====================
|
||||
# startup_timeout_ms:
|
||||
# - MCP(Model Context Protocol)服务器启动/握手的超时时间(毫秒)。
|
||||
# - 如果你启用了某些 MCP(npx/node 启动慢),可以把这个值适当调大。
|
||||
startup_timeout_ms = 20000
|
||||
|
||||
# ==================== UI 与提示 ====================
|
||||
|
||||
[tui]
|
||||
# 是否在 TUI(终端 UI)里启用通知提示。
|
||||
notifications = true
|
||||
|
||||
[tui.model_availability_nux]
|
||||
"gpt-5.5" = 4
|
||||
|
||||
[features]
|
||||
# Codex 里的 “subagent” 基本就是 Multi-agents(多代理/子线程)功能:主代理会按需 spawn 子代理并行干活,最后汇总结果。
|
||||
multi_agent = true
|
||||
# 禁用 Responses WebSocket 传输,只走 HTTPS/HTTP Responses。
|
||||
responses_websockets = false
|
||||
responses_websockets_v2 = false
|
||||
|
||||
[model_providers.openai-http]
|
||||
# 自定义 provider 不能覆盖内置 openai,所以用新 ID 复制 OpenAI/Responses 语义并关闭 WebSocket 能力。
|
||||
name = "OpenAI"
|
||||
wire_api = "responses"
|
||||
requires_openai_auth = true
|
||||
supports_websockets = false
|
||||
|
||||
[notice]
|
||||
# 这些开关用于隐藏某些“迁移/提示”类消息,减少噪音(仅影响 UI,不影响核心功能)。
|
||||
hide_gpt5_1_migration_prompt = true
|
||||
"hide_gpt-5.1-codex-max_migration_prompt" = true
|
||||
hide_rate_limit_model_nudge = true
|
||||
|
||||
[notice.model_migrations]
|
||||
# 模型迁移映射:
|
||||
# - 当某些老模型名不可用/被迁移时,用这里的映射做自动替换。
|
||||
# - 建议只保留你确实用得到的映射,避免未来产生“我没注意但被自动换了”的困惑。
|
||||
"gpt-5.1-codex-max" = "gpt-5.2-codex"
|
||||
"gpt-5.2" = "gpt-5.4"
|
||||
|
||||
# ==================== 本地模型 Profiles ====================
|
||||
|
||||
[profiles.ollama-gemma4]
|
||||
# WSL 内部的 Codex CLI 通过 localhost 转发调用 Win11 Ollama。
|
||||
# 该 provider 为 Codex CLI 0.125.0 内置本地 provider,默认访问 http://localhost:11434/v1。
|
||||
model = "gemma4:31b"
|
||||
model_provider = "ollama"
|
||||
model_reasoning_effort = "medium"
|
||||
|
||||
[profiles.ollama-gemma4-262k]
|
||||
# 基于 gemma4:31b 的派生模型,强制 Ollama 运行上下文为模型理论上限 262144。
|
||||
# 注意:这是理论上限配置,显存/内存压力极高,Codex agent 实用性可能很差。
|
||||
model = "gemma4-31b-262k"
|
||||
model_provider = "ollama"
|
||||
model_reasoning_effort = "medium"
|
||||
|
||||
[projects."/home/lenovo/.projects/cat/tradecat"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/zip/vibe-coding-cn"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/c/Users/13208"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.projects/cat/zip/tradecat-20260324"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/c/Users/13208/Downloads"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.projects/skill"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/d/.projects/研究/tasks+任务包"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.projects/cat/tradecat-public"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/d/.projects/研究/dataset-first"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/d/.projects/研究/女娲/raw/cz-skill"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.codex"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/d/.projects/研究/币安人生"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/d/.projects/XHS-Downloader"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.projects/cat/fatecat"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.projects/cat/predictcat"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.projects/cat"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.projects/cat/catkey"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/d/.projects/研究/raw/量化交易/交易猫开发实践"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/home/lenovo/.projects/vibe-coding-cn"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/mnt/c/Users/13208/Downloads/cdda-windows-with-graphics-and-sounds-x64-2026-05-02-1743"]
|
||||
trust_level = "trusted"
|
||||
|
||||
# ==================== MCP Servers(示例,默认关闭) ====================
|
||||
# 说明:
|
||||
# - 下面这些块默认都注释掉,作为“可复制的模板”。
|
||||
# - 启用方式:取消注释对应的 `[mcp_servers."name"]` 段,并按需修改 `command/args/cwd`。
|
||||
# - 维护原则:宁可少开,按需启用;避免“全开导致启动慢/不稳定/难排障”。
|
||||
|
||||
# Context7 - 最新官方文档 MCP
|
||||
# [mcp_servers."context7"]
|
||||
# command = "npx"
|
||||
# args = ["-y", "@upstash/context7-mcp@latest"]
|
||||
# startup_timeout_ms = 20000
|
||||
|
||||
# # Completion Notifier - 完成声音提示
|
||||
# [mcp_servers."completion-notifier"]
|
||||
# command = "node"
|
||||
# args = ["/home/lenovo/.codex/mcp-servers/completion-notifier/#index.js"]
|
||||
# startup_timeout_ms = 20000
|
||||
|
||||
# chrome-devtools
|
||||
# [mcp_servers."chrome-devtools"]
|
||||
# command = "npx"
|
||||
# args = ["-y", "chrome-devtools-mcp@latest"]
|
||||
# startup_timeout_ms = 20000
|
||||
|
||||
# [mcp_servers."playwright"]
|
||||
# command = "npx"
|
||||
# args = ["-y", "@playwright/mcp@latest"]
|
||||
# startup_timeout_ms = 20000
|
||||
|
||||
# [mcp_servers."puppeteer"]
|
||||
# command = "npx"
|
||||
# args = ["-y", "puppeteer-mcp-server"]
|
||||
# startup_timeout_ms = 20000
|
||||
|
||||
# [mcp_servers."n8n"]
|
||||
# command = "npx"
|
||||
# args = ["-y", "n8n-mcp@latest"]
|
||||
# startup_timeout_ms = 20000
|
||||
|
||||
# [mcp_servers."maverick"]
|
||||
# command = "npx"
|
||||
# args = ["-y", "mcp-remote", "http://localhost:8003/sse/"]
|
||||
# cwd = "/home/lenovo/maverick-mcp"
|
||||
# startup_timeout_ms = 20000
|
||||
|
||||
# [mcp_servers."happy"]
|
||||
# command = "happy"
|
||||
# args = ["codex"]
|
||||
# startup_timeout_ms = 20000
|
||||
|
||||
# Augment - 代码库检索 MCP
|
||||
# [mcp_servers."auggie-mcp"]
|
||||
# command = "auggie"
|
||||
# args = ["-w", "/mnt/c/Users/lenovo", "--mcp"]
|
||||
# startup_timeout_ms = 200000
|
||||
|
||||
Executable
+206
@@ -0,0 +1,206 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
RAW_BASE_DEFAULT="https://raw.githubusercontent.com/tukuaiai/vibe-coding-cn/develop/tools/config/.codex"
|
||||
RAW_BASE="${VIBE_CODING_CODEX_RAW_BASE:-$RAW_BASE_DEFAULT}"
|
||||
CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
|
||||
PROFILE="safe"
|
||||
DRY_RUN="0"
|
||||
RESTORE_LATEST="0"
|
||||
|
||||
usage() {
|
||||
cat <<'USAGE'
|
||||
Install vibe-coding-cn Codex CLI config with backup and rollback.
|
||||
|
||||
Usage:
|
||||
install.sh [--profile safe|power] [--codex-home PATH] [--restore-latest] [--dry-run]
|
||||
|
||||
Profiles:
|
||||
safe Public default. No danger-full-access, no approval_policy=never.
|
||||
power High-permission local profile. Requires a fully trusted machine/repo.
|
||||
|
||||
Environment:
|
||||
CODEX_HOME Target Codex home. Default: ~/.codex
|
||||
VIBE_CODING_CODEX_RAW_BASE Source base URL or local directory for assets.
|
||||
|
||||
Examples:
|
||||
curl -fsSL https://raw.githubusercontent.com/tukuaiai/vibe-coding-cn/develop/tools/config/.codex/install.sh | bash
|
||||
curl -fsSL https://raw.githubusercontent.com/tukuaiai/vibe-coding-cn/develop/tools/config/.codex/install.sh | bash -s -- --profile power
|
||||
bash ~/.codex/backups/vibe-coding-cn/LATEST/restore.sh
|
||||
USAGE
|
||||
}
|
||||
|
||||
log() {
|
||||
printf '[vibe-coding-cn codex] %s\n' "$*"
|
||||
}
|
||||
|
||||
die() {
|
||||
printf '[vibe-coding-cn codex] ERROR: %s\n' "$*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
--profile)
|
||||
[ "$#" -ge 2 ] || die "--profile requires safe or power"
|
||||
PROFILE="$2"
|
||||
shift 2
|
||||
;;
|
||||
--codex-home)
|
||||
[ "$#" -ge 2 ] || die "--codex-home requires a path"
|
||||
CODEX_HOME="$2"
|
||||
shift 2
|
||||
;;
|
||||
--restore-latest)
|
||||
RESTORE_LATEST="1"
|
||||
shift
|
||||
;;
|
||||
--dry-run)
|
||||
DRY_RUN="1"
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
die "unknown argument: $1"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "$PROFILE" in
|
||||
safe)
|
||||
SOURCE_CONFIG="config.toml"
|
||||
SOURCE_AGENTS="AGENTS.safe.md"
|
||||
;;
|
||||
power)
|
||||
SOURCE_CONFIG="config.power.toml"
|
||||
SOURCE_AGENTS="AGENTS.md"
|
||||
;;
|
||||
*)
|
||||
die "unsupported profile: $PROFILE"
|
||||
;;
|
||||
esac
|
||||
|
||||
CODEX_HOME="${CODEX_HOME/#\~/$HOME}"
|
||||
BACKUP_ROOT="$CODEX_HOME/backups/vibe-coding-cn"
|
||||
LATEST_LINK="$BACKUP_ROOT/LATEST"
|
||||
|
||||
restore_latest() {
|
||||
[ -e "$LATEST_LINK/restore.sh" ] || die "missing latest restore script: $LATEST_LINK/restore.sh"
|
||||
log "restoring latest backup from $LATEST_LINK"
|
||||
bash "$LATEST_LINK/restore.sh"
|
||||
}
|
||||
|
||||
if [ "$RESTORE_LATEST" = "1" ]; then
|
||||
restore_latest
|
||||
exit 0
|
||||
fi
|
||||
|
||||
fetch_asset() {
|
||||
local name="$1"
|
||||
local out="$2"
|
||||
|
||||
if [ -d "$RAW_BASE" ]; then
|
||||
cp "$RAW_BASE/$name" "$out"
|
||||
else
|
||||
command -v curl >/dev/null 2>&1 || die "curl is required when RAW_BASE is remote"
|
||||
curl -fsSL "$RAW_BASE/$name" -o "$out"
|
||||
fi
|
||||
}
|
||||
|
||||
backup_one() {
|
||||
local name="$1"
|
||||
local src="$CODEX_HOME/$name"
|
||||
local dst="$BACKUP_DIR/$name"
|
||||
|
||||
if [ -f "$src" ]; then
|
||||
cp "$src" "$dst"
|
||||
else
|
||||
: > "$BACKUP_DIR/.missing-$name"
|
||||
fi
|
||||
}
|
||||
|
||||
write_restore_script() {
|
||||
local codex_home_q backup_dir_q
|
||||
printf -v codex_home_q '%q' "$CODEX_HOME"
|
||||
printf -v backup_dir_q '%q' "$BACKUP_DIR"
|
||||
|
||||
cat > "$BACKUP_DIR/restore.sh" <<RESTORE
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
CODEX_HOME=$codex_home_q
|
||||
BACKUP_DIR=$backup_dir_q
|
||||
|
||||
restore_file() {
|
||||
local name="\$1"
|
||||
mkdir -p "\$CODEX_HOME"
|
||||
if [ -f "\$BACKUP_DIR/\$name" ]; then
|
||||
cp "\$BACKUP_DIR/\$name" "\$CODEX_HOME/\$name"
|
||||
printf '[vibe-coding-cn codex] restored %s\n' "\$CODEX_HOME/\$name"
|
||||
elif [ -f "\$BACKUP_DIR/.missing-\$name" ]; then
|
||||
rm -f "\$CODEX_HOME/\$name"
|
||||
printf '[vibe-coding-cn codex] removed %s because it did not exist before install\n' "\$CODEX_HOME/\$name"
|
||||
else
|
||||
printf '[vibe-coding-cn codex] skip %s: no backup marker\n' "\$name"
|
||||
fi
|
||||
}
|
||||
|
||||
restore_file config.toml
|
||||
restore_file AGENTS.md
|
||||
RESTORE
|
||||
chmod +x "$BACKUP_DIR/restore.sh"
|
||||
}
|
||||
|
||||
install_one() {
|
||||
local src="$1"
|
||||
local name="$2"
|
||||
install -m 600 "$src" "$CODEX_HOME/$name"
|
||||
log "installed $CODEX_HOME/$name"
|
||||
}
|
||||
|
||||
TIMESTAMP="$(date +%Y%m%d-%H%M%S)"
|
||||
BACKUP_DIR="$BACKUP_ROOT/$TIMESTAMP"
|
||||
TMP_DIR="$(mktemp -d)"
|
||||
trap 'rm -rf "$TMP_DIR"' EXIT
|
||||
|
||||
log "profile=$PROFILE"
|
||||
log "source=$RAW_BASE"
|
||||
log "codex_home=$CODEX_HOME"
|
||||
|
||||
if [ "$DRY_RUN" = "1" ]; then
|
||||
log "dry run only; no files will be changed"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p "$CODEX_HOME" "$BACKUP_DIR"
|
||||
backup_one config.toml
|
||||
backup_one AGENTS.md
|
||||
write_restore_script
|
||||
|
||||
cat > "$BACKUP_DIR/MANIFEST.txt" <<MANIFEST
|
||||
profile=$PROFILE
|
||||
source=$RAW_BASE
|
||||
codex_home=$CODEX_HOME
|
||||
created_at=$TIMESTAMP
|
||||
restore=$BACKUP_DIR/restore.sh
|
||||
MANIFEST
|
||||
|
||||
rm -rf "$LATEST_LINK"
|
||||
if ! ln -s "$BACKUP_DIR" "$LATEST_LINK" 2>/dev/null; then
|
||||
mkdir -p "$LATEST_LINK"
|
||||
cp "$BACKUP_DIR/restore.sh" "$LATEST_LINK/restore.sh"
|
||||
printf '%s\n' "$BACKUP_DIR" > "$LATEST_LINK/BACKUP_DIR"
|
||||
fi
|
||||
|
||||
fetch_asset "$SOURCE_CONFIG" "$TMP_DIR/config.toml"
|
||||
fetch_asset "$SOURCE_AGENTS" "$TMP_DIR/AGENTS.md"
|
||||
|
||||
install_one "$TMP_DIR/config.toml" config.toml
|
||||
install_one "$TMP_DIR/AGENTS.md" AGENTS.md
|
||||
|
||||
log "backup saved: $BACKUP_DIR"
|
||||
log "restore command: bash $BACKUP_DIR/restore.sh"
|
||||
log "latest restore command: bash $LATEST_LINK/restore.sh"
|
||||
@@ -7,6 +7,8 @@
|
||||
- 配置文件必须是可公开审查的模板或基线,不得包含真实密钥。
|
||||
- 本机专用配置应放在用户本地目录,不直接提交到仓库。
|
||||
- 修改 Codex 配置时,同步更新 `tools/config/.codex/README.md` 和相关 getting-started 文档。
|
||||
- 公开默认配置不得包含本机 `projects` 信任路径;高权限配置必须显式标注风险并通过独立 profile 安装。
|
||||
- 一键安装脚本必须先备份用户现有配置,并提供恢复脚本。
|
||||
|
||||
## 验证
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
|
||||
- 配置位置:`tools/config/.codex/`
|
||||
- 使用说明:`tools/config/.codex/README.md`
|
||||
|
||||
- 一键安装:支持安全默认配置、高权限配置、安装前备份和恢复脚本。
|
||||
|
||||
Reference in New Issue
Block a user