+
+
+
+ + Integrations +
++ Connect external tools to your exo cluster. +
+
+ API Endpoint
+ {apiUrl}
+ {#if runningModels.length > 0}
+
+
+
+
+ Running model{runningModels.length > 1 ? "s" : ""}:
+
+ {:else}
+ -
+ {#each runningModels as model}
+
- {model} + {/each} +
+ No models currently running +
+ {/if} +
+
+
+
+
+
+
+ OpenAI-compatible
+ {apiUrl}/v1
+
+
+ Claude-compatible
+ {apiUrl}
+
+
+ Ollama-compatible
+ {apiUrl}/ollama
+
+
+ {#each tabs as tab}
+
+ {/each}
+
+
+
+
+ {#if activeTab === "Claude Code"}
+ {#if runningModels.length > 1}
+
+
+ {:else if activeTab === "OpenCode"}
+
+ {:else if activeTab === "Codex"}
+
+
+ {:else if activeTab === "OpenClaw"}
+ {#if runningModels.length > 1}
+
+
+ {:else if activeTab === "Open WebUI"}
+
+ 0 ? runningModels.join(", ") : "no models running"}`}
+ config={"open http://localhost:3000"}
+ language="bash"
+ />
+
+ {:else if activeTab === "n8n"}
+
+
+
+
+ {:else if activeTab === "Firefox"}
+
+ {/if}
+
+
+ {#each [{ label: "Opus", bind: () => opusModel, set: (v: string) => (opusModel = v) }, { label: "Sonnet", bind: () => sonnetModel, set: (v: string) => (sonnetModel = v) }, { label: "Haiku", bind: () => haikuModel, set: (v: string) => (haikuModel = v) }] as tier}
+
+ {/if}
+
+ {tier.label}
+
+
+ {/each}
+
+ {#if runningModels.length > 1}
+
+
+ Model
+
+
+ {/if}
+
+ MCP Filesystem Path
+
+
+
+ Model
+
+
+ {/if}
+