fix: update uninstall command to reference kilo instead of opencode

Replace opencode-ai with @kilocode/cli and opencode with kilo in all
package manager uninstall commands (npm, pnpm, bun, yarn, brew, choco,
scoop). Also update shell config detection and cleanup to handle both
legacy opencode and kilo path markers for backward compatibility.
This commit is contained in:
marius-kilocode
2026-02-17 13:04:53 +01:00
parent 769013fb6e
commit f91f302d86
+29 -19
View File
@@ -128,13 +128,13 @@ async function showRemovalSummary(targets: RemovalTargets, method: Installation.
if (method !== "curl" && method !== "unknown") {
const cmds: Record<string, string> = {
npm: "npm uninstall -g opencode-ai",
pnpm: "pnpm uninstall -g opencode-ai",
bun: "bun remove -g opencode-ai",
yarn: "yarn global remove opencode-ai",
npm: "npm uninstall -g @kilocode/cli", // kilocode_change
pnpm: "pnpm uninstall -g @kilocode/cli", // kilocode_change
bun: "bun remove -g @kilocode/cli", // kilocode_change
yarn: "yarn global remove @kilocode/cli", // kilocode_change
brew: "brew uninstall opencode",
choco: "choco uninstall opencode",
scoop: "scoop uninstall opencode",
choco: "choco uninstall kilo", // kilocode_change
scoop: "scoop uninstall kilo", // kilocode_change
}
prompts.log.info(` ✓ Package: ${cmds[method] || method}`)
}
@@ -179,13 +179,13 @@ async function executeUninstall(method: Installation.Method, targets: RemovalTar
if (method !== "curl" && method !== "unknown") {
const cmds: Record<string, string[]> = {
npm: ["npm", "uninstall", "-g", "opencode-ai"],
pnpm: ["pnpm", "uninstall", "-g", "opencode-ai"],
bun: ["bun", "remove", "-g", "opencode-ai"],
yarn: ["yarn", "global", "remove", "opencode-ai"],
npm: ["npm", "uninstall", "-g", "@kilocode/cli"], // kilocode_change
pnpm: ["pnpm", "uninstall", "-g", "@kilocode/cli"], // kilocode_change
bun: ["bun", "remove", "-g", "@kilocode/cli"], // kilocode_change
yarn: ["yarn", "global", "remove", "@kilocode/cli"], // kilocode_change
brew: ["brew", "uninstall", "opencode"],
choco: ["choco", "uninstall", "opencode"],
scoop: ["scoop", "uninstall", "opencode"],
choco: ["choco", "uninstall", "kilo"], // kilocode_change
scoop: ["scoop", "uninstall", "kilo"], // kilocode_change
}
const cmd = cmds[method]
@@ -193,7 +193,7 @@ async function executeUninstall(method: Installation.Method, targets: RemovalTar
spinner.start(`Running ${cmd.join(" ")}...`)
const result =
method === "choco"
? await $`echo Y | choco uninstall opencode -y -r`.quiet().nothrow()
? await $`echo Y | choco uninstall kilo -y -r`.quiet().nothrow() // kilocode_change
: await $`${cmd}`.quiet().nothrow()
if (result.exitCode !== 0) {
spinner.stop(`Package manager uninstall failed: exit code ${result.exitCode}`, 1)
@@ -217,7 +217,8 @@ async function executeUninstall(method: Installation.Method, targets: RemovalTar
prompts.log.info(` rm "${targets.binary}"`)
const binDir = path.dirname(targets.binary)
if (binDir.includes(".opencode")) {
if (binDir.includes(".opencode") || binDir.includes(".kilo")) {
// kilocode_change
prompts.log.info(` rmdir "${binDir}" 2>/dev/null`)
}
}
@@ -270,9 +271,16 @@ async function getShellConfigFile(): Promise<string | null> {
const content = await Bun.file(file)
.text()
.catch(() => "")
if (content.includes("# opencode") || content.includes(".opencode/bin")) {
// kilocode_change start - detect both opencode and kilo markers
if (
content.includes("# opencode") ||
content.includes(".opencode/bin") ||
content.includes("# kilo") ||
content.includes(".kilo/bin")
) {
return file
}
// kilocode_change end
}
return null
@@ -288,24 +296,26 @@ async function cleanShellConfig(file: string) {
for (const line of lines) {
const trimmed = line.trim()
if (trimmed === "# opencode") {
// kilocode_change start - clean both opencode and kilo markers
if (trimmed === "# opencode" || trimmed === "# kilo") {
skip = true
continue
}
if (skip) {
skip = false
if (trimmed.includes(".opencode/bin") || trimmed.includes("fish_add_path")) {
if (trimmed.includes(".opencode/bin") || trimmed.includes(".kilo/bin") || trimmed.includes("fish_add_path")) {
continue
}
}
if (
(trimmed.startsWith("export PATH=") && trimmed.includes(".opencode/bin")) ||
(trimmed.startsWith("fish_add_path") && trimmed.includes(".opencode"))
(trimmed.startsWith("export PATH=") && (trimmed.includes(".opencode/bin") || trimmed.includes(".kilo/bin"))) ||
(trimmed.startsWith("fish_add_path") && (trimmed.includes(".opencode") || trimmed.includes(".kilo")))
) {
continue
}
// kilocode_change end
filtered.push(line)
}