+ {/* data-settings-label lets indexed settings search scroll to these. */}
+
+
+
+
+ unsloth start
+ {" "}
+ {t("settings.agents.intro")}
+
+
+
+
+ {t("settings.agents.readDocs")}
+
+
+
+
+
+
+
+
+
+
+
+ {SUPPORTED_AGENTS.map((agent) => (
+
+
+
+
+ {agent.name}
+
+ {detected.has(agent.id) ? (
+
+ {t("settings.agents.quickstart.installed")}
+
+ ) : null}
+ {agent.id === "codex" && !isGguf ? (
+
+ {t("settings.agents.supportedAgents.requiresGguf")}
+
+ ) : null}
+
+
+
+ ))}
+
+ {visibleInfo !== null && detected.size === 0 ? (
+
+ {t("settings.agents.quickstart.noneDetected")}
+
+ ) : null}
+
+
+
+
+
+
+ {t("settings.agents.models.suffixLabel")}
+
+
+
+
+
+ {t("settings.agents.models.variantLabel")}
+
+
+
+
+
+
+
+
+ {OPTION_ROWS.map((row) => (
+
+
+ {row.flag}
+
+
+ {t(row.descKey)}
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+ {PASSTHROUGH_EXAMPLES.map(({ agent, flags }) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/studio/frontend/src/i18n/locales/en.ts b/studio/frontend/src/i18n/locales/en.ts
index 2e6571c300..491fc8b18f 100644
--- a/studio/frontend/src/i18n/locales/en.ts
+++ b/studio/frontend/src/i18n/locales/en.ts
@@ -101,6 +101,7 @@ export const en = {
connections: "Connections",
data: "Data",
apiKeys: "API",
+ agents: "Agents",
about: "About",
},
voice: {
@@ -580,6 +581,67 @@ export const en = {
unknown: "Unknown",
},
},
+ agents: {
+ title: "Agents (unsloth start)",
+ description:
+ "Connect coding agents like Claude Code and Codex to a model running locally in Unsloth.",
+ intro:
+ "connects Claude Code, Codex, Hermes, OpenClaw, OpenCode, Pi and other agents to a model served locally by Unsloth, fully offline on your own hardware. It runs a OpenAI-compatible server for the agent and never touches your agent's config files.",
+ readDocs: "Read the docs",
+ copy: "Copy",
+ copied: "Copied",
+ quickstart: {
+ title: "Quickstart",
+ description:
+ "Launch an agent against the model currently loaded in Studio. Load a model first, then swap claude for any supported agent below.",
+ noneDetected: "No supported agent CLIs were found on your PATH.",
+ installed: "Installed",
+ },
+ supportedAgents: {
+ title: "Supported agents",
+ description: "Each agent launches with its own command:",
+ requiresGguf: "Needs a GGUF model",
+ },
+ models: {
+ title: "Choosing a model",
+ description:
+ "Pass --model to pick a model and quantization, and --context-length to set the window. Use a quantization suffix, or an explicit --gguf-variant flag.",
+ suffixLabel: "With a quantization suffix",
+ variantLabel: "With an explicit variant flag",
+ },
+ options: {
+ title: "Common options",
+ description:
+ "Unsloth flags are parsed first; anything it doesn't recognize is passed straight through to the agent.",
+ model:
+ "Select a model. Without --model, unsloth start uses the model currently loaded in Studio and errors if none is loaded.",
+ contextLength:
+ "Set the requested context length (alias: --max-seq-length).",
+ ggufVariant: "Choose the GGUF quantization variant.",
+ loadIn4bit: "Toggle 4-bit loading for Hugging Face models.",
+ tensorParallel: "Toggle tensor-parallel across multiple GPUs.",
+ serve: "Enable or disable the automatic local server.",
+ launch: "Launch the agent, or just print the command and environment.",
+ persist: "Keep Unsloth-managed agent storage between runs.",
+ apiKey: "Provide your Unsloth API key (or set UNSLOTH_API_KEY).",
+ yolo: "Skip approval prompts. Use only in trusted environments.",
+ },
+ remote: {
+ title: "Connect to a remote Studio",
+ description:
+ "Point unsloth start at a Studio running elsewhere by setting these before launching (or pass --api-key directly):",
+ },
+ passthrough: {
+ title: "Passing agent arguments",
+ description:
+ "Arguments after the Unsloth flags are forwarded to the agent itself, so native commands like resume still work:",
+ },
+ dryRun: {
+ title: "Preview without launching",
+ description:
+ "Add --no-launch to print the environment and command instead of launching the agent. If --model is set, the model may still be resolved and loaded.",
+ },
+ },
chat: {
title: "Chat",
description: "Customize how chat behaves on this device.",