文件
Junie CLI
Junie CLI 透過 JSON 檔案設定自訂端點,而不是使用設定畫面。只要在 $JUNIE_HOME/models/kunavo.json 建立九行設定,並執行 junie --model custom:kunavo,就能透過一把金鑰使用 Claude 和 GPT——同時將輔助流量導向較便宜的端點。
Junie CLI 將自訂端點作為 JSON 設定檔放在 $JUNIE_HOME/models/,其中 baseUrl 是完整端點 URL,fasterModel 決定輔助流量的去向。
{
"id": "claude-sonnet-5",
"baseUrl": "https://api.kunavo.com/v1/chat/completions",
"displayName": "Kunavo",
"providerName": "Kunavo",
"apiType": "OpenAICompletion",
"apiKey": "${KUNAVO_API_KEY}",
"fasterModel": {
"id": "claude-haiku-4-5"
}
}baseUrl 是包含路徑的完整端點。 JetBrains 清楚說明:「baseUrl 會作為完整端點 URL 使用 — Junie 不會在其後附加路徑」,並指示您「將其設為所選 apiType 的完整端點」。因此,此欄位既不是來源網址,也不是多數用戶端使用的 /v1 根網址 — 而是 https://api.kunavo.com/v1/chat/completions。只填到 https://api.kunavo.com/v1 是正確設定的設定檔最可能出現 404 的原因。apiKey 和 extraHeaders 值可以使用 $${VAR_NAME} 參照;JetBrains 明確說明此錯誤狀況:「若未設定所參照的環境變數,設定檔將無法載入,且 Junie 會回報指出缺少變數的錯誤。」啟動 Junie 前,請先匯出 KUNAVO_API_KEY — 設定檔會在載入時讀取,而不是等到第一個請求才讀取,因此若 shell 遺失了匯出設定,您會看到設定檔從 /model 消失,而不是收到 401。fasterModel 是 Junie 傳送非使用者指定工作的位置。 JetBrains 將其描述為「用於摘要整理脈絡或分類任務等內部輔助工作所使用的模型」,並指出若未明確定義 primaryModel 或 fasterModel,「就會繼承頂層屬性」。因此,若設定檔沒有 fasterModel 區塊,整理工作的費用就會按主要模型的費率計算。上方的一行覆寫設定就是完整解決方法,也是將此區塊放入最精簡設定,而非附錄中的原因。curl 是你可以在十秒內自行確認的部分;Junie 如何在此基礎上運作,則取決於你和 JetBrains。sk-kn- 開頭),並從 $10 起新增額度——呼叫會從該餘額扣款,失敗的呼叫不會計費。之後儀表板會開啟 Junie CLI 設定。逐步操作
- 在
/app/keys建立金鑰並複製 — 它只會顯示一次。請在啟動 Junie 的 shell 中將其匯出為KUNAVO_API_KEY,或改為在檔案中直接填入金鑰;JetBrains 指出:「沒有任何$${...}參照的值會直接照原樣使用。」 - 將上方的 JSON 儲存為你帳戶中的
$JUNIE_HOME/models/kunavo.json,或儲存為.junie/models/kunavo.json以與儲存庫共用。移除.json副檔名後的檔名會成為 profile id——下方選擇器顯示custom:kunavo,就是由此而來。 - 將
id設為您實際要使用的模型 ID。其定義為「API 端點預期使用的模型識別碼」,因此可直接填入下方表格中的 Kunavo slug;ID 會由端點解析,而不是由 Junie 解析。 - 啟動 Junie 並選取設定檔:
junie --model custom:kunavo,或在互動式工作階段中使用/model指令。自訂模型「會在內建供應商之後出現在模型選取清單中」。 - 交給它一項會編輯檔案的任務,而不是只打招呼。Junie 是代理型用戶端,幾乎所有工作都仰賴工具呼叫;因此,第一次執行時讓它讀取並寫入內容,比只收到單一回覆更能說明實際狀況。
已於 2026年9月21日 根據 JetBrains 的 Junie 自訂 LLM 頁面 進行確認。第三方設定會變動;如果這裡的欄位名稱不再與你看到的內容相符,應以該頁面為準,而不是本頁。
除錯用戶端前先驗證
一個請求就能判斷失敗原因是端點、金鑰還是設定檔。如果這裡回傳 JSON,則相同的基礎 URL 與金鑰在 Junie CLI 中也能運作。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."欄位中應填入哪個模型 ID
每個文字模型都能以模型 ID 存取——即時清單位於 GET /v1/models,帶有價格的目錄位於模型頁面。費率是每 1M 權杖的美元價格,輸入/輸出。
| 模型 ID | Kunavo 輸入/輸出 | 它在 Junie CLI 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 一般工作使用的 primaryModel——例如編輯檔案的任務 |
claude-opus-5 | $3.50 / $17.50 | 可能造成高昂錯誤成本的計畫;每個工作階段固定使用 |
claude-haiku-4-5 | $0.70 / $3.50 | fasterModel 角色:摘要整理上下文、分類任務 |
gpt-5-6-sol | $2.00 / $12.00 | 來自不同家族的第二意見——使用另一個設定檔,共用同一把金鑰 |
Kunavo 支援的另外兩種 apiType 值
apiType 指的是請求格式,而非供應商;Junie 接受四種值:OpenAICompletion、OpenAIResponses、Google 和 Anthropic。Kunavo 提供三種路由,因此其他三種值中有兩種在此處有對應的 baseUrl;而且由於 Junie 不會附加路徑,變更格式時也必須在同一次編輯中更改 URL:
"apiType": "OpenAICompletion"搭配https://api.kunavo.com/v1/chat/completions——也就是上方的設定檔。本文推薦這種組合,因為在三種路由中,這條路由的實際使用最廣泛。"apiType": "Anthropic"搭配https://api.kunavo.com/v1/messages——Kunavo 會在該路徑提供 Messages 格式。"apiType": "OpenAIResponses"搭配https://api.kunavo.com/v1/responses。
三種 Junie 驅動方式中,哪一種最適合特定模型,必須透過執行階段測試才能解答,光看文件無法判斷,因此本頁不會在首行之外為它們排名。選擇一種方式,讓 URL 與 apiType 保持一致;如果使用已設定金鑰的設定檔時收到 401,請明確指定憑證,不要臆測 Junie 使用的標頭格式:JetBrains 對 apiKey 的說明只有否定情況 —「若省略,請求將不包含 Authorization 標頭」— 並未說明填入時會使用哪種格式。文件將 extraHeaders 定義為「要加入每個請求的額外 HTTP 標頭」,且支援相同的 $${VAR} 參照,因此使用 "extraHeaders": {"Authorization": "Bearer $${KUNAVO_API_KEY}"} 是最明確的方式。
常見問題
如何在 Junie CLI 新增自訂供應商?
Junie CLI 會從 JSON 設定檔讀取自訂供應商,而不是透過設定畫面新增。請在帳戶的 $JUNIE_HOME/models/ 或專案中的 .junie/models/ 建立檔案;移除 .json 副檔名後的檔名會成為 profile id。必要欄位為 id、baseUrl 和 apiType;apiKey、displayName、providerName、extraHeaders、extraBody、temperature、maxContextLength、primaryModel 和 fasterModel 則為選填。接著使用 `junie --model custom:<id>` 或 /model 指令選擇它——自訂模型會出現在內建供應商之後的清單中。
Junie CLI 的 baseUrl 需要加上 /v1,還是完整路徑?
需要填入完整路徑。JetBrains 指出,baseUrl 會作為完整端點 URL 使用,Junie 不會在其後附加路徑,並要求將其設為所選 apiType 的完整端點。若使用 OpenAICompletion 設定檔連接 Kunavo,網址應為 https://api.kunavo.com/v1/chat/completions——不是來源站點,也不是 Kilo Code 等用戶端需要的 /v1 根路徑。JetBrains 自己文件中的兩個範例設定檔都帶有完整路徑,原因相同。
為什麼 Junie 說設定檔因缺少環境變數而無法載入?
因為 apiKey 和 extraHeaders 的值支援 ${VAR_NAME} 參照;JetBrains 指出,若未設定參照的環境變數,設定檔便無法載入,且 Junie 會回報缺少變數的名稱。解析會在載入設定檔時進行,因此症狀會是設定檔從模型清單中消失,而不是請求失敗。請在啟動 Junie 前匯出該變數,或將參照改成純文字值。
Junie CLI 能否使用自己的 BYOK 金鑰,透過 Kunavo 之類的閘道?
BYOK 畫面和自訂設定檔是兩種不同途徑。JetBrains 的 BYOK 頁面說明如何透過 /account 或歡迎畫面上的「Use your own API key」連接指定供應商——OpenAI、Anthropic、Google、xAI、OpenRouter 或 GitHub Copilot——並指出所有使用費都由供應商收取,不需要 JetBrains AI 訂閱。未列在其中的端點,包括 Kunavo,則應以自訂 LLM 設定檔的方式加入,也就是本頁所述的 JSON 檔案。自帶金鑰是 Junie CLI 的功能;JetBrains 的外掛文件指出,Junie 外掛不支援此功能。
為什麼 Junie 呼叫的模型不是我選的那個?
Junie 會將設定檔分成兩種角色;文件指出,fasterModel 是用於摘要整理上下文或分類任務等內部輔助工作的模型。若未定義該區塊,JetBrains 指出這些角色會繼承頂層屬性,因此輔助工作會使用你的主要模型,並按其費率計費。如本頁設定檔所示,將 fasterModel.id 設為較便宜的 id,即可解決問題;頂層的 baseUrl、apiType 和 apiKey 會由兩種角色繼承,因此只需變更 id。
Kunavo 測試過 Junie CLI 嗎?
沒有。2026 年 9 月 21 日查閱的是 JetBrains 自己的自訂 LLM 文件——欄位名稱、順序、可接受的 apiType 值及完整端點規則皆引用自該文件。Kunavo 未安裝 Junie CLI、未指定版本,也未透過它傳送請求,因此不會對用戶端內的串流、工具往返或模型路由做出任何宣稱。你可以單獨確認的只有端點與金鑰是否有效,本頁提供的 curl 指令即可確認。