贴主比较喜欢codex app界面来开发,不太喜欢使用cli的方式。
codex app只能在windows和mac上用,而贴主的开发基本上都在Ubuntu上。
之前我是通过配置samba将Ubuntu上的目录映射成windows上的网络位置。配置AGENT.md文件规则,在代码修改完成之后,通过配置的ssh命令进入远端ubuntu进行编译测试等,属实较为麻烦,而且会遇到字符转义的问题。
codex app更新后,添加了ssh功能,可以利用windows上的codex app远程调用Ubuntu上的codex cli。现在可以更方便的通过codex app来开发远端的项目,不过要配置好远端的codex cli。
注意点
-
1.codex app连接codex cli需要ssh免密,在贴主的背景下需要将windows下的ssh公钥放到ubuntu下的~/.ssh/authorized_keys
-
2.codex cli要配置好api,如直接gpt 账号登录或者配置好第三方API(可以通过CCS来管理)
-
3.注意混用官方的登录和第三方API,会存在历史对话不互通。
坑:
问题一:model_provider不一致会导致第三方API的对话记录不互通
解决方法:统一设置第三方API的model_provider,如通过ccs统一设置为codex
问题二:通过ccs切换API后,codex cli可以正常请求切换后的API,而通过codex app控制的codex cli请求的还是切换前的API
解决方法:重置codex cli端的app-server服务,你可以手动kill也可以使用脚本
#!/usr/bin/env bash
set -euo pipefail
echo "[1/4] Killing Codex app-server processes..."
APP_PIDS="$(pgrep -f 'codex.*app-server' || true)"
if [ -n "$APP_PIDS" ]; then
echo "$APP_PIDS" | while read -r pid; do
[ "$pid" = "$$" ] && continue
[ "$pid" = "$PPID" ] && continue
kill "$pid" 2>/dev/null || true
done
sleep 1
fi
echo "[2/4] Killing remaining Codex processes..."
CODEX_PIDS="$(pgrep -f '/usr/bin/codex|/bin/codex|@openai/codex|codex-cli' || true)"
if [ -n "$CODEX_PIDS" ]; then
echo "$CODEX_PIDS" | while read -r pid; do
[ "$pid" = "$$" ] && continue
[ "$pid" = "$PPID" ] && continue
kill "$pid" 2>/dev/null || true
done
sleep 1
fi
echo "[3/4] Force killing stubborn Codex processes if any..."
CODEX_PIDS_LEFT="$(pgrep -f '/usr/bin/codex|/bin/codex|@openai/codex|codex-cli' || true)"
if [ -n "$CODEX_PIDS_LEFT" ]; then
echo "$CODEX_PIDS_LEFT" | while read -r pid; do
[ "$pid" = "$$" ] && continue
[ "$pid" = "$PPID" ] && continue
kill -9 "$pid" 2>/dev/null || true
done
fi
echo "[4/4] Cleaning app-server control files..."
rm -rf "$HOME/.codex/app-server-control"/* 2>/dev/null || true
echo
echo "Done. Current Codex-related processes:"
ps aux | grep -E 'codex|app-server' | grep -v grep || echo "No Codex process found."
echo
echo "Now fully restart Codex Desk on Windows and reconnect to Ubuntu."
1 个帖子 - 1 位参与者