场景
希望 Codex 执行任意一次性任务(提交、检查、生成变更等),且不保存会话数据到用户目录。
核心命令
codex exec --ephemeral -C /home/dev/vanotes -a never -s workspace-write \
"<你的一次性任务指令>"
示例:只提交文档变更
codex exec --ephemeral -C /home/dev/vanotes -a never -s workspace-write \
"只提交文档变更(*.md):先检查 git status;只 add 文档文件;commit 后 push;不要提交 .claude/ 和任何凭据。"
在 ~/.bashrc 添加别名(推荐)
如果你已经有 env-noproxy 函数,可直接加入:
alias once-codex='env-noproxy codex exec --ephemeral -a never -s workspace-write'
如果没有 env-noproxy,可用完整写法:
alias once-codex='env -u http_proxy -u https_proxy -u all_proxy -u no_proxy -u HTTP_PROXY -u HTTPS_PROXY -u ALL_PROXY -u NO_PROXY codex exec --ephemeral -a never -s workspace-write'
重载并验证:
source ~/.bashrc
alias once-codex
使用方式:
once-codex "<你的一次性任务指令>"
关键点
--ephemeral仅用于codex exec,表示当前任务不持久化会话文件。- 交互式
codex顶层命令不支持--ephemeral。 - 该模式适合一次性自动化动作,执行后不能
resume这次会话。
更严格隔离(不触碰 ~/.codex)
如果希望连 ~/.codex 都不使用,可把 HOME 指到临时目录:
tmp=$(mktemp -d)
HOME="$tmp" OPENAI_API_KEY="$OPENAI_API_KEY" \
codex exec --ephemeral -C /home/dev/vanotes \
"只提交文档变更(*.md):先检查 git status;只 add 文档文件;commit 后 push;不要提交 .claude/ 和任何凭据。"
rm -rf "$tmp"
注意事项
- 使用临时
HOME时,若依赖 ChatGPT 登录态(~/.codex/auth.json),可能无法复用认证;建议使用OPENAI_API_KEY。 - 提交前让 Codex 明确限制
git add范围,可减少误提交风险。 - 生产环境建议保留安全约束,不要默认使用高风险参数。