终端级 AI 编程工具已成为开发者的核心生产力。本文系统整理 Claude Code 和 OpenAI Codex 的实战技巧,帮你少踩坑、省 Token、提效率。


一、Claude Code 使用技巧

基础篇

1. 把需求说具体

AI 上下文有限制,代码量太长可能输出不全甚至被截断。

❌ 差:帮我写一个用户管理系统
✅ 好:帮我写一个用户注册接口,使用 Express + TypeScript,
       包含邮箱验证、密码哈希(bcrypt)、JWT 返回,
       错误统一用 ApiError 类抛出
2. 先理解项目再开动

在修改代码之前,先让 Claude 理解你的代码:

> 阅读这个项目的代码结构,理解各模块的职责和依赖关系
> 这个项目的数据流是怎样的?从请求到响应经过哪些层?
> src/services/ 目录下的服务之间有什么依赖关系?
3. 分步执行复杂任务

每一步完成后你都可以先 review/测试,再让 AI 执行下一步:

# 第一步
> 先帮我分析当前支付模块的问题

# 确认后
> 好的,按照你的分析,先重构 PaymentService 类

# 验证后
> 通过了,接下来处理 OrderService 的适配
4. 善用深度思考模式

在 Claude Code 中使用 “think” 关键词激活深度思考:

> think about how to refactor this authentication module
> think harder about the race condition in this code
> ultrathink about the architecture for this distributed system
级别 关键词 适用场景
普通思考 think 一般分析
深度思考 think harder 复杂逻辑
超级思考 ultrathink 架构级决策

进阶篇

5. 配置 CLAUDE.md 记忆文件

CLAUDE.md 是 Claude Code 自动读取的记忆文件,类似 Cursor 的 rules,但更强大:

# CLAUDE.md

## 项目概述
这是一个基于 Next.js 14 的电商平台,使用 App Router。

## 技术栈
- Frontend: React 18 + TypeScript + Tailwind CSS
- Backend: Next.js API Routes + Prisma + PostgreSQL
- Auth: NextAuth.js v5

## 代码规范
- 使用 Conventional Commits
- 组件使用 PascalCase,工具函数使用 camelCase
- 所有 API 返回统一格式:{ success, data, error }

## 重要约束
- 不要修改 /src/core/ 下的文件
- 数据库迁移必须向后兼容
- 所有新接口必须有单元测试

可以在多个位置放置 CLAUDE.md 文件,Claude Code 会递归读取:

~/CLAUDE.md                    # 全局(所有项目生效)
./CLAUDE.md                    # 项目根目录
./src/CLAUDE.md                # 子目录(更具体的规则)
./src/components/CLAUDE.md     # 更深层级
6. 跳过权限确认(Bypass Mode)

每次都要点确认太烦了:

# 单次启动
claude --dangerously-skip-permissions

# 设置别名(推荐)
alias cc='claude --dangerously-skip-permissions'
echo "alias cc='claude --dangerously-skip-permissions'" >> ~/.zshrc

⚠️ 注意:这相当于 Cursor 的老 YOLO 模式。理论上有风险,但实际使用中极少出问题。

7. 模型切换

Claude Code 支持模型灵活切换:

/model              # 查看当前模型
/model opus         # 切换到 Claude Opus(Max 用户)
/model sonnet       # 切换回 Claude Sonnet(推荐)

💡 强烈推荐 Sonnet:体验与 Opus 差别不大,但计费仅为 1/5。

8. 对话式 Git 操作

不用记繁琐的 Git 命令:

> 帮我把这次改动提交,用 conventional commit 格式
> 创建一个新分支 feature/payment-refactor,把最近3次提交 cherry-pick 过去
> 帮我 rebase 到 main,有冲突的话保留我的改动
9. 非交互模式(单次执行)

适合脚本化和 CI/CD 集成:

# 单次执行后退出
claude -p "列出 src/ 下所有超过 200 行的 TypeScript 文件"

# 管道模式
cat error.log | claude -p "分析这个错误日志,找出根因"

# 结合其他工具
git diff HEAD~3 | claude -p "总结这3次提交的改动,写成 changelog"

高级篇

10. 配置 Hooks(生命周期钩子)

Hooks 是在特定事件中自动运行的 shell 命令:

// .claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write $CLAUDE_FILE_PATH"
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "say \"job's done!\""
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "terminal-notifier -message 'Claude needs input' -title 'Claude Code'"
          }
        ]
      }
    ]
  }
}

实用 Hook 场景:

Hook 事件 用途示例
PreToolUse 拦截敏感文件操作(.env、secrets)
PostToolUse (Write) 自动格式化、自动运行测试
Stop 任务完成后系统通知
Notification Claude 需要输入时弹窗提醒
11. 自定义命令(Slash Commands)

创建项目级快捷命令:

<!-- .claude/commands/commit.md -->
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
description: Create a conventional commit from current changes

分析当前 git diff,写一个 Conventional Commit:
- subject <= 72 chars
- 简洁的 body 描述为什么改
- Stage 相关文件并提交
<!-- .claude/commands/frontend/component.md -->
description: Generate a React component with tests

创建一个 React 组件:
- 使用 TypeScript + Tailwind CSS
- 包含 Props 接口定义
- 生成对应的 .test.tsx 文件
- 导出到 index.ts barrel file

使用方式:

/commit
/frontend/component UserProfile
12. 配置项目级 Agent

定义具有特定角色的智能体:

<!-- .claude/agents/code-reviewer.md -->
# Code Reviewer Agent

## 角色
你是一个严格的代码审查员。

## 工具限制
仅允许:Read, Search, Grep
禁止:Write, Edit, Bash

## 审查标准
- 安全漏洞(SQL注入、XSS、SSRF)
- 性能问题(N+1查询、内存泄漏)
- 类型安全(any 的使用)
- 错误处理(未捕获的 Promise)
13. MCP 连接外部服务

使 Claude 能连接 Jira、GitHub、Notion、Sentry 等:

# 连接后可以直接说:
> 实现 JIRA-ENG-4521 中描述的功能
> 查看 Sentry 上最近的报错,分析根因
> 把这个方案同步到 Notion 的技术文档中
14. 安全防护 Hook

防止 AI 误操作敏感文件:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "python3 - <<'PY'\nimport json,sys\np=json.load(sys.stdin).get('tool_input',{}).get('file_path','')\nblock=['.env','/secrets/','.git/']\nsys.exit(2 if any(b in p for b in block) else 0)\nPY"
          }
        ]
      }
    ]
  }
}
15. 状态栏自定义

在终端显示项目状态信息:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

二、Codex 使用技巧

基础篇

1. 提供清晰的代码上下文

在提示中加入函数名、类名或代码片段,帮助 Codex 快速定位:

codex "在 UserService.createUser() 方法中添加邮箱格式验证,
       验证失败抛出 ValidationError"
2. 设置高推理等级

默认推理等级为中等,复杂任务建议提高:

# 单次使用
codex --model gpt-5-codex -c model_reasoning_effort="high"

# 别名(推荐)
alias codex='codex -m gpt-5-codex -c model_reasoning_effort="high" -c model_reasoning_summary_format=experimental --search --dangerously-bypass-approvals-and-sandbox'
3. 拆分大型任务

将复杂任务分解为小步骤,让 Codex 更容易处理和测试:

# 不要这样
codex "重构整个项目的认证系统"

# 这样做
codex "第一步:分析当前 auth 模块的依赖关系"
codex "第二步:将 JWT 逻辑从 Controller 抽到 AuthService"
codex "第三步:添加 refresh token 机制"
4. 用于调试

把详细日志或错误堆栈粘贴进去,让 Codex 并行分析:

codex "分析以下错误堆栈,找出根因并修复:
$(cat /tmp/error.log)"

进阶篇

5. 初始化 AGENTS.md

类似 Claude Code 的 CLAUDE.md,为 Codex 提供项目上下文:

codex /init    # 自动生成 AGENTS.md

AGENTS.md 示例:

# AGENTS.md

## 项目信息
- 语言:TypeScript
- 框架:NestJS + Prisma
- 测试:Jest + Supertest

## 构建命令
- 安装依赖:pnpm install
- 运行测试:pnpm test
- 构建:pnpm build

## 代码风格
- 使用 ESLint + Prettier
- import 排序:内置 → 第三方 → 本地
- 每个模块一个目录,包含 controller/service/dto/entity

## 约束
- 不要使用 any 类型
- 所有数据库操作必须在 Service 层
- Controller 只做参数校验和响应格式化
6. 权限模式选择

根据场景选择合适的安全级别:

模式 命令 适用场景
只读 --sandbox read-only --ask-for-approval never 代码审查、分析
自动编辑 --sandbox workspace-write --ask-for-approval untrusted 日常开发
全自动 --dangerously-bypass-approvals-and-sandbox 信任环境下的批量任务
7. 通过 API 使用(免费账户)

没有订阅也能用:

# 切换为 API 认证方式
codex --config preferred_auth_method="apikey"

# 切换回 ChatGPT 订阅认证
codex --config preferred_auth_method="chatgpt"
8. 尝试开放式提示

不仅限于具体编码任务:

codex "审查 src/services/ 下的所有文件,找出潜在的安全漏洞"
codex "为这个项目的 README 补充 API 文档"
codex "头脑风暴:这个模块有哪些性能优化空间?"
codex "清理 dead code,找出未使用的导出"

高级篇

9. 配置 MCP 服务器

在 Codex 中使用 MCP 扩展能力:

// codex 配置文件
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    }
  }
}
10. 模型选择策略

Codex 支持多种模型:

模型 适用场景 命令
gpt-5-codex 代码专用(默认,最强) -m gpt-5-codex
gpt-5 通用任务 -m gpt-5
o3 长链推理 -m o3
o4-mini 轻量快速 -m o4-mini
# 高推理 + 高级模型
codex -m gpt-5-codex -c model_reasoning_effort="high"

# 快速简单任务
codex -m o4-mini -c model_reasoning_effort="low"
11. 自定义工作方式

告诉 Codex 使用特定提交规范、遵循模板或避免某些命令:

codex "修复这个 bug,但是:
- 不要使用 git force push
- commit message 使用 fix: 前缀
- 修改后运行 pnpm test 确认通过
- 不要修改 package.json"
12. 启用搜索功能

让 Codex 联网查找最新文档和解决方案:

codex --search "使用最新版 Prisma 5.x 的语法重写这个查询"

三、通用最佳实践

1. Prompt 工程核心原则

两个工具通用的提示技巧:

📌 一句话总结:
写提示时要「明确上下文 + 给出验证方法 + 合理拆解任务 + 灵活定制」
原则 Claude Code Codex
明确上下文 CLAUDE.md + 对话开头 AGENTS.md + 提示内
给出验证方法 “运行 pnpm test 确认” “通过现有测试套件”
合理拆解 分步对话 拆分多次调用
灵活定制 Hooks + Commands Config + Flags

2. 工作循环认知

两个工具的核心工作循环是相同的:

┌─────────────────────────────────────────┐
│  1. 收集上下文(看代码、文件、错误信息)   │
│           ↓                              │
│  2. 采取行动(编辑文件、运行命令、搜索)   │
│           ↓                              │
│  3. 验证结果(运行测试、检查输出)         │
│           ↓                              │
│  4. 循环直到完成                          │
└─────────────────────────────────────────┘

3. 省 Token 的通用技巧

技巧 效果 适用工具
写好记忆文件 减少重复解释项目背景 两者
先 Plan 再执行 减少无效生成和回滚 两者
及时清理上下文 避免长对话 Token 爆炸 Claude Code
任务描述一次到位 减少 retry 和追问 Codex
用只读模式做分析 避免不必要的写操作 两者

4. 选择建议

场景 推荐 原因
需要深度理解大项目 Claude Code 项目级上下文理解最强
批量自动化任务 Codex 异步执行 + 云端沙盒
需要联网搜索资料 Codex 内置搜索功能
代码审查 Claude Code MCP + 自定义 Agent
调试复杂 bug 两者皆可 Claude Code 更擅长推理
CI/CD 集成 两者皆可 都支持非交互模式

四、速查对照表

功能 Claude Code Codex
记忆文件 CLAUDE.md AGENTS.md
跳过确认 --dangerously-skip-permissions --dangerously-bypass-approvals-and-sandbox
初始化配置 手动创建 /init
深度思考 think / think harder -c model_reasoning_effort="high"
模型切换 /model --model / -m
非交互模式 claude -p "..." codex "..."
自定义命令 .claude/commands/*.md AGENTS.md 内定义
外部服务 MCP 协议 MCP + 内置搜索
Hook 系统 .claude/settings.json hooks 暂无原生支持
上下文压缩 /compact 自动管理
会话恢复 --resume 线程持久化

五、总结

Claude Code 像一个经验丰富的高级工程师 —— 理解全局、善于重构、注重架构。

Codex 像一个高效的执行团队 —— 批量处理、异步运行、自动验收。

两者并不冲突,最高效的方式是组合使用

复杂设计 → Claude Code /plan
         ↓
执行重构 → Claude Code /goal 或 Codex 批量任务
         ↓
代码审查 → Claude Code Agent
         ↓
批量修复 → Codex 异步并行

核心心法:

  1. 上下文为王 —— 写好 CLAUDE.md / AGENTS.md
  2. 分步为安 —— 拆分任务,逐步验证
  3. 先理解后动手 —— 让 AI 先读代码再改代码
  4. 验证闭环 —— 每次改动都要有测试确认

AI 不会淘汰程序员,但不会用 AI 的除外。会用 AI 的程序员才有未来!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐