-
+
{language.t("settings.providers.title")}
+
diff --git a/packages/app/src/components/settings-server-picker.tsx b/packages/app/src/components/settings-server-picker.tsx
new file mode 100644
index 000000000..3f679753f
--- /dev/null
+++ b/packages/app/src/components/settings-server-picker.tsx
@@ -0,0 +1,106 @@
+import { Button } from "@opencode-ai/ui/button"
+import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
+import { Icon } from "@opencode-ai/ui/icon"
+import { QueryClientProvider } from "@tanstack/solid-query"
+import { createMemo, For, type ParentProps, Show } from "solid-js"
+import { ServerHealthIndicator, ServerRow } from "@/components/server/server-row"
+import { ModelsProvider } from "@/context/models"
+import { ServerConnection } from "@/context/server"
+import { ServerSDKProvider } from "@/context/server-sdk"
+import { ServerSyncProvider } from "@/context/server-sync"
+import { useGlobal } from "@/context/global"
+import { useSettings } from "@/context/settings"
+
+export function SettingsServerScope(props: ParentProps) {
+ const global = useGlobal()
+ const settings = useSettings()
+
+ return (
+
+
+ {(server) => {props.children}}
+
+
+ )
+}
+
+function SettingsServerDataProviders(props: ParentProps<{ server: ServerConnection.Any }>) {
+ const global = useGlobal()
+ const serverCtx = () => global.createServerCtx(props.server)
+
+ return (
+
+
+
+ {props.children}
+
+
+
+ )
+}
+
+export function SettingsServerPicker() {
+ const global = useGlobal()
+ const settings = useSettings()
+ const selected = createMemo(() =>
+ settings.general.newLayoutDesigns() ? global.settings.server.selected() : undefined,
+ )
+
+ return (
+
+ {(conn) => (
+
+
+
+
+
+
+
+
+
+
+ )}
+
+ )
+}
diff --git a/packages/app/src/components/settings-servers.tsx b/packages/app/src/components/settings-servers.tsx
new file mode 100644
index 000000000..299d41f6d
--- /dev/null
+++ b/packages/app/src/components/settings-servers.tsx
@@ -0,0 +1,33 @@
+import { Show, type Component } from "solid-js"
+import { useLanguage } from "@/context/language"
+import { ServerConnectionForm, ServerConnectionList, useServerManagementController } from "./dialog-select-server"
+
+export const SettingsServers: Component = () => {
+ const language = useLanguage()
+ const controller = useServerManagementController()
+
+ return (
+
+ )
+}
diff --git a/packages/app/src/components/settings-v2/dialog-settings-v2.tsx b/packages/app/src/components/settings-v2/dialog-settings-v2.tsx
index d574dcf49..7408767b9 100644
--- a/packages/app/src/components/settings-v2/dialog-settings-v2.tsx
+++ b/packages/app/src/components/settings-v2/dialog-settings-v2.tsx
@@ -9,6 +9,7 @@ import { SettingsKeybinds } from "../settings-keybinds"
import { SettingsProvidersV2 } from "./providers"
import { SettingsModelsV2 } from "./models"
import "./settings-v2.css"
+import { SettingsServers } from "../settings-servers"
export const DialogSettings: Component = () => {
const language = useLanguage()
@@ -38,6 +39,10 @@ export const DialogSettings: Component = () => {
{language.t("settings.tab.shortcuts")}
+
+
+ {language.t("status.popover.tab.servers")}
+