diff --git a/packages/app/index.html b/packages/app/index.html
index d71535182c81..c772f86209af 100644
--- a/packages/app/index.html
+++ b/packages/app/index.html
@@ -7,11 +7,11 @@
content="width=device-width, initial-scale=1, interactive-widget=resizes-content, viewport-fit=cover"
/>
OpenCode
-
-
-
-
-
+
+
+
+
+
@@ -19,6 +19,7 @@
+
diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx
index 4ab0a95c23e0..8e2fa92b24f4 100644
--- a/packages/app/src/app.tsx
+++ b/packages/app/src/app.tsx
@@ -467,6 +467,7 @@ export function AppInterface(props: {
servers?: Array
router?: Component
disableHealthCheck?: boolean
+ basePath?: string
}) {
// The visual new layout lives in the router root so it remains mounted across
// route changes. Draft and session routes override only their server-bound data
@@ -492,6 +493,7 @@ export function AppInterface(props: {
(
diff --git a/packages/app/src/entry.tsx b/packages/app/src/entry.tsx
index c41c1bb4b63e..929ea19c986d 100644
--- a/packages/app/src/entry.tsx
+++ b/packages/app/src/entry.tsx
@@ -99,11 +99,33 @@ if (!(root instanceof HTMLElement) && import.meta.env.DEV) {
throw new Error(getRootNotFoundError())
}
+/**
+ * Read the runtime base path injected by the server into the