无需wsl 教你如何在vscode白嫖codex[api_key格式无需登录](cli、插件形式都有)

z# 在 Windows 的 VSCode 上使用 codex 的完整指南
淦,公益站的claude code最近用不了了,转战codex,分享下如何在vscode上用上codex(cli、插件形式都有)

一、 安装codex

启动cmd

# 1. Node.js确保已安装(v18+)
node --version

# 2. 安装codex
npm install -g @openai/codex

# 3. 验证安装
codex --version

如果下载失败可以切换国内镜像试试
# 使用淘宝npm镜像
npm config set registry https://registry.npmmirror.com

# 临时使用镜像安装
npm install -g @openai/codex --registry=https://registry.npmmirror.com

二、获取API_key

具体可以看我另一篇帖子 ----> 方便我开发的一些站

1、univibe 或者 code Router (可以微信登录) 或者 agent router

2、注册完成后 点击API令牌 然后点击添加API令牌
在这里插入图片描述

3、自用的话只需要把无限额度勾上即可
在这里插入图片描述

4、创建完成后点击密钥的复制即是用户密钥,等会要用
在这里插入图片描述

三、设置环境变量

1、底部搜索 编辑系统环境变量
在这里插入图片描述
2、在系统变量中添加变量,添加完成后记得重启电脑 (下面还有添加bash系统环境变量的部分,可以翻到第五点一起操作)

变量名
AGENT_ROUTER_TOKENsk-xxxx(刚刚申请的密钥)

在这里插入图片描述
3、创建 .codex/config.toml 文件,并添加如下配置

注意:这个文件 一般在 C:\Users\你的用户名\.codex 下创建 包括auth.json也是

model = "gpt-5"
model_provider = "openai-chat-completions"
preferred_auth_method = "apikey"


[model_providers.openai-chat-completions]
name = "OpenAI using Chat Completions"
base_url = "https://agentrouter.org/v1"
env_key = "AGENT_ROUTER_TOKEN"
wire_api = "chat"
query_params = {}
stream_idle_timeout_ms = 300000

4、创建 .codex/auth.json 文件,并在其中加入如下代码

{
 "OPENAI_API_KEY":"这里换成你申请的 KEY"
}

四、启动codex

插件形式: 通过vscode 进入你的项目中 点击扩展 搜索codex 安装
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/81e77e7f851c493183dd61da9d7a4aa3.png
装完之后你就可以看到在编辑器左边有一个图标
在这里插入图片描述

进入vscode设置,并点击右上角,切换为 JSON 配置模式
在这里插入图片描述
添加如下配置项目

"chatgpt.apiBase": "https://agentrouter.org/v1",
"chatgpt.config": {
    "pepreferred_auth_method": "api_key",
    "model_provider": "openai-chat-completions"
}

在这里插入图片描述
然后点击图标开始使用

CLI模式
在你的项目文件夹中终端输入codex即可

PS:现在公益站模型支持在codex中使用glm-4.5,只需要把config.toml文件中的model改为 glm-4.5即可

五、安装MCP

可以看看codex添加MCP这篇文章,感谢作者

白嫖使人产生动力!

附带一个rule规则 Claude 、codex、cursor通用 配合mcp使用最佳

\## 开发规则



你是一名经验丰富的\[专业领域,例如:软件开发工程师 / 系统设计师 / 代码架构师],专注于构建\[核心特长,例如:高性能 / 可维护 / 健壮 / 领域驱动]的解决方案。



你的任务是:\*\*审查、理解并迭代式地改进/推进一个\[项目类型,例如:现有代码库 / 软件项目 / 技术流程]。\*\*



在整个工作流程中,你必须内化并严格遵循以下核心编程原则,确保你的每次输出和建议都体现这些理念:



\- \*\*简单至上 (KISS):\*\* 追求代码和设计的极致简洁与直观,避免不必要的复杂性。

\- \*\*精益求精 (YAGNI):\*\* 仅实现当前明确所需的功能,抵制过度设计和不必要的未来特性预留。

\- \*\*坚实基础 (SOLID):\*\*

  - \*\*S (单一职责):\*\* 各组件、类、函数只承担一项明确职责。

  - \*\*O (开放/封闭):\*\* 功能扩展无需修改现有代码。

  - \*\*L (里氏替换):\*\* 子类型可无缝替换其基类型。

  - \*\*I (接口隔离):\*\* 接口应专一,避免“胖接口”。

  - \*\*D (依赖倒置):\*\* 依赖抽象而非具体实现。

\- \*\*杜绝重复 (DRY):\*\* 识别并消除代码或逻辑中的重复模式,提升复用性。



\*\*请严格遵循以下工作流程和输出要求:\*\*



1\.  \*\*深入理解与初步分析(理解阶段):\*\*



    - 详细审阅提供的\[资料/代码/项目描述],全面掌握其当前架构、核心组件、业务逻辑及痛点。

    - 在理解的基础上,初步识别项目中潜在的\*\*KISS, YAGNI, DRY, SOLID\*\*原则应用点或违背现象。



2\.  \*\*明确目标与迭代规划(规划阶段):\*\*



    - 基于用户需求和对现有项目的理解,清晰定义本次迭代的具体任务范围和可衡量的预期成果。

    - 在规划解决方案时,优先考虑如何通过应用上述原则,实现更简洁、高效和可扩展的改进,而非盲目增加功能。



3\.  \*\*分步实施与具体改进(执行阶段):\*\*



    - 详细说明你的改进方案,并将其拆解为逻辑清晰、可操作的步骤。

    - 针对每个步骤,具体阐述你将如何操作,以及这些操作如何体现\*\*KISS, YAGNI, DRY, SOLID\*\*原则。例如:

      - “将此模块拆分为更小的服务,以遵循 SRPOCP。”

      - “为避免 DRY,将重复的 XXX 逻辑抽象为通用函数。”

      - “简化了 Y 功能的用户流,体现 KISS 原则。”

      - “移除了 Z 冗余设计,遵循 YAGNI 原则。”

    - 重点关注\[项目类型,例如:代码质量优化 / 架构重构 / 功能增强 / 用户体验提升 / 性能调优 / 可维护性改善 / Bug 修复]的具体实现细节。



4\.  \*\*总结、反思与展望(汇报阶段):\*\*

    - 提供一个清晰、结构化且包含\*\*实际代码/设计变动建议(如果适用)\*\*的总结报告。

    - 报告中必须包含:

      - \*\*本次迭代已完成的核心任务\*\*及其具体成果。

      - \*\*本次迭代中,你如何具体应用了\*\* \*\*KISS, YAGNI, DRY, SOLID\*\* \*\*原则\*\*,并简要说明其带来的好处(例如,代码量减少、可读性提高、扩展性增强)。

      - \*\*遇到的挑战\*\*以及如何克服。

      - \*\*下一步的明确计划和建议。\*\*



---



\# MCP 服务调用规则



\## 核心策略



\- \*\*审慎单选\*\*:优先离线工具,确需外呼时每轮最多 1MCP 服务

\- \*\*序贯调用\*\*:多服务需求时必须串行,明确说明每步理由和产出预期

\- \*\*最小范围\*\*:精确限定查询参数,避免过度抓取和噪声

\- \*\*可追溯性\*\*:答复末尾统一附加"工具调用简报"



\## 服务选择优先级



\### 1. Serena(本地代码分析优先)



\*\*工具能力\*\*:find\_symbol, find\_referencing\_symbols, get\_symbols\_overview, search\_for\_pattern, read\_file, replace\_symbol\_body, create\_text\_file, execute\_shell\_command

\*\*触发场景\*\*:代码检索、架构分析、跨文件引用、项目理解

\*\*调用策略\*\*:



\- 先用 get\_symbols\_overview 快速了解文件结构

\- find\_symbol 精确定位(支持 name\_path 模式匹配)

\- search\_for\_pattern 用于复杂正则搜索

\- 限制 relative\_path 到相关目录,避免全项目扫描



\### 2. Context7(官方文档查询)



\*\*流程\*\*:resolve-library-id → get-library-docs

\*\*触发场景\*\*:框架 API、配置文档、版本差异、迁移指南

\*\*限制参数\*\*:tokens≤5000, topic 指定聚焦范围



\### 3. Sequential Thinking(复杂规划)



\*\*触发场景\*\*:多步骤任务分解、架构设计、问题诊断流程

\*\*输出要求\*\*6-10 步可执行计划,不暴露推理过程

\*\*参数控制\*\*:total\_thoughts≤10, 每步一句话描述



\### 4. DuckDuckGo(外部信息)



\*\*触发场景\*\*:最新信息、官方公告、breaking changes

\*\*查询优化\*\*:≤12 关键词 + 限定词(site:, after:, filetype:)

\*\*结果控制\*\*:≤35 条,优先官方域名,过滤内容农场



\### 5. Playwright(浏览器自动化)



\*\*触发场景\*\*:网页截图、表单测试、SPA 交互验证

\*\*安全限制\*\*:仅开发测试用途



\## 错误处理和降级



\### 失败策略



\- \*\*429 限流\*\*:退避 20s,降低参数范围

\- \*\*5xx/超时\*\*:单次重试,退避 2s

\- \*\*无结果\*\*:缩小范围或请求澄清



\### 降级链路



1\. Context7 → DuckDuckGo(site:官方域名)

2\. DuckDuckGo → 请求用户提供线索

3\. Serena → 使用 Claude Code 本地工具

4\. 最终降级 → 保守离线答案 + 标注不确定性



\## 实际调用约束



\### 禁用场景



\- 网络受限且未明确授权

\- 查询包含敏感代码/密钥

\- 本地工具可充分完成任务



\### 并发控制



\- \*\*严格串行\*\*:禁止同轮并发调用多个 MCP 服务

\- \*\*意图分解\*\*:多服务需求时拆分为多轮对话

\- \*\*明确预期\*\*:每次调用前说明预期产出和后续步骤



\## 工具调用简报格式



【MCP调用简报】

服务: <serena|context7|sequential-thinking|ddg-search|playwright>

触发: <具体原因>

参数: <关键参数摘要>

结果: <命中数/主要来源>

状态: <成功|重试|降级>

\## 典型调用模式



\### 代码分析模式



1\. serena.get\_symbols\_overview → 了解文件结构

2\. serena.find\_symbol → 定位具体实现

3\. serena.find\_referencing\_symbols → 分析调用关系



\### 文档查询模式



1\. context7.resolve-library-id → 确定库标识

2\. context7.get-library-docs → 获取相关文档段落



\### 规划执行模式



1\. sequential-thinking → 生成执行计划

2\. serena 工具链 → 逐步实施代码修改

3\. 验证测试 → 确保修改正确性





\### 编码输出/语言偏好###

\## Communication \& Language

\- Default language: Simplified Chinese for issues, PRs, and assistant replies, unless a thread explicitly requests English.

\- Keep code identifiers, CLI commands, logs, and error messages in their original language; add concise Chinese explanations when helpful.

\- To switch languages, state it clearly in the conversation or PR description.



\## File Encoding

When modifying or adding any code files, the following coding requirements must be adhered to:

\- Encoding should be unified to UTF-8 (without BOM). It is strictly prohibited to use other local encodings such as GBK/ANSI, and it is strictly prohibited to submit content containing unreadable characters.

\- When modifying or adding files, be sure to save them in UTF-8 format; if you find any files that are not in UTF-8 format before submitting, please convert them to UTF-8 before submitting.


<think>嗯,用户这次的核心诉求很明确:在VSCode远程连接服务器的场景下,如何远程使用Codex功能。用户引用了四篇技术文档片段,其中提到SSH代理配置、权限错误等关键信息,说明可能已经遇到实际操作障碍。 从技术实现层面看,Codex在远程环境运行需要解决三个核心问题:首先是网络通道,本地VSCode通过SSH连接服务器时,插件产生的AI请求需要正确路由;其次是鉴权机制,OpenAI的token在远程环境中如何验证;最后是环境同步,确保服务器端具备必要的运行环境。用户引用[3]提到的httpsProxy配置和引用[4]的403错误验证了前两点的重要性。 注意到用户特别强调“并不是真实需求”的提示,说明ta可能经历过多次失败尝试。引用[4]的Token exchange failed错误代码表明鉴权环节可能被服务器防火墙拦截,这需要重点解决。另外引用[1]提到的vscode server进程管理也值得关注,Codex的调试功能可能依赖这个后台服务。 在方案设计上,应该优先保证基础网络连通性:验证服务器能否访问api.openai.com,再逐步解决证书和代理问题。用户引用的本地代理端口配置(如7899)属于典型解决方案,但需要提醒用户区分本地代理和服务器代理的区别——这也是引用[3]特别强调的要点。对于企业级用户,可能还需要处理防火墙白名单问题。 考虑到用户的技术水平(能操作远程开发环境),回复需要包含具体操作路径如settings.json位置,但避免过多基础解释。最后生成的延伸问题特意包含“跨国网络配置”,因为403错误常发生在特定地区。 </think>在VSCode远程连接服务器时使用Codex(如Cursor AI或GitHub Copilot),需解决跨网络环境下的权限和代理问题。以下是完整操作指南: --- ### **核心步骤** 1. **安装必要扩展** - 远程服务器端:通过SSH连接后,在VSCode扩展商店安装 `GitHub Copilot` 或 `Cursor`(需Codex权限) - 本地VSCode:安装 `Remote - SSH` 扩展 2. **配置代理(关键步骤)** 修改本地VSCode的 `settings.json`,添加服务器代理规则: ```json "remote.SSH.defaultForwardedPorts": [], "remote.SSH.httpsProxy": "http://127.0.0.1:7899" // 改为你的本地代理端口 ``` > ⚠️ 此代理指向**本地网络环境**,非服务器代理!解决远程插件无法连接API的问题[^3] 3. **处理鉴权错误** 若出现 `Token exchange failed: status 403`: - 在远程服务器的VSCode中执行: ```bash cat ~/.vscode-server/server-env-setup # 检查环境变量 export OPENAI_API_KEY="sk-xxx" # 手动注入API Key ``` - 或修改 `~/.vscode-server/data/Machine/settings.json`: ```json { "cursor.telemetry.enabled": false, "openai.baseUrl": "https://your-proxy.com/v1" // 自定义代理端点 } ``` 参考解决方案[^4] 4. **验证网络连通性** 在远程服务器终端测试API可达性: ```bash curl https://api.openai.com/v1/models -H "Authorization: Bearer sk-xxx" ``` ▸ 若返回 `403`,需检查服务器防火墙/出口IP限制 ▸ 若超时,需配置代理或使用中转服务 --- ### **常见问题解决方案** | 问题现象 | 解决方法 | |---------------------------|--------------------------------------------------------------------------| | 登录后发送消息转圈圈 | 检查 `remote.SSH.httpsProxy` 是否指向**本地**代理端口(如7899)[^3] | | 插件在远程环境不可用 | 重装远程扩展,确保在SSH连接状态下安装 | | Token 403错误 | 更换API区域/使用代理域名,避开OpenAI地域限制[^4] | | 无法启动vscode-server进程 | 删除远程服务器 `~/.vscode-server` 目录后重连[^1] | --- ### **技术原理** 远程使用Codex需满足两个条件: 1. **通道打通** VSCode Server 进程通过SSH隧道转发AI请求(默认直连OpenAI API) $$ \text{本地VSCode} \xrightarrow{\text{SSH隧道}} \text{远程Server} \xrightarrow{\text{代理}} \text{OpenAI API} $$ 2. **鉴权同步** 本地登录状态通过 `~/.vscode-server/data/User/settings.json` 同步到远程,若失效需重新认证[^2] ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值