@echo off setlocal enabledelayedexpansion :: CodexZH Windows setup script (ASCII only) echo. echo CodexZH Windows Setup echo ====================== echo. :: API Key: from environment or prompt set "API_KEY=%CODEX_API_KEY%" if "!API_KEY!"=="" set "API_KEY=%OPENAI_API_KEY%" if "!API_KEY!"=="" ( echo Please enter your API Key: set /p API_KEY="> " ) :: Validate API Key if "!API_KEY!"=="" goto :error_no_key :: Config directory set "codexDir=%USERPROFILE%\.codex" echo Config dir: !codexDir! echo. :: Backup existing files if exist "!codexDir!" ( for /f "usebackq delims=" %%a in (`powershell -NoProfile -Command "[DateTime]::Now.ToString('yyyyMMdd_HHmmss')"`) do set TIMESTAMP=%%a if not defined TIMESTAMP ( echo WARN: Failed to get timestamp, skipping backup. set "TIMESTAMP=manual" ) if exist "!codexDir!\config.toml" ( copy "!codexDir!\config.toml" "!codexDir!\config.toml.backup_!TIMESTAMP!" >nul 2>&1 ) if exist "!codexDir!\auth.json" ( copy "!codexDir!\auth.json" "!codexDir!\auth.json.backup_!TIMESTAMP!" >nul 2>&1 ) ) else ( mkdir "!codexDir!" 2>nul if !errorlevel! neq 0 ( goto :error_mkdir ) ) :: Write config.toml ( echo model_provider = "codexzh" echo model = "gpt-5.2" echo model_reasoning_effort = "high" echo disable_response_storage = true echo. echo [model_providers.codexzh] echo name = "codexzh" echo base_url = "https://api.codexzh.com/v1" echo wire_api = "responses" echo requires_openai_auth = true echo. echo [features] echo web_search_request = true ) > "!codexDir!\config.toml" 2>nul if !errorlevel! neq 0 ( goto :error_write_config ) :: Write auth.json ( echo { echo "OPENAI_API_KEY": "!API_KEY!" echo } ) > "!codexDir!\auth.json" 2>nul if !errorlevel! neq 0 ( goto :error_write_auth ) :: Hide sensitive file (best-effort) attrib +h "!codexDir!\auth.json" >nul 2>&1 echo Completed. Files: echo - config.toml: !codexDir!\config.toml echo - auth.json: !codexDir!\auth.json exit /b 0 :error_no_key echo ERROR: API Key not set. echo Set environment variable CODEX_API_KEY or enter when prompted. exit /b 1 :error_mkdir echo ERROR: Cannot create directory !codexDir! exit /b 1 :error_write_config echo ERROR: Cannot write config.toml exit /b 1 :error_write_auth echo ERROR: Cannot write auth.json exit /b 1