summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/cli/cmd/upgrade.ts1
-rw-r--r--packages/opencode/src/installation/index.ts11
2 files changed, 11 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/upgrade.ts b/packages/opencode/src/cli/cmd/upgrade.ts
index 9902810e9..ab65a3781 100644
--- a/packages/opencode/src/cli/cmd/upgrade.ts
+++ b/packages/opencode/src/cli/cmd/upgrade.ts
@@ -25,6 +25,7 @@ export const UpgradeCommand = {
prompts.outro("Done")
return
}
+ prompts.log.info("Installed via " + method)
const target = args.target ?? (await Installation.latest())
prompts.log.info(`From ${Installation.VERSION} → ${target}`)
const spinner = prompts.spinner()
diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts
index bb2626eec..de7c20c18 100644
--- a/packages/opencode/src/installation/index.ts
+++ b/packages/opencode/src/installation/index.ts
@@ -66,6 +66,10 @@ export namespace Installation {
name: "bun" as const,
command: () => $`bun pm ls -g`.throws(false).text(),
},
+ {
+ name: "brew" as const,
+ command: () => $`brew list --formula opencode-ai`.throws(false).text(),
+ },
]
checks.sort((a, b) => {
@@ -97,13 +101,18 @@ export namespace Installation {
const cmd = (() => {
switch (method) {
case "curl":
- return $`curl -fsSL https://opencode.ai/install | bash`
+ return $`curl -fsSL https://opencode.ai/install | bash`.env({
+ VERSION: target,
+ ...process.env,
+ })
case "npm":
return $`npm install -g opencode-ai@${target}`
case "pnpm":
return $`pnpm install -g opencode-ai@${target}`
case "bun":
return $`bun install -g opencode-ai@${target}`
+ case "brew":
+ return $`brew install sst/tap/opencode`
default:
throw new Error(`Unknown method: ${method}`)
}