Communityアート&デザインgithub.com

Danicahhh/codex-skills

自己整理的Codex Skill

対応~Claude CodeCodex CLI~Cursor
npx skills add Danicahhh/codex-skills

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

ドキュメント


AutoDL 中使用 Codex CLI 的完整流程

本 Skill 用于帮助用户在 AutoDL 远程服务器中直接使用 Codex CLI 修改和调试项目代码,避免将远程项目和大数据下载到本地。适用于以下场景:

  • 用户的代码和数据都在 AutoDL 远程服务器上;
  • 数据文件较大,不适合下载到本地;
  • 用户希望 Codex 直接读取远程代码、修改文件、运行测试;
  • AutoDL 服务器无法直接访问 chatgpt.comapi.openai.com
  • 安装 Codex CLI 时遇到网络、npm、PATH、gawk、SHA 校验等问题。

1. 总体思路

不要把 AutoDL 上的项目下载到本地再让 Codex 修改,而是:

  1. 在本地电脑开 SSH 反向代理;
  2. 让 AutoDL 通过本地代理访问 OpenAI;
  3. 在 AutoDL 服务器中安装 Codex CLI;
  4. 在 AutoDL 项目目录中直接运行 codex
  5. 让 Codex 在远程服务器上直接读取、修改、运行代码。

最终目标是:

cd /autodl-tmp/你的项目目录
codex

2. 获取 AutoDL 的 SSH 地址和端口

在 AutoDL 控制台中找到当前实例的 SSH 登录命令。

通常格式类似:

ssh -p 32384 [email protected]

其中:

[email protected]

是 AutoDL 地址;

-p 32384

是 SSH 端口。

后续所有命令中的 <PORT> 替换为端口,例如 32384<HOST> 替换为地址,例如 connect.bjb2.seetacloud.com


3. 在本地电脑开启 SSH 反向代理

如果本地电脑已经开启 Clash、VPN 或其他代理,并且本地代理端口是 7890,则在本地 Windows PowerShell、CMD 或 Git Bash 中运行:

ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>

示例:

ssh -N -R 7890:127.0.0.1:7890 -p 32384 [email protected]

输入 AutoDL 的 SSH 密码。

注意:

  • 输入密码时,终端不会显示任何字符,也不会显示 *
  • 粘贴密码后直接按 Enter;
  • 如果登录成功,该窗口会卡住不动,这是正常的;
  • 不要关闭这个窗口,它负责维持 AutoDL 到本地代理的隧道。

如果提示:

Permission denied

说明密码错误,需要回 AutoDL 控制台复制正确的 SSH 密码。


4. 在 AutoDL 中设置代理环境变量

打开另一个终端,正常 SSH 登录 AutoDL,或者使用 AutoDL 网页终端。

进入 AutoDL 后执行:

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

然后测试网络:

curl -I https://chatgpt.com
curl -I https://api.openai.com

如果之前是:

Connection timed out

现在变成:

HTTP/1.1 200 Connection established

说明代理隧道已经生效。

如果访问 chatgpt.com 返回:

HTTP/2 403

这通常说明已经连到了网站,只是网页本身被 Cloudflare 或访问策略拒绝,不一定代表代理失败。应继续测试 Codex 安装脚本或 api.openai.com


5. 安装 Codex CLI

在 AutoDL 中执行:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

如果成功,会看到类似:

Installing Codex CLI
Detected platform: Linux (x64)
Resolved version: ...
Installing standalone package ...
Codex CLI installed successfully.

6. 处理 gawk / SHA-256 校验报错

如果安装过程中出现:

Could not find SHA-256 digest for codex-package-x86_64-unknown-linux-musl.tar.gz in codex-package_SHA256SUMS.

通常是系统默认 awk 不是 GNU awk,安装脚本解析 SHA256SUMS 失败。

先检查:

awk --version

如果输出:

awk: not an option: --version

说明当前 awk 不是 GNU awk。

不要使用:

bash awk --version

这是错误写法。awk 是二进制程序,不是 shell 脚本。

修复方式:

apt-get update
apt-get install -y gawk

安装后检查:

gawk --version
awk --version

如果 awk --version 仍然不是 GNU Awk,则切换默认 awk:

update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk

再次检查:

awk --version

正常后重新安装 Codex:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

7. 处理 npm command not found

如果执行:

npm install -g @openai/codex

出现:

bash: npm: command not found

说明当前 AutoDL 环境没有 Node.js/npm。

可以使用 conda 安装:

conda install -c conda-forge nodejs -y

检查:

node -v
npm -v

然后给 npm 设置代理:

npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890

再安装 Codex:

npm install -g @openai/codex

如果官方安装脚本已经成功,则不需要 npm 方案。


8. 处理 codex command not found

安装成功后,如果运行:

codex --version

却出现:

bash: codex: command not found

通常是当前终端 PATH 没刷新。

先执行:

export PATH=/root/.local/bin:$PATH

然后检查:

which codex
codex --version

也可以直接用完整路径:

/root/.local/bin/codex --version

为了以后每次打开终端都能使用 codex,写入 .bashrc

echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

再次检查:

codex --version

正常情况下会显示类似:

codex-cli 0.141.0

9. 登录 Codex

AutoDL 通常是无浏览器环境,应使用设备码登录:

codex login --device-auth

Codex 会在终端里给出登录链接和一次性 code。

在本地电脑浏览器中打开链接,登录 ChatGPT,然后输入终端给出的 code。

登录成功后,AutoDL 中会显示:

Successfully logged in

可以检查登录状态:

codex login status

10. 在 AutoDL 项目目录中启动 Codex

进入项目目录:

cd /autodl-tmp/你的项目目录

示例:

cd /autodl-tmp/Tencent-Advertising-Algorithm-Competition

启动 Codex:

codex

之后即可让 Codex 直接分析和修改远程代码。

推荐第一条 prompt:

请先阅读这个项目的代码结构,不要读取完整数据集。帮我分析训练流程和当前可能的问题。先不要修改文件,先给我修改方案。

如果需要它修改代码,可以说:

请根据刚才的分析修改代码。只修改必要文件,不要读取完整数据集,不要删除数据、权重和日志文件。修改后告诉我改了哪些文件,以及如何测试。

11. 大数据项目的安全使用规则

AutoDL 项目通常包含大数据、模型权重、日志和实验结果。使用 Codex 前建议新建 AGENTS.md

nano AGENTS.md

写入:

# 项目说明

这是一个运行在 AutoDL 服务器上的机器学习项目。

## 重要规则

- 不要读取完整数据集。
- 不要打开 data、dataset、checkpoints、outputs、logs 等大文件目录,除非用户明确要求。
- 如果需要检查数据格式,只读取前 5 行或请求用户提供小样本。
- 修改代码前,先说明准备修改哪些文件。
- 不要删除任何数据文件、模型权重、日志或实验结果。
- 不要直接运行完整训练,除非用户明确要求。
- 优先运行轻量级测试、语法检查或小样本测试。

然后再运行:

codex

12. 推荐的完整命令顺序

本地电脑:开启反向代理

ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>

保持该窗口不关闭。

AutoDL 服务器:设置代理

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

AutoDL 服务器:测试网络

curl -I https://chatgpt.com
curl -I https://api.openai.com

AutoDL 服务器:修复 awk

apt-get update
apt-get install -y gawk

AutoDL 服务器:安装 Codex

curl -fsSL https://chatgpt.com/codex/install.sh | sh

AutoDL 服务器:刷新 PATH

export PATH=/root/.local/bin:$PATH
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

AutoDL 服务器:检查版本

codex --version

AutoDL 服务器:登录

codex login --device-auth

AutoDL 服务器:进入项目并启动

cd /autodl-tmp/你的项目目录
codex

13. 常见问题速查

问题 1:curl: (28) Failed to connect to chatgpt.com

原因:AutoDL 无法直接访问 ChatGPT。

解决:本地电脑开启 SSH 反向代理,并在 AutoDL 设置代理环境变量。


问题 2:输入 SSH 密码时粘贴不上

原因:SSH 密码输入不会显示任何字符。

解决:粘贴后直接按 Enter。如果出现 Permission denied 才说明密码错误。


问题 3:HTTP/1.1 200 Connection established 后出现 HTTP/2 403

原因:代理隧道已通,目标网站拒绝了当前请求。

解决:继续测试安装脚本或 api.openai.com,不一定是代理失败。


问题 4:npm: command not found

原因:AutoDL 中没有安装 Node.js/npm。

解决:

conda install -c conda-forge nodejs -y

问题 5:Could not find SHA-256 digest

原因:系统默认 awk 不是 GNU awk,安装脚本解析 SHA 校验文件失败。

解决:

apt-get install -y gawk

必要时:

update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk

问题 6:bash: codex: command not found

原因:Codex 安装成功,但当前 shell 的 PATH 没有刷新。

解决:

export PATH=/root/.local/bin:$PATH
source ~/.bashrc

或者:

/root/.local/bin/codex --version

问题 7:Codex 登录时打不开浏览器

原因:AutoDL 是远程无浏览器环境。

解决:

codex login --device-auth

在本地浏览器中完成设备码登录。


14. 使用原则

在 AutoDL 中使用 Codex 时,应遵守以下原则:

  1. 先开代理,再用 Codex;
  2. 不要关闭本地 SSH 反向代理窗口;
  3. 不要在大数据根目录启动 Codex;
  4. 优先在项目代码目录启动 Codex;
  5. 使用 AGENTS.md 限制 Codex 不要读取大数据;
  6. 修改代码前让 Codex 先给方案;
  7. 修改后用 git diff 检查;
  8. 不要让 Codex 直接删除数据、权重或实验结果;
  9. 完整训练前,先让 Codex 做小样本测试;
  10. 每次重新打开 AutoDL 终端时,确认代理变量和 PATH 是否仍然存在。

関連スキル