Runtime

KernelHub 不包含模型。它驅動你自己裝的 CLI 編碼 Agent。換哪一家,授權都在同一個地方核:寫、改、執行經 KernelHub 內建的 Tool Server,對照你的授權和工作區邊界。

必需的前置條件:Node.js LTS(自帶 npm)。Runtime 是透過 npm 裝的 —— 預設的 claude,以及 codex、qwen、codebuddy、opencode、kimi、mimo、pi 都是。裝 KernelHub 之前先確認 node -vnpm -v 都打出版本號;它的安裝器不會替你裝 Node。例外是 agy(Antigravity),要從 Google 官方渠道裝。

怎麼選

支援的 Agent 在 PATH 裡,KernelHub 就找得到。要指定某一家:

$ icloser run --runtime-kind claude

可用的 kind:claude · codex · agy · qwen · codebuddy · opencode · kimi · mimo · pi · ohmypi · acp · mcp · generic

Google 這一家在這裡的形態是 agy(Antigravity)。gemini 這個 kind 仍然認(適配器保留,沒刪),但它已退役:Google 不再提供可以自己登入單獨使用的 gemini CLI。

「批了」不等於「管得住」

這是兩件事。一檔授權放行什麼,是在動作發生的地方判的:Runtime 要做的每一次寫、改、執行,都經過 KernelHub 內建的 Tool Server,先對照你的授權和工作區邊界核過再跑。至於這一檔另外有沒有不靠這條路的東西守著 —— 那家 Runtime 命令列上可驗證的開關,或者它程序外面那道可選的 OS 邊界 —— 是另一個問題。六檔裡有一檔證不出,這一家就標 NOT_READY。那是記帳,不是攔路:它照樣接活。

哪一家的哪一檔由誰守住,這一頁不複述首頁那張表是逐家、逐檔去問活的註冊表問出來的,隨程式碼一起變;這裡再手寫一份,遲早和它對不上,而照著對不上的那份去換 Runtime 是白換。

KernelHub 為此做了什麼

只有真接不了這條任務時才會跳過一家 —— 沒裝、起不來、撞了額度正在冷卻、或者在這條任務上已經失敗過。有一類任務還會看檔位:要刪除或遷移資料的,先交給表達得了拒絕清單的那一家;機器上一家都表達不了時,任務在刪任何東西之前停在一張邊界卡上,請你放行這一趟。

中途換家

選中的那一家撞額度、或者拒絕了它本來被授權的命令時,任務可以交給另一家接著做,而且是同一條任務,歷史和改動都留著。

icloser runtimes 能看到什麼

它回答三個此前只能靠讀原始碼回答的問題:裝了哪幾家、各是什麼版本、各支援什麼。全程只跑 --version —— 不消耗任何模型額度、不碰工作區憑證,所以一台還沒設定過的機器上它也答得出來。

$ icloser runtimes
$ icloser runtimes --json # 指令碼讀這個,別去 grep 表頭
$ icloser runtimes --explain claude # 每一格結論憑什麼

六態,以及不許折進它們的另外三檔

狀態詞由 CLI 原樣印出,三種語言下一字不差。下面的順序就是探測的判定順序 —— 它從你此刻做得掉的那一步開始報。

狀態是什麼意思能接活你的下一步
NOT_INSTALLED這台機器的 PATH 上沒有這個執行檔。不能
硬不可用 —— 連試都不試
裝上它。如果那行理由裡點了一個路徑出來,說明套件就在這台機器上、只是沒進 PATH —— 再裝一遍沒有用。
INSTALLED_NOT_STARTABLE檔案在,但它起不起來 —— 裝了一半、負載缺失、或者權限位元壞了。不能
硬不可用 —— 連試都不試
把那家 Runtime 重裝一遍。注意這一檔下 --version 照樣答得出來 —— 這正是它不能被折進「健康」的原因。
STARTABLE_NOT_AUTHENTICATED起得來,但這台機器上它沒登入,或者它要的那份憑證沒設定。不能
軟不可用 —— 仍會讓它跑到那一步,好讓你拿到 Runtime 自己那句話
在你自己的終端機裡,用那家 Runtime 自己的指令登入一次。KernelHub 不持有任何模型 API key,它用的是你已有的登入狀態。
TOOL_CHANNEL_INCOMPATIBLE在命令列上接不上內建 Tool Server。登入也修不好 —— 這是那家 CLI 自己的性質。沒有你能做的下一步。它照樣接不需要工具通道的活;需要的那些會被派給別家。
AUTHENTICATED起得來、憑證在、工具通道也接得上。沒有任何證據說明它這一刻答得出來 —— key 可能過期,provider 可能在限流。不需要做什麼。想要更硬的答案:icloser runtimes --verify 會真的問模型一次。
HEALTHY硬證據說明它這一刻接得住活 —— 真的問過它一次,也真的答回來了。沒有。只有跑過 --verify 才到得了這一檔;不跑的話最高只到 AUTHENTICATED。
STARTABLE_AUTH_UNKNOWN
不屬於那六態 —— 別把它讀成其中某一檔的變體
起得來,但登入狀態問不出來。我們既不猜一個 ok,也不冤枉說它沒登入。不強求你做什麼。它照樣能接活 —— 把「問不出來」判成「不行」,等於讓一台能做事的機器閒著。
USER_SUPPLIED
不屬於那六態 —— 別把它讀成其中某一檔的變體
執行檔是你自己用 --runtime 指的。「裝沒裝」這個問題對它不成立。沒有。這正是「KernelHub 沒聽說過的 Runtime」的入口。
NOT_APPLICABLE
不屬於那六態 —— 別把它讀成其中某一檔的變體
協定條目(acp / mcp)。它壓根不對應某一個執行檔,探測無從談起。沒有。這不是「壞了」,是範疇不同。

表往旁邊拉,右邊那一列是「你的下一步」 →

「能接活」是狀態的性質,不是任務的。這一趟到底要不要工具通道,是按任務另判的 —— 一條純對話任務交給 TOOL_CHANNEL_INCOMPATIBLE 的那家完全正常。
接著看:權限