我们今天介绍三款AI工具: Codex CLI(OpenAI 官方终端 Agent)、 Claude Code CLI(Anthropic 项目级编码 Agent)、 Windsurf(Cognition 出品的 AI IDE)。
这三个工具的底层范式相同(LLM 推理 → 工具调用 → 用户审批),但在实现细节上,这三个工具在审批粒度、记忆机制、交互形态上等都有自己的特点。 本篇按“是什么?怎么安装?怎么使用?各自的局限是什么?”各个角度详细讲解。
1、三个工具速览
Codex CLI 和 Claude Code CLI 都是纯终端 REPL:在终端打 prompt,看 diff,按键审批。Windsurf 是桌面应用(基于 VS Code fork),但它装好后也提供 windsurf . 命令行入口,从这一点上勉强算半个 CLI 工具。
@openai/codex | ||||
@anthropic-ai/claude-code | ||||
2、Codex CLI:OpenAI 官方终端 Agent
Codex CLI 是 OpenAI 在 2025 年开源的本地终端编码 Agent,包名 @openai/codex,仓库 openai/codex。设计目标是让 ChatGPT 的代码能力直接落地到本机终端,读取本地代码、提议改动、执行 shell 命令,每一步都走可配置的 approval 流程。
它复用 ChatGPT 订阅或 OpenAI API key,对已经付费 ChatGPT Plus/Pro 的开发者来说边际成本几乎为零。
2.1 codex的三种安装方式
# 方式 1:npm 全局安装(最常见)npm install -g @openai/codex# 方式 2:Homebrew(macOS)brew install codex# 方式 3:从 GitHub Releases 下载二进制# https://github.com/openai/codex/releases# 适合公司网络限制 npm 注册表的环境# 验证安装codex --version三种方式选一种就行。公司网络代理复杂的话,brew 或 GitHub Releases 比 npm 更稳。
2.2 Codex CLI使用方式
# 进入项目目录cd ~/code/my-project# 启动 REPL,首次会引导登录codex启动后有两条登录路径:
ChatGPT 登录(推荐):弹浏览器走 OAuth,绑已有的 ChatGPT 账号 API key: export OPENAI_API_KEY=sk-...,或写入~/.codex/config.toml
进入 REPL 后直接打 prompt:
> Add a hello-world function to main.py and call itCodex 会逐步提议动作("我想读 main.py"、"我想加一个函数"、"我想跑 python main.py"),每一步等用户在终端按 同意 或 拒绝 。

2.3 怎么用:approval 四种策略
Codex CLI 的特色是审批策略可调。共四种策略,通过 --ask-for-approval(简写 -a)切换。
on-request | ||
unless-trusted | ||
never | ||
on-failure |
Sandbox 模式是另一组开关,用 -s 控制:read-only(只读)、workspace-write(只能改当前工作区)、danger-full-access(任意访问,慎用)。两组开关组合使用:
# 完全自动模式:approval=never + sandbox=workspace-writecodex --full-auto# 极速危险模式:跳过所有审批和 sandbox# 仅推荐在容器、VM、一次性分支里使用codex --dangerously-bypass-approvals-and-sandbox每次审批弹窗里有四个选项:[a] 接受这一次、[s] 本会话内同类请求都通过、[p] 写入 execpolicy 规则、[d] 拒绝。选 [p] 之后,规则会被记录到 .codex/execpolicy/ 目录,后续匹配自动放行。
2.4 解决什么 / 局限
--full-auto |
3、Claude Code CLI:Anthropic 项目级编码 Agent
Claude Code CLI 是 Anthropic 官方的终端编码 Agent,按需读取代码库文件,执行命令,编辑文件,并能管理 git 操作。最大特色是项目级记忆:通过 CLAUDE.md 文件让 Agent 跨会话保持对项目的认知。
包名 @anthropic-ai/claude-code。从 v2 开始官方推荐使用 native installer 而非 npm(npm 安装权限问题较多)。
3.1 Claude Code的四种安装路径
# 方式 1:原生安装器(官方推荐,零依赖,自动更新)curl -fsSL https://claude.ai/install.sh | bash# 方式 2:Homebrew(macOS)brew install --cask claude-code# 方式 3:Windows PowerShell(原生 Windows 支持)irm https://claude.ai/install.ps1 | iex# 方式 4:npm(自 v2.1.15 起官方标记为 deprecated,仅推荐用于 CI / 版本固定 / Node 工作流)# 启动时会显示黄色 deprecated 横幅npm install -g @anthropic-ai/claude-code# 验证claude --version系统要求:
⚠ npm 安装务必不要加 sudo。一旦用 sudo 装过,~/.npm 缓存归 root 所有,后续 npm install 全部失败。踩过这个坑的人不少,最快的恢复办法是删 ~/.npm 目录后用 nvm 重装 Node。
3.2 Claude Code CLI使用方式
# 进入项目目录后启动cd ~/code/my-projectclaude# REPL 内首次登录> /login # 浏览器跳转 Anthropic OAuth# 或者在 shell 中预设 API keyexport ANTHROPIC_API_KEY=sk-ant-xxxclaude
首个任务建议照着官方"first day"指引走一遍:
> Tell me about this codebase. What's the entry point?> Find where users are authenticated.> Add a docstring to the function `parse_config` in src/config.py.每一步 Claude 会主动读相关文件,给出结论或 diff,等用户确认。
3.3 CLAUDE.md 项目记忆
每次会话的 context window 都是空的。CLAUDE.md 是把项目知识固化下来的关键机制,Claude 在每次会话开始时自动读取。
CLAUDE.md 支持四个层级,加载顺序从广到窄(后者覆盖前者):
/Library/Application Support/ClaudeCode/CLAUDE.md;Linux:/etc/claude-code/CLAUDE.md | ||
~/.claude/CLAUDE.md | ||
./CLAUDE.md./.claude/CLAUDE.md | ||
./CLAUDE.local.md | .gitignore |
进入项目后第一件事:
> /init# Claude 会扫描代码库,自动写一份 CLAUDE.md生成的文件是 markdown 格式,长这样:
# Project: my-flask-app## Build- Python 3.11- Install: `pip install -r requirements.txt`- Test: `pytest tests/`## Conventions- Routes go in app.py- Always add type hints to function signatures- Tests use pytest fixtures from conftest.py## Architecture- /src: Flask application code- /tests: pytest test suite- /scripts: one-off scripts什么时候应该往 CLAUDE.md 里加内容?三个信号:Claude 第二次犯同样的错;同一句更正在不同会话中重复输入;新同事加入也需要被告知同样的上下文。
3.4 核心 slash 命令
Slash 命令是 Claude Code 在 REPL 内的主要控制方式。下表是日常高频的几个:
/init | |
/clear | |
/compact | |
/context | |
/login/logout | |
/model | |
/cost | |
/resume | |
/help |
文件改动前 Claude 总会展示 diff 并要求确认。三种审批模式用 Shift+Tab 循环切换:默认(每次都问)、Accept Edits(自动接受文件改动)、Plan(只给计划不动手)。
3.5 解决什么 / 局限
/compact 能续命长会话 |
4、Windsurf:AI IDE
Windsurf 不是纯命令行工具,而是基于 VS Code fork 的 AI IDE。早期由 Codeium 开发,2025 年 7 月被 Cognition(Devin 团队)收购,并整合了自有模型 SWE-1.5(与 Cerebras 合作部署,推理峰值 950 tok/s,约为 Claude Sonnet 4.5 的 13 倍速度)和 SWE-grep(代码检索专用)。当前 Cascade 模型菜单里还能看到更新的 SWE-1.6。
它也提供 CLI 入口:安装时勾选 "Add windsurf to PATH",之后 windsurf . 就能从终端打开当前目录。
核心组件叫 Cascade,是一个 Agent 子系统,能读懂整个仓库、跨文件改代码、跑终端命令、读 lint 输出。
4.1 Windsurf安装方式
下载页:codeium.com/windsurf。提供 macOS / Windows / Ubuntu / 其它 Linux 的桌面安装包。
首次启动会引导导入 VS Code 或 Cursor 配置(包括快捷键、主题、扩展、设置),从这两款工具迁移过来基本零成本。
4.2 Windsurf使用:Cascade 双模式
打开 Cascade 的快捷键是 Cmd/Ctrl+L(Mac/Win 通用),或者点右上角 Cascade 图标。打开时如果编辑器或终端中有选中文本,会自动作为上下文注入。

Cascade 有两种模式。Code 模式直接修改代码库,可创建、编辑、删除文件,适合加功能、重构、修 bug 这类动手活;Chat 模式以解答问题为主,会建议代码片段供采纳,适合讨论方案、解释代码、查规范。
Chat 模式的一个隐藏好处:不消耗 flow action 配额。免费版用户碰到额度紧张时,把"问问题"类需求都丢给 Chat 模式能省不少。
4.3 Plans / Todo / Checkpoint
复杂任务下 Cascade 有三个独门机制:
队列消息(Queued Messages)也很实用:Cascade 还在执行时,可以继续输入下一条指令排队。空输入框按回车则立即发送当前队列。
4.4 怎么用:上下文与文件忽略
Cascade 默认会读整个仓库做上下文检索(这也是 SWE-grep 模型存在的原因)。要排除某些文件,用 .codeiumignore,语法和 .gitignore 完全一致:
# .codeiumignore# 排除大文件目录node_modules/dist/build/# 排除敏感配置.env.env.localsecrets/# 排除生成代码**/*.generated.ts__pycache__/企业用户可以放全局忽略文件 ~/.codeium/.codeiumignore,对所有 Windsurf 工作区生效。
4.5 解决什么 / 局限
5、三种工具对比
cd project && codex | cd project && claude | windsurf .Cmd+L | |
app.py、tests/,逐次审批 | |||
app.py → 审批;提议建 test_users.py → 审批 | Shift+Tab 切 Accept Edits 模式 | ||
pytest 命令 → 审批 → 看结果 | |||

小结
三个工具的核心定位再压缩一遍:Codex CLI 是细粒度审批的终端 Agent,适合 ChatGPT 用户和 CI 场景;Claude Code CLI 是带项目记忆的终端 Agent,适合多步骤改造和团队协作;Windsurf 是 IDE 形态的 AI 编辑器,适合可视化诉求强的多文件改造。三者底层范式相同,差异在审批粒度和记忆机制上。

点个关注呗~
夜雨聆风