From 4aaece29d9a37a225597021d9df2edb72f017410 Mon Sep 17 00:00:00 2001 From: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Date: Wed, 13 May 2026 13:14:39 +0800 Subject: [PATCH] feat(desktop): reintroduce AppStream MetaInfo for Linux desktop builds (#27253) --- packages/desktop/.gitignore | 1 + packages/desktop/scripts/copy-metainfo.ts | 47 +++++++++++++++++++++++ packages/desktop/scripts/prebuild.ts | 1 + 3 files changed, 49 insertions(+) create mode 100644 packages/desktop/scripts/copy-metainfo.ts diff --git a/packages/desktop/.gitignore b/packages/desktop/.gitignore index ac9d8db969..6923045cd9 100644 --- a/packages/desktop/.gitignore +++ b/packages/desktop/.gitignore @@ -26,3 +26,4 @@ out/ resources/opencode-cli* resources/icons +resources/*.metainfo.xml diff --git a/packages/desktop/scripts/copy-metainfo.ts b/packages/desktop/scripts/copy-metainfo.ts new file mode 100644 index 0000000000..e7585ccafd --- /dev/null +++ b/packages/desktop/scripts/copy-metainfo.ts @@ -0,0 +1,47 @@ +import { resolveChannel } from "./utils" + +const arg = process.argv[2] +const channel = arg === "dev" || arg === "beta" || arg === "prod" ? arg : resolveChannel() + +const appId = channel === "prod" ? "ai.opencode.desktop" : `ai.opencode.desktop.${channel}` +const productName = channel === "prod" ? "OpenCode" : `OpenCode ${channel.charAt(0).toUpperCase() + channel.slice(1)}` +const summary = `Open source AI coding agent${channel !== "prod" ? ` (${channel})` : ""}` + +const xml = ` + + ${appId} + + CC0-1.0 + MIT + + ${productName} + ${summary} + + + Anomaly Innovations Inc. + + + +

+ OpenCode is an open source agent that helps you write and run code with any AI model. +

+
+ + ${appId}.desktop + + + + https://github.com/anomalyco/opencode/issues + https://opencode.ai + https://github.com/anomalyco/opencode + + + + https://raw.githubusercontent.com/anomalyco/opencode/b75d4d1c5ec449585d515c756fc81f080a157a9a/packages/web/src/assets/lander/screenshot.png + + +
+` + +await Bun.write(`resources/${appId}.metainfo.xml`, xml) +console.log(`Generated metainfo for ${channel} at resources/${appId}.metainfo.xml`) diff --git a/packages/desktop/scripts/prebuild.ts b/packages/desktop/scripts/prebuild.ts index 46a2475ea5..79b0e30afc 100644 --- a/packages/desktop/scripts/prebuild.ts +++ b/packages/desktop/scripts/prebuild.ts @@ -5,5 +5,6 @@ import { resolveChannel } from "./utils" const channel = resolveChannel() await $`bun ./scripts/copy-icons.ts ${channel}` +await $`bun ./scripts/copy-metainfo.ts ${channel}` await $`cd ../opencode && bun script/build-node.ts`