summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-11-04 12:33:03 -0500
committerDax Raad <[email protected]>2025-11-04 12:33:14 -0500
commitbc6f4aed2bfb662d24a28b1cfe927a3e8af637bf (patch)
tree309887906033508c991544edd56e11019c949cc5
parent2af3f19397b83badd59fcbbb5fff1657d344bf10 (diff)
downloadopencode-bc6f4aed2bfb662d24a28b1cfe927a3e8af637bf.tar.gz
opencode-bc6f4aed2bfb662d24a28b1cfe927a3e8af637bf.zip
local web
-rw-r--r--packages/desktop/src/index.tsx4
-rw-r--r--packages/opencode/src/cli/cmd/tui/app.tsx1
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/web.ts9
-rw-r--r--packages/opencode/src/server/server.ts11
5 files changed, 21 insertions, 6 deletions
diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx
index 0d631a5a0..9fe5da2f6 100644
--- a/packages/desktop/src/index.tsx
+++ b/packages/desktop/src/index.tsx
@@ -12,7 +12,9 @@ import Home from "@/pages"
const host = import.meta.env.VITE_OPENCODE_SERVER_HOST ?? "127.0.0.1"
const port = import.meta.env.VITE_OPENCODE_SERVER_PORT ?? "4096"
-const url = new URLSearchParams(document.location.search).get("url") || `http://${host}:${port}`
+const url =
+ new URLSearchParams(document.location.search).get("url") ||
+ (location.hostname.includes("opencode.ai") ? `http://${host}:${port}` : "/")
const root = document.getElementById("root")
if (import.meta.env.DEV && !(root instanceof HTMLElement)) {
diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx
index 7938ec86f..e57ef8cd6 100644
--- a/packages/opencode/src/cli/cmd/tui/app.tsx
+++ b/packages/opencode/src/cli/cmd/tui/app.tsx
@@ -358,6 +358,7 @@ function App() {
event.on(SessionApi.Event.Deleted.type, (evt) => {
if (route.data.type === "session" && route.data.sessionID === evt.properties.info.id) {
+ dialog.clear()
route.navigate({ type: "home" })
toast.show({
variant: "info",
diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
index 31b1c2b5c..4a720aa15 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
@@ -72,7 +72,7 @@ export function DialogSessionList() {
},
})
setToDelete(undefined)
- dialog.clear()
+ // dialog.clear()
return
}
setToDelete(option.value)
diff --git a/packages/opencode/src/cli/cmd/web.ts b/packages/opencode/src/cli/cmd/web.ts
index 4823414f7..8fc8a9915 100644
--- a/packages/opencode/src/cli/cmd/web.ts
+++ b/packages/opencode/src/cli/cmd/web.ts
@@ -26,12 +26,15 @@ export const WebCommand = cmd({
port,
hostname,
})
- const url = `https://desktop.dev.opencode.ai?url=${server.url}`
UI.empty()
UI.println(UI.logo(" "))
UI.empty()
- UI.println(UI.Style.TEXT_INFO_BOLD + " Web interface: ", UI.Style.TEXT_NORMAL, url)
- open(url).catch(() => {})
+ UI.println(
+ UI.Style.TEXT_INFO_BOLD + " Web interface: ",
+ UI.Style.TEXT_NORMAL,
+ server.url.toString(),
+ )
+ open(server.url.toString()).catch(() => {})
await new Promise(() => {})
await server.stop()
},
diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts
index 919d68287..68c61453a 100644
--- a/packages/opencode/src/server/server.ts
+++ b/packages/opencode/src/server/server.ts
@@ -10,6 +10,7 @@ import {
import { Hono } from "hono"
import { cors } from "hono/cors"
import { stream, streamSSE } from "hono/streaming"
+import { proxy } from "hono/proxy"
import { Session } from "../session"
import z from "zod"
import { Provider } from "../provider/provider"
@@ -1696,7 +1697,15 @@ export namespace Server {
})
})
},
- ),
+ )
+ .all("/*", async (c) => {
+ return proxy(`https://desktop.dev.opencode.ai${c.req.path}`, {
+ ...c.req,
+ headers: {
+ host: "desktop.dev.opencode.ai",
+ },
+ })
+ }),
)
export async function openapi() {