iT邦幫忙

0

零基礎學Codex:Windows安裝到第一個待辦清單,邊做邊學

  • 分享至 

  • xImage
  •  

零基礎學Codex:Windows安裝到第一個待辦清單,邊做邊學

學Codex的第一個練習,可以從一個小到容易檢查的工具開始:輸入待辦事項、勾選完成、刪除項目,再重新整理頁面,看看資料是否還在。

這篇使用Windows上的Codex CLI,帶你完成這個練習。重點是學會三件事:**在哪裡輸入指令、怎麼描述需求、如何確認產出的檔案能用。**不需要先學會網頁語法,也不用架設伺服器。

零基礎Codex練習路線:安裝、連線、建立檔案、驗收

圖1:本文的操作路線,屬於教學示意圖。

先認識這次會用到的三個地方

Codex可以依照你的要求讀取專案、編寫程式,並在權限允許時執行指令。本文使用的是CLI,也就是在終端機操作的版本。

操作位置 要放什麼 怎麼辨認
PowerShell 安裝、切換資料夾、啟動程式的指令 通常能看到PS C:\…>提示字元
記事本 config.toml設定內容 一般文字編輯視窗
Codex對話輸入區 「請幫我建立待辦清單」等需求 啟動Codex後,依介面提示輸入

先記住這張表,後面就不會把設定貼進終端機,或把中文需求當作PowerShell指令執行。

本文沿用2026年10月8日核對的環境:Windows 10(組建19045)、PowerShell7.6.6、Node.jsv24.21.0、npm11.19.0、Codex CLI0.160.1。這是核驗環境,不是要求你鎖定相同的修補版本。

第一步:安裝並確認Codex指令能執行

這裡採用npm安裝方式。先到Node.js下載頁,選擇LTS、Windows及.msi安裝程式。處理器架構可在Windows「設定→系統→關於」查看,依電腦選擇x64或ARM64。

安裝時保留npm及加入PATH的選項。完成後關閉舊終端機,從開始功能表搜尋PowerShell,開啟新視窗,逐行執行:

node --version
npm.cmd --version

兩條都有顯示版本,再安裝Codex:

npm.cmd install -g @openai/codex@latest

等安裝結束、提示字元重新出現,再檢查:

codex.cmd --version

看到codex-cli及版本號,就可以往下走。本文使用.cmd入口,避免部分PowerShell環境把指令解析成受執行原則限制的.ps1。複製時只取程式碼,不要連PS C:\…>一起複製。

第二步:選定模型連線方式

安裝Codex不等於取得模型額度。使用官方帳號時,啟動後依畫面登入,可用功能以帳號權益為準;如果使用第三方API,則需設定對應服務的金鑰與模型。ChatGPT訂閱和第三方API帳戶分開計費。

已能正常對話的讀者,可以直接跳到第三步。以下以Crazyrouter示範自訂provider設定;provider就是「模型請求要交給哪個服務」。欄位可對照Codex接入指南。

把金鑰存進環境變數

先在服務控制台建立API Key,確認模型權限與可用額度。在PowerShell執行這一行:

$codexSecureKey = Read-Host '請貼上 Crazyrouter API Key,然後按 Enter' -AsSecureString

看到提示後才貼上Key,按Enter。輸入不顯示明文是正常現象。回到PowerShell提示字元後,再執行整段:

$codexKeyPtr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($codexSecureKey)
try {
    $codexPlainKey = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($codexKeyPtr).Trim()
    if ([string]::IsNullOrWhiteSpace($codexPlainKey)) { throw '尚未輸入 Key,請重新操作' }
    [Environment]::SetEnvironmentVariable('CRAZYROUTER_API_KEY', $codexPlainKey, 'User')
    $env:CRAZYROUTER_API_KEY = $codexPlainKey
} finally {
    [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($codexKeyPtr)
    $codexPlainKey = $null
    $codexSecureKey.Dispose()
}

這會儲存至目前Windows使用者的環境變數,並套用到目前視窗。環境變數不是加密保險箱,不要存到共用帳號,也不要把Key放進專案檔案或截圖。

把連線設定寫入檔案

在PowerShell執行,開啟設定檔;原本有檔案時會先備份:

$codexConfigDir = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE '.codex' }
New-Item -ItemType Directory -Path $codexConfigDir -Force | Out-Null
$codexConfigFile = Join-Path $codexConfigDir 'config.toml'
if (Test-Path -LiteralPath $codexConfigFile) {
    Copy-Item -LiteralPath $codexConfigFile -Destination ($codexConfigFile + '.bak.' + (Get-Date -Format 'yyyyMMdd-HHmmss'))
}
notepad.exe $codexConfigFile

記事本若詢問是否建立新檔案,選擇建立。空檔案可貼入下列內容:

model = "gpt-5.6-sol"
model_provider = "crazyrouter"

[model_providers.crazyrouter]
name = "Crazyrouter"
base_url = "https://api.crazyrouter.com/v1"
env_key = "CRAZYROUTER_API_KEY"
wire_api = "responses"

模型ID採用核驗當天的接入頁範例。實際使用前確認帳戶有該模型權限,且服務支援Codex所需的Responses API。

這裡最容易混淆的是env_key:填環境變數名稱,不填金鑰本身。base_url則是API位址,不是官網首頁,也不要自行接上/responses或追蹤參數。

已有設定時不要整份覆蓋。修改同名欄位,缺少provider區段才新增;model與model_provider必須位於第一個方括號區段之前。儲存後確認檔名是config.toml,不是config.toml.txt;可在檔案總管開啟「副檔名」顯示。

Crazyrouter連線設定示意:環境變數與config.toml的對應關係

圖2:金鑰與設定分開保存,變數名稱兩邊一致。

第三步:在自己的練習資料夾下指令

先建立一個空資料夾。以下指令全部在PowerShell執行:

$codexProject = Join-Path $env:USERPROFILE 'CodexProjects\first-checklist'
New-Item -ItemType Directory -Path $codexProject -Force | Out-Null
Set-Location -LiteralPath $codexProject
Get-Location

最後的路徑應以CodexProjects\first-checklist結尾;若裡面已有重要檔案,換個新的資料夾名稱。接著啟動:

codex.cmd --sandbox workspace-write --ask-for-approval on-request

第一次可能出現目錄信任或Windows沙箱設定。核對路徑後依畫面操作;遇到執行許可時,確認指令和目標檔案屬於這次練習。

在Codex對話輸入區先輸入:

請只回答「連線成功」,不要讀取檔案、修改檔案或執行指令。

收到回覆後,再貼上正式需求:

請在目前資料夾實際建立 index.html,製作繁體中文待辦清單。

使用方式:
- 輸入待辦事項後,按「新增」或 Enter 加入清單。
- 不接受只有空白的項目。
- 每個項目可以勾選完成,也能單獨刪除。
- 顯示尚未完成的項目數量。
- 使用 localStorage 儲存,重新整理後恢復清單及完成狀態。
- 如果本機儲存失敗,顯示提示,讓使用者知道資料尚未保存。

實作範圍:
- HTML、CSS、JavaScript 都放在 index.html。
- 不安裝套件,不載入外部框架、圖片、字型或 CDN。
- 只修改這個檔案,使用者輸入當作純文字顯示。
- 手機上也要能閱讀和操作。

完成後告訴我檔案位置、開啟方式,以及每個功能的檢查方法。
若無法寫入檔案,請明確說明;不要只貼出程式碼就說完成。

把「單一檔案、不安裝套件」寫進需求,可以讓第一次練習維持在容易理解的範圍。

第四步:用驗收表檢查,不只看畫面

完成後依介面提示退出Codex,回到PowerShell;可按Ctrl + C,若畫面要求再按一次就照提示操作。看到PowerShell提示字元後執行:

Set-Location -LiteralPath (Join-Path $env:USERPROFILE 'CodexProjects\first-checklist')
Test-Path .\index.html

回傳True代表檔案存在,再執行:

Start-Process .\index.html

若開啟的是編輯器,到檔案總管右鍵點選該檔案,使用「開啟檔案」或「開啟方式」選擇Edge、Chrome。

你做的操作 通過條件
輸入「整理讀書筆記」,按新增 清單出現一個項目
輸入另一件事,按Enter 只新增一次,輸入框清空
輸入空白後送出 清單沒有空項目
勾選完成,再取消勾選 狀態與未完成數量同步改變
刪除其中一項 其他項目仍存在
新增及勾選後重新整理 可用本機儲存時,內容及狀態恢復

localStorage只保存於目前瀏覽器,沒有跨裝置同步。清除瀏覽資料、換瀏覽器或移動檔案可能影響恢復;直接以file://開啟時,儲存行為也因瀏覽器而異。重要待辦另做備份。

功能沒過關時,這樣回報給Codex

假設新增成功,但重新整理後資料消失,可以在原資料夾重新啟動Codex,描述實際現象:

我用Edge直接開啟 index.html。
新增「整理讀書筆記」後看得到項目,但重新整理後消失。
請先讀取檔案,檢查 localStorage 的寫入與載入流程,
也確認儲存失敗時是否有提示。
保留新增、完成及刪除功能,只修改 index.html。

提供「在哪裡操作、做了什麼、實際發生什麼、希望怎麼運作」,通常比只說「有問題」更有幫助。若有錯誤訊息,一併貼上文字。

基本功能通過後,再練習新增「只看未完成」篩選,並要求切換篩選不刪除資料。一次改一項,改完重新走過驗收表。

卡在安裝或連線時,先查哪裡?

現象 優先檢查
找不到node或npm 安裝是否完成、是否重新開啟終端機、PATH是否生效
無法載入npm.ps1 使用npm.cmd;不要先放寬整台電腦的執行原則
找不到codex.cmd npm安裝是否成功;用npm.cmd prefix -g查全域安裝位置
缺少環境變數 用[bool]$env:CRAZYROUTER_API_KEY確認非空,並對照env_key
401或403 看完整回應,核對Key、服務位址、模型權限與帳戶狀態
404或模型不存在 檢查模型ID、/v1路徑及Responses相容性
429 依回應判斷限流或額度問題,避免連續重試
TOML解析錯誤 檢查英文引號、重複欄位、欄位所屬區段與副檔名
有回答,卻找不到網頁 核對工作目錄、寫入權限和實際檔案,不只看最後一句回覆

環境變數檢查回傳True只代表有值,不代表Key有效。若新視窗讀不到變數,先完全關閉Windows Terminal,再從開始功能表開啟。

下次繼續:回到同一個資料夾

檔案會留在練習目錄。下次開啟PowerShell,可以回到原目錄選擇之前的對話:

Set-Location -LiteralPath (Join-Path $env:USERPROFILE 'CodexProjects\first-checklist')
codex.cmd resume

也可以啟動新對話,請Codex先讀取現有index.html再修改。做較大改動前,先在PowerShell留一份備份:

Copy-Item .\index.html ('.\index.backup-' + (Get-Date -Format 'yyyyMMdd-HHmmss') + '.html')

完成這個練習後,你已經走過一次「提出需求→建立檔案→檢查功能→回報問題」的循環。下一個小工具,也可以從同樣清楚的需求與驗收條件開始。

參考資料

使用說明:本文整理Windows入門操作、可複製指令與驗收方法,資料核對日期為2026年10月8日。配圖用於教學示意;介面與模型權限可能隨版本及帳戶而異,請對照目前設定與所用服務的說明。模型呼叫費用以實際服務的最新計費規則為準。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言