Linux 从 0 开始

给从没装过 KernelHub 的 Linux。照着做,每一步都能复制、都知道成功长什么样:先装 Node,再一行装 KernelHub,登录 Runtime,配对手机,发一条真任务,看它交付。

这一页怎么用
从上往下,一步一步做。每一步都写了:复制哪一行、看到什么算成功、没看到怎么办。命令块右边有「复制」按钮,点一下粘进终端(或 SSH 窗口)回车即可。能上网只看第 1、2 节;网络被堵看第 5 节。

1 · 开始之前:这台 Linux 缺什么

一台从没装过 KernelHub 的 Linux(x86-64 或 arm64;桌面、服务器、虚拟机都行),要走到「手机上派活、这台机器上干活」。先搞清楚它自带什么、缺什么:

东西全新系统有没有说明
bash / tar / sha256sum本页命令按 bash 写;sha256sum 在 coreutils 里。
curl不一定很多精简系统、容器镜像里没有。第 2 节第 1 步先查。
Node.js / npm没有本页最要紧的一条。安装脚本不会替你装 Node。没有 npm,它就装不上 AI 编码工具(Runtime),结果是「KernelHub 装好了,一个任务都跑不了」。发行版自带的 nodejs 包往往偏旧,本页用 nodejs.org 官方包。
~/.local/bin 在 PATH 里不一定KernelHub 和本页装的 Node 都放在这里。第 2 节第 3 步用一行确保它在。
一个登录过的 Runtime没有KernelHub 不带模型,它驱动的是你自己装好、自己登录过的 CLI 编码 Agent(默认装 Claude Code)。装上 ≠ 能用,没登录照样跑不了任务。
一部手机装好 KernelHub App,用来扫码配对、发任务、批准。
三条铁律(照这个顺序做,能省掉大部分返工)
  1. 先装 Node,再装 KernelHub。顺序反了,装完开不了工(反了也能救:装好 Node 后把安装命令再跑一遍)。
  2. 装完让 Runtime 登录一次(敲 claude,按提示登录)。不登录,任务一律回「本机一家都跑不了」。
  3. 配对之后要让 icloser run 一直开着(或者装成常驻)。配对只是把手机和这台机器认识一下,真正去接活的是 icloser run
「你会看到」是怎么来的
下面灰框里的原句取自真跑:一个新起的容器,官方 Ubuntu 24.04 镜像加 systemd(Ubuntu 24.04.4 LTS,aarch64),只补了 sudo 和一个普通用户,curl、Node 都没有。x86-64(amd64)没有跑。

本页除了装 curl、开启常驻会话这两处,都不需要 sudo。如果你本来就是 root(提示符是 #),把命令前面的 sudo 去掉即可。

2 · 能上网:最短主路径(共 15 步)

一步一行,复制即用。

第 1 步 · 确认有 curl

$ curl --version

成功:打出 curl 的版本信息,直接做第 2 步。全新精简系统上可能看到(说明没有 curl):

bash: curl: command not found

Ubuntu / Debian 装 curl:

$ sudo apt-get update && sudo apt-get install -y curl ca-certificates

Fedora / RHEL / CentOS Stream 装 curl:

$ sudo dnf install -y curl

第 2 步 · 看看有没有 Node

$ node -v

已经有 Node:打出版本号 —— 跳到第 3 步,第 4、5 步可以不做。全新系统上会看到(说明没装,照做下去):

bash: node: command not found

第 3 步 · 把 ~/.local/bin 放进 PATH

这一行做三件事:如果 ~/.bashrc 里还没有,就追加一行;当前窗口立刻生效;最后打印 PATH 的第一段给你看。重复跑不会重复追加。(用 zsh 的人把两处 ~/.bashrc 换成 ~/.zshrc。)

$ grep -qsF ".local/bin" ~/.bashrc || echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc; export PATH="$HOME/.local/bin:$PATH"; echo "$PATH" | cut -d: -f1

成功:打出来的是 /home/你的用户名/.local/bin(root 是 /root/.local/bin):

/home/kh/.local/bin

第 4 步 · 下载 Node.js,并用官方校验和核对

当前 LTS 是 Node v24.21.0。这一行按你的 CPU(x86-64 / arm64)下载 nodejs.org 官方的 .tar.gz,再拿官方的 SHASUMS256.txt 核对:

$ V=v24.21.0; A=$(uname -m | sed -e s/x86_64/x64/ -e s/aarch64/arm64/); F=node-$V-linux-$A.tar.gz; curl -fL -o /tmp/$F https://nodejs.org/dist/$V/$F && curl -fsSL https://nodejs.org/dist/$V/SHASUMS256.txt | grep " $F\$" | (cd /tmp && sha256sum -c -)

成功:最后一行是文件名后面跟着 OK

node-v24.21.0-linux-arm64.tar.gz: OK

最后是 FAILED下载坏了,重跑这一行。curl: (6) / (7) / (28) / (35)网络问题,重跑;还不行看第 5 节设代理。

sha256sum: WARNING: 1 computed checksum did NOT match
node-v24.21.0-linux-arm64.tar.gz: FAILED

第 5 步 · 把 Node 解到 ~/.local(不要 sudo)

$ V=v24.21.0; A=$(uname -m | sed -e s/x86_64/x64/ -e s/aarch64/arm64/); mkdir -p ~/.local && tar -xzf /tmp/node-$V-linux-$A.tar.gz -C ~/.local --strip-components=1 && node -v && npm -v

成功:打出两行版本号,一行 node、一行 npm:

v24.21.0
11.19.0

这样装的好处:nodenpm 和之后的 icloserclaude 都在 ~/.local/bin,npm 的全局安装也落在 ~/.local不需要 sudo,不会报 EACCES。官方包是给 glibc 系统(Ubuntu、Debian、Fedora 这类)的;Alpine 这类 musl 系统用发行版自己的 nodejs 包,再看第 4 节。

第 6 步 · 一行装 KernelHub

$ curl -fsSL https://icloser.xyz/install | sh

它按顺序做这些事,你不用管,看着就行:

它做什么说明
认机器认出 Linux 和 CPU(amd64 / arm64)。
读发布清单从 kernelhub.icloser.xyz 读 stable.json;清单不是 READY 就拒装,没有强制开关。
下载并核对icloser,核 SHA-256 与字节数,对不上就丢掉并停下;机器上既没有 shasum 也没有 sha256sum 就不装。
装到哪~/.local/bin/icloser,另建三个旧名 icli / kernelhub-cli / devnexus-cli
本机管理台顺带装 ~/.local/bin/kernelhub-desktop;下失败只打一行警告,不影响 CLI。
自证当场跑 icloser version,和清单里的版本、构建号比对。
装一家 Runtime有 npm 就 npm install -g @anthropic-ai/claude-code(默认只装 claude);已经装过就不动它。

成功时屏幕上会出现(安装脚本的输出是中文的):

  清单:stable 频道 · v1.0.2 · build 202609161352 · commit a4099c062543
下载 icloser_linux_arm64 …
✓ SHA-256 核对通过
✓ 装到 /home/kh/.local/bin/icloser
✓ 装到 /home/kh/.local/bin/kernelhub-desktop(本机管理台)
✓ icloser 1.0.2 (build 202609161352, commit a4099c062543)
装 Runtime:claude(npm install -g @anthropic-ai/claude-code)…
✓ 装好 Runtime:claude(@anthropic-ai/claude-code)
下一步:
  ① 登录 Runtime(只用一次)。装上但没登录,任务照样跑不了:
        claude
     按提示登录完,退出它即可。
  ② cd 到你的项目目录,跑:
        icloser pair

如果里面有「这台机器上没有 npm,Runtime 没装」,说明第 4、5 步没做或没生效 —— KernelHub 本体已经装好,回去装好 Node,再把这一行跑一遍

  清单:stable 频道 · v1.0.2 · build 202609161352 · commit a4099c062543
下载 icloser_linux_arm64 …
✓ SHA-256 核对通过
✓ 装到 /home/kh/.local/bin/icloser
  ⚠️ 管理台没下下来(kernelhub-desktop_linux_arm64)—— 只装了 CLI
✓ icloser 1.0.2 (build 202609161352, commit a4099c062543)
  ⚠️ 这台机器上没有 npm,Runtime 没装(KernelHub 本体已经装好)
     装好 Node.js(自带 npm)之后重跑一次这个安装器即可。

如果有「管理台没下下来 —— 只装了 CLI」:多半是网络抖了一下,把这一行再跑一遍即可。

第 7 步 · 核一下装到的是哪一版

$ icloser version

成功:一行里同时有 1.0.2202609161352

icloser 1.0.2 (build 202609161352, commit a4099c062543)

icloser: command not found第 3 步没做;做完再试。

第 8 步 · 让 Runtime 登录一次

先看看登录前是什么样。这条命令第一次输出很长(一张矩阵加几十行说明),只看最上面 Claude Code 那一行:登录前是「状态不明」(STARTABLE_AUTH_UNKNOWN),登录后是「✅ 可用」(AUTHENTICATED)。

$ icloser runtimes
这台机器上的 Runtime(14 家已注册 · 1 家装着 · 0 家可直接用 · 0 家卡在登录/凭据)
     Runtime                版本          状态           登录态 / 位置
  ⚠️ Claude Code            2.1.272     状态不明         声明了探测手段但一条都没命中,状态问不出来(不猜)
  Claude Code            STARTABLE_AUTH_UNKNOWN       起得来,但登录态问不出来:声明了探测手段但一条都没命中,状态问不出来(不猜)

然后登录。第一次运行会带你登录,照屏幕上的提示做(没有浏览器的服务器上,按它给的办法在你自己的电脑上完成登录)。登录完输入 /exit 或按两次 Ctrl + C 退出:

$ claude

第一次运行 claude 的几屏(Linux 实录,按屏照录要点):

  1. Welcome to Claude Code v2.1.272 / Choose the text style —— 回车(默认 Dark mode)。
  2. Select login method —— 回车(选 1. Claude account with subscription)。
  3. Browser didn't open? Use the url below to sign in —— 在浏览器里打开那条链接登录授权,把页面给的授权码粘回来,回车。
  4. Login successful. Press Enter to continue… —— 回车。
  5. Security notes … Press Enter to continue… —— 回车。
  6. Accessing workspace … ❯ No, exit / Yes, I trust this folder —— 回车(No, exit:只是为了登录,退出即可)。

再跑一次 icloser runtimes成功:Claude Code 那一行是可以直接用的状态:

这台机器上的 Runtime(14 家已注册 · 1 家装着 · 1 家可直接用 · 0 家卡在登录/凭据)
     Runtime                版本          状态           登录态 / 位置
  ✅  Claude Code            2.1.272     可用           /home/kh/.local/bin/claude
  Claude Code            AUTHENTICATED                起得来、凭据也在(配置文件 /home/kh/.claude.json 里有顶层键 oauthAccount(只看键是否存在,不读值))。 …

还卡在登录上(状态写着 STARTABLE_NOT_AUTHED 或「状态不明」(STARTABLE_AUTH_UNKNOWN)):再敲一次 claude 登录。

第 9 步 · 建一个项目目录并进去

已经有项目的,把路径换成你自己的:

$ mkdir -p ~/projects/my-app
$ cd ~/projects/my-app

项目要用 git 的话,先确认装了 git(Ubuntu / Debian 用 sudo apt-get install -y git,Fedora 用 sudo dnf install -y git)。

第 10 步 · 配对手机

$ icloser pair

它会依次做三件事:

  1. 在当前目录建工作区。
  2. 问你这台机器上 Agent 可以自己做到哪一步 —— 直接回车就是第 3 档「读 + 写 + 执行」,能改文件、能跑构建和测试,多数人选它。
  3. 在终端里画一个二维码,下面还有一条「扫不了就手工粘这条」的链接。

这一步的屏幕 Linux 实录里没有单独留档;权限那一问在 Mac 实录里是 6 档菜单、回车=3,见 Mac 从 0 开始 第 10 步。

打开手机上的 KernelHub App 扫这个码。SSH 窗口太窄、码画不全的话,把窗口拉宽再敲下面这一行重画。

二维码被滚屏冲掉了?千万别再敲一次 pair。再 pair 一次会新建一个空工作区,原来的任务一个都不在里面。敲这一行把码重新调出来:
$ icloser qr

第 11 步 · 在手机 App 里输入邀请码

全新账户第一次 pair 时,窗口里会有这么一句(Mac 实录原句,Linux 是同一套 CLI):

  账户 7a9e5014 还没有使用权 —— 在 iPhone 或 Android 上输入一次邀请码即可,
  这台机器会自动继承(CLI 上没有激活入口)

意思是:这个账户还没有使用权,激活只能在手机上做,电脑这边没有入口。打开手机上的 KernelHub App,照提示输入邀请码;兑换成功后,这台电脑自动继承,不用再敲任何命令。

没有码怎么要,见使用权限与激活。已经激活过的账户,pair 时会说「使用权已继承」,这一步跳过。

第 12 步 · 开始接活

$ icloser run

这个窗口别关。它会一直开着,每隔几秒去看有没有新任务 —— 手机上发的任务就是它接的。开头几行会说它加入了哪个工作区、选了哪家 Runtime:

icloser · 设备 cli-fresh-ubuntu · 工作区 cc274549-d96e-44d8-a0a1-f89727078c5e
Selected Runtime: claude · 适配器 claude-code(支持会话接续、只读可强制)
  选择原因: eligible pool 里最佳可用:claude
工作目录 /home/kh/projects/my-app · 轮询 3s
等待命令中(Ctrl-C 退出)…

第 13 步 · 发一条真任务,看它交付

第 12 步那个窗口开着的时候,拿起手机:

  1. 在 KernelHub App 里选中刚配对的工作区,在输入框里打一句话发出去。知道文件名就写上,比如「在 README.md 末尾加一行今天的日期,不要提交」。
  2. 电脑上跑 icloser run 的窗口会滚出新的几行 —— 说明任务被接住了。手机上的任务卡会变成实时视图:读了哪些文件、跑了哪些命令、改了哪些文件。
  3. 任务缺一档权限时,它会在动手之前停下来挂一张卡,点批准只对这一条任务生效。
  4. 跑完之后,点卡片上的「改动」逐行看它改了什么,再读结果:做了什么、改了什么、有什么没做成。结果不满意就点「要求修改」,让同一条任务接着做。

成功:任务状态是完成,「改动」里能看到 README.md 多出的那一行,打开电脑上的文件也确实多了一行。

新机器上没有 Go / Python,第一条任务不会为它停下
KernelHub 会顺手检查机器级的基础工具(Go、Python)。缺了、而这台机器又没批「访问互联网」时,任务照常往下跑,不挂卡icloser run 那个窗口里只多一行记账(CLI 源码里的原句):
  ⓘ go:KernelHub Base(机器级,与这条任务无关)没装上 —— 不挂卡、不阻塞,这条任务照常往下跑。要补齐:在这台机器上跑 icloser env bootstrap go,或在设备权限里批 exec + web 后它会自动补上。
只有任务真要用它 —— 原话里点了名(比如写了 go build),或者干活途中真去跑它 —— 而安装又被拒时,才会在那一刻挂一张卡;批准只对这一条任务生效。已经批过「执行」和「访问互联网」的机器上,它会自己装好接着做,一张卡都不挂(Windows 真机上见过)。

一条任务在第 12 步那个窗口里交付时是这样的(Linux 实录):

▶ 102f0802  新建 hello.txt,内容只写一行:hello from kernelhub。不要提交。
  ✓ 落盘核对通过(看了 2 个路径,没有越权改动)
  ⓘ 改动 1 个文件(+0 −0)
  ⓘ 已上传 1 份产物,手机上可以直接打开
✓ 完成(16s)
    我在项目根目录新建了 `hello.txt`,写入前确认过这个文件不存在。里面只有一行:
    ```
    hello from kernelhub
    ```

同一条任务的结果(CLI 里看到的,和手机上是同一份):

新建 hello.txt,内容只写一行:hello from kernelhub。不要提交。
  状态    done
  机器    fresh-ubuntu
  完成于  09-15 16:58
  小结    我在项目根目录新建了 `hello.txt`,写入前确认过这个文件不存在。里面只有一行:

```
hello from kernelhub
```

我没有提交,这个目录也不是 git 仓库。
  改动    改了你的文件。看改了什么:icloser task diff 102f0802

发出去一直没人接:回去看第 12 步那个窗口还在不在;还卡着就做下一步体检。

第 14 步 · 体检(另开一个终端 / SSH 窗口)

$ icloser doctor
  ✓ 工作目录  /home/kh/projects/my-app
  ? 常驻服务  Unknown(查不到服务状态)
  ✓ 网关连得上、令牌有效
  ✓ 读得到任务队列
      任务 2 条,其中 0 条还没人接
      执行体 fresh-ubuntu · 在轮询(0 秒前)
  ✓ 读得到本机权限
      已生效:exec read write
  ✓ 读得到 AI 团队
  本机 Runtime
      ✓ claude     /home/kh/.local/bin/claude
都正常。

这段是修复前那一版的实录:「常驻服务」那一格在 Linux 上以前恒为 Unknown,v1.0.2 起会如实说装没装、在不在跑。

服务、网关、队列、权限、Runtime 一次查完。哪一项不对,它会直接说下一步该敲什么。

第 15 步 · 关掉窗口、断开 SSH 也要接活:装成常驻

第 12 步那个窗口一关(或 SSH 一断),手机上再发任务就没人接了。有 systemd 的系统跑这一行(它读的是配对时记下的项目目录,在哪个目录敲都一样):

$ icloser daemon install
✓ 已常驻 kernelhub-cli.service
  执行体   /home/kh/.local/bin/icloser run
  项目目录 /home/kh/projects/my-app
  unit     /home/kh/.config/systemd/user/kernelhub-cli.service
  日志     /home/kh/.kernelhub/daemon.log
     除非开启常驻会话:sudo loginctl enable-linger kh
     想要开机即起、与登录无关:用 root 再跑一次 icloser daemon install
  看状态:icloser daemon status

(节选:原输出在「日志」和「除非开启常驻会话」之间还有一行 ⚠️,说这是 user 级常驻、你不是 root,登出之后会被收掉。)

$ sudo loginctl enable-linger "$USER"
$ nohup icloser run >> ~/icloser-run.log 2>&1 &

之后随时用这一行看常驻在不在:

$ icloser daemon status
✓ 正在跑 · pid 12860
  日志 /home/kh/.kernelhub/daemon.log

看它最近在干什么:

$ icloser logs -n 50

装了常驻之后,第 12 步那个手动开的 icloser run 就可以关掉了,两个同时开是多余的。

3 · 本机管理台(含没有图形界面的服务器)

管理台是单独的程序icloser run 不会带起它。起它(这个窗口也会一直占着):

$ kernelhub-desktop --port 18092

在这台机器自己的浏览器里打开 http://127.0.0.1:18092。它只绑在本机回环地址,别的机器直接够不着 —— 这是故意的。

服务器没有浏览器?你自己的电脑上开一个 SSH 隧道(把用户名和服务器地址换掉;这个窗口开着别关),然后在自己电脑的浏览器里打开 http://127.0.0.1:18092

$ ssh -N -L 18092:127.0.0.1:18092 你的用户名@服务器地址

看管理台现在在不在跑、地址是什么:

$ icloser console

4 · Node 的另一种装法:发行版自带的包

也可以用发行版的包管理器装 nodejs 和 npm。两件事要知道:版本常常偏旧;而且装在系统目录,之后 npm install -g 常会报 EACCES(权限不够) —— 包括 KernelHub 安装脚本替你装 claude 那一步。

别用 sudo 硬装,把 npm 的全局目录改到 ~/.local 就好(先做第 2 节第 3 步):

$ npm config set prefix ~/.local && npm config get prefix

成功:打出 /home/你的用户名/.local。然后把第 6 步的安装命令再跑一遍。

5 · 再装别的 Runtime、网络被堵

再装别的 Runtime(不用重跑整个安装)

默认只装了 claude。能用 npm 装的有:claudecodexqwencodebuddyopencodekimimimopi。下面这一行装的是 codex,换成其中任意一个即可:

$ icloser env bootstrap codex

或者用安装命令指定(同样把 codex 换成你要的):

$ KERNELHUB_RUNTIME=codex curl -fsSL https://icloser.xyz/install | sh

装完同样要登录一次(敲它的名字,比如 codex)。Google 这一家是 agy(Antigravity),不走 npm,要从 Google 官方渠道装。

设代理(只对当前这个窗口生效)

端口 换成你自己的代理地址和端口,最后那段是自证:

$ export https_proxy=http://127.0.0.1:端口 http_proxy=http://127.0.0.1:端口; curl -sS -o /dev/null -w "install -> HTTP %{http_code}\n" https://icloser.xyz/install

成功:打出 install -> HTTP 200。打不出就是代理不对,先别往下走。通了之后,第 2 节的命令照常在这个窗口里跑。

npm 换镜像

$ npm config set registry https://registry.npmmirror.com && npm config get registry

会回显镜像地址。registry.npmmirror.com 是常见的公共镜像,换别的就把地址替换掉。

换 KernelHub 自己的下载源 / 不装 Runtime

公司内网有镜像时(镜像要照原样镜像官方目录,SHA-256 仍然会核;安装脚本本身仍从 icloser.xyz 取):

$ KERNELHUB_INSTALL_BASE=https://你的镜像.example.com/kernelhub curl -fsSL https://icloser.xyz/install | sh

一个 Runtime 都不装(只要 CLI):

$ KERNELHUB_SKIP_RUNTIME=1 curl -fsSL https://icloser.xyz/install | sh

6 · 自己核一遍文件对不对

$ sha256sum ~/.local/bin/icloser ~/.local/bin/kernelhub-desktop

打出来的串和下表比,按你的 CPU 看对应的行:

文件字节SHA-256
icloser_linux_amd64(x86-64)12,853,432d3475109eb22f704a2690a2295c289f6b5cd76ed164e19c90d6f4113cc754a68
kernelhub-desktop_linux_amd648,220,8566a6ebce22da317af3efd70d08d417ac41588ff0523ca1a935aae1b08ab4332ee
icloser_linux_arm64(arm64)12,058,808f182497a8f536a9bda060d0cb7f46f227eace2ccf2506caf58bd963dd03c4bac
kernelhub-desktop_linux_arm647,798,96878aacc8bdd4e0be4b8815dc5c93715a0cde0edf986829de21ae8dab2199bd258
node-v24.21.0-linux-x64.tar.gz6e1db87ef58b8819e5d5402eff1536491b18edd8eb7bee5ef7897876e88dc5ff
node-v24.21.0-linux-arm64.tar.gz724282c3b43aec998aa9527380465b45d229e021b58035f5f4f63095eabfe5d5

KernelHub 那几行与发布清单 stable.json 逐字一致;Node 那两行来自 nodejs.org 的 SHASUMS256.txt。安装脚本本身已经替你核过一遍,这里是给想亲眼看的人。

7 · 常见报错:症状 → 原因 → 那一行命令

你看到的原因怎么办
curl: command not found精简系统没带 curl第 2 节第 1 步装 curl
node: command not found没装 Node,或第 3 步没做做第 2 节第 3~5 步
icloser: command not found~/.local/bin 不在 PATH 里做第 2 节第 3 步
安装时「这台机器上没有 npm,Runtime 没装」先装了 KernelHub 后装 Node装好 Node,再跑 curl -fsSL https://icloser.xyz/install | sh
安装时「这台机器上没有 shasum 也没有 sha256sum」系统缺 coreutils装 coreutils 后重跑安装
npm install -gEACCESNode 装在系统目录第 4 节:npm config set prefix ~/.local
Node 校验 FAILED下载坏了重跑第 4 步那一行
任务回「本机一家都跑不了」Runtime 没装或没登录claude 登录,再 icloser runtimes 看状态
手机扫了码,发的任务一直没人接icloser run 没开着,也没装常驻在项目目录跑 icloser run,或第 15 步 icloser daemon install
SSH 一断 / 一登出,任务就没人接了用户级常驻被 systemd 收掉第 15 步开启常驻会话(loginctl enable-linger
daemon install 报「这台机器上没有 systemctl」容器或精简系统没有 systemd用第 15 步的 nohup 那一行
二维码被冲掉了窗口滚屏icloser qr别再 pair
curl: (18) / (35) / (56),或「清单和服务器上的产物对不上了」,或只打一行 curl: (35) … 就结束网络中途断了(实测多次,都是下载到一半断掉,不是产物真的不对)原命令再跑一遍
daemon installFailed to connect to bus当前会话不是正常登录会话(例如 su 切过来、容器里 exec 进来),用户级 systemd 连不上用桌面或 SSH 正常登录后再跑;普通用户先 sudo loginctl enable-linger "$USER"

8 · 卸载 / 清干净

① 装过常驻的,先卸常驻:

$ icloser daemon uninstall

② 先看清楚要删什么(只列,不删):

$ ls -d ~/.kernelhub ~/.kernelhub-gate ~/.kernelhub-protected 2>/dev/null

③ 删数据目录。三个目录分别是配置与任务台账、身份凭据、受保护的根目录,三个都删掉才算清干净。删了就要重新配对:

$ rm -rf ~/.kernelhub ~/.kernelhub-gate ~/.kernelhub-protected

④ 删程序本体:

$ rm -f ~/.local/bin/icloser ~/.local/bin/icli ~/.local/bin/kernelhub-cli ~/.local/bin/devnexus-cli ~/.local/bin/kernelhub-desktop

~/.bashrc 里那行 PATH 可以留着(Node 也在那个目录里)。Node 和各家 Runtime 是你自己装的:按本页装的 Node 在 ~/.local 下,不要了就删掉 ~/.local/bin/node~/.local/bin/npm~/.local/bin/npx~/.local/lib/node_modules

接着看:快速上手 · 配对 · 故障排查