Files
2026-10-26 00:11:40 +08:00

42 lines
1.8 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 启动官方 codex app-server(照搬开源核心,不改 agent 循环、不改沙箱)。
#
# 用法:
# ./start.sh # stdio,适合本机客户端(client.py)
# ./start.sh --listen unix:///tmp/codex.sock # Unix socket,多客户端共享一个 server
# ./start.sh --listen ws://127.0.0.1:8080 # WebSocket,远程/另一台机器接
# CODEX_HOME=~/.codex ./start.sh # 默认就是 ~/.codex,不设也一样
#
# 先只校验配置、不启动(排障用):
# codex app-server --print-startup-config
#
# 注意:
# 1. 模型和登录不在开源里:首次使用前先在你自己的机器上完成
# `codex login`(ChatGPT 登录)或配好 API key 的 model provider,
# 否则 thread/start 能建、turn/start 会在模型调用处失败。
# 2. 不要把 --dangerously-bypass-approvals-and-sandbox 写进常驻启动,
# 那是给外部已沙箱化的环境准备的,见 README 安全一节。
set -euo pipefail
cd "$(dirname "$0")"
# 本机 VM 修复:系统里的 codex 是裸二进制,旁边没有
# codex-code-mode-host 和 codex-resources/bwrap,工具会 fail closed。
# 本项目 bin/ 里是配对好的官方 0.164.0-alpha.9 三件套
# (codex + codex-code-mode-host + codex-resources/bwrap),
# 优先用它;Mac 上用 npm 正常安装的 codex 自带这三件套,
# 不需要 bin/,直接用 PATH 里的 codex 即可。
if [ -n "${CODEX_BIN:-}" ]; then
CODEX_CMD="$CODEX_BIN"
elif [ -x "$(dirname "$0")/bin/codex" ]; then
CODEX_CMD="$(dirname "$0")/bin/codex"
elif command -v codex >/dev/null 2>&1; then
CODEX_CMD="codex"
else
echo "找不到 codex,请先装官方 codex" >&2
exit 1
fi
echo "codex: $($CODEX_CMD --version 2>&1 | head -1) ($CODEX_CMD)"
echo "CODEX_HOME: ${CODEX_HOME:-$HOME/.codex}"
exec "$CODEX_CMD" app-server "$@"