summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/desktop/src')
-rw-r--r--packages/desktop/src/cli.ts13
-rw-r--r--packages/desktop/src/menu.ts5
2 files changed, 18 insertions, 0 deletions
diff --git a/packages/desktop/src/cli.ts b/packages/desktop/src/cli.ts
new file mode 100644
index 000000000..965ed6ddc
--- /dev/null
+++ b/packages/desktop/src/cli.ts
@@ -0,0 +1,13 @@
+import { invoke } from "@tauri-apps/api/core"
+import { message } from "@tauri-apps/plugin-dialog"
+
+export async function installCli(): Promise<void> {
+ try {
+ const path = await invoke<string>("install_cli")
+ await message(`CLI installed to ${path}\n\nRestart your terminal to use the 'opencode' command.`, {
+ title: "CLI Installed",
+ })
+ } catch (e) {
+ await message(`Failed to install CLI: ${e}`, { title: "Installation Failed" })
+ }
+}
diff --git a/packages/desktop/src/menu.ts b/packages/desktop/src/menu.ts
index d1a5fba8e..bf9ca4b8a 100644
--- a/packages/desktop/src/menu.ts
+++ b/packages/desktop/src/menu.ts
@@ -2,6 +2,7 @@ import { Menu, MenuItem, PredefinedMenuItem, Submenu } from "@tauri-apps/api/men
import { type as ostype } from "@tauri-apps/plugin-os"
import { runUpdater, UPDATER_ENABLED } from "./updater"
+import { installCli } from "./cli"
export async function createMenu() {
if (ostype() !== "macos") return
@@ -19,6 +20,10 @@ export async function createMenu() {
action: () => runUpdater({ alertOnFail: true }),
text: "Check For Updates...",
}),
+ await MenuItem.new({
+ action: () => installCli(),
+ text: "Install CLI...",
+ }),
await PredefinedMenuItem.new({
item: "Separator",
}),