diff --git a/apps/docs/docs/getting-started/after-the-installation.mdx b/apps/docs/docs/getting-started/after-the-installation.mdx index 6fbb301d0..695441dfd 100644 --- a/apps/docs/docs/getting-started/after-the-installation.mdx +++ b/apps/docs/docs/getting-started/after-the-installation.mdx @@ -55,7 +55,7 @@ The studio keeps related choices together: 2. **Discover** checks the actual database, Docker-compatible sockets, Kubernetes configuration, Workshop, and Assistant capabilities. Unavailable sources never block manual setup. 3. **Connect** shows detected integrations and apps first, identifying whether each app came from an explicit [`homarr.*` or Homepage Docker label](/docs/integrations/docker-labels) or image matching. Select several integrations and apps at once, review every URL, and use the service-specific link to open its API-key settings when one is available. If a container has no published port or URL label, add its HTTP or HTTPS address before importing it. 4. **Board** previews the Base layout, colors, widget radius, sidebars, selected apps, and widgets inferred from integrations or Docker labels. Choose 8 columns for a focused board, 10 for a balanced board, 12 for a wide board, or use the slider for a custom width up to 24 columns. Homarr still creates and reflows the protected Mobile layout automatically. A fast setup adds the integration-free Clock, Weather, and Bookmarks starter widgets. -5. **Extend** explains and optionally configures Homarr Assistant, the community Workshop, and the separate Homarr MCP endpoint. +5. **Extend** explains and optionally configures Assistant, the community Workshop, and the separate Homarr MCP endpoint. 6. **Review** tests the selected connections, then saves integrations, apps, widgets, settings, and the exact first board together. If any part fails, the database changes are rolled back and your form stays available to correct. Docker discovery reports each configured host separately. Results from reachable hosts remain selectable if another socket diff --git a/apps/docs/docs/management/assistant.mdx b/apps/docs/docs/management/assistant.mdx index aec1bde4e..57b6ec746 100644 --- a/apps/docs/docs/management/assistant.mdx +++ b/apps/docs/docs/management/assistant.mdx @@ -1,5 +1,5 @@ --- -description: Configure and use Homarr Assistant. +description: Configure and use Assistant. tags: - Assistant - AI @@ -8,10 +8,10 @@ tags: # Assistant -Homarr Assistant can answer questions and manage Homarr for you. It uses the signed-in user's permissions and asks for +Assistant can answer questions and manage Homarr for you. It uses the signed-in user's permissions and asks for approval before making changes. - + ## Set it up diff --git a/apps/docs/docs/management/boards/index.mdx b/apps/docs/docs/management/boards/index.mdx index 651cd6e7c..11d1ba271 100644 --- a/apps/docs/docs/management/boards/index.mdx +++ b/apps/docs/docs/management/boards/index.mdx @@ -317,7 +317,7 @@ Change the radius of your items and Containers. This is the field where you can enter custom CSS. The styling will only be applied on the respective board page. -When Homarr Assistant is enabled, users with modify permission can also ask it to edit the board's General, Background, +When Assistant is enabled, users with modify permission can also ask it to edit the board's General, Background, Appearance, Custom CSS, and app-status settings. The assistant reads the current stylesheet first and presents an editable review form before requesting approval to save the change. It does not edit responsive layouts, access control, or Danger zone actions. diff --git a/apps/docs/docs/management/custom-widgets/agent-authoring.mdx b/apps/docs/docs/management/custom-widgets/agent-authoring.mdx index 8d9380157..a33d1cf9b 100644 --- a/apps/docs/docs/management/custom-widgets/agent-authoring.mdx +++ b/apps/docs/docs/management/custom-widgets/agent-authoring.mdx @@ -125,7 +125,7 @@ model judges a result, the candidate must pass Homarr's real clipboard parser, c checks for documented endpoints, authentication, request triggers, query bindings, response fields, and essential runtime components. -To exercise the real Homarr Assistant lifecycle instead of accepting a returned JSON block, run: +To exercise the real Assistant lifecycle instead of accepting a returned JSON block, run: ```sh OPENROUTER_API_KEY=... pnpm --filter @homarr/custom-widgets test:assistant-ai diff --git a/apps/docs/docs/management/custom-widgets/index.mdx b/apps/docs/docs/management/custom-widgets/index.mdx index 80406808a..33dcfed89 100644 --- a/apps/docs/docs/management/custom-widgets/index.mdx +++ b/apps/docs/docs/management/custom-widgets/index.mdx @@ -43,7 +43,7 @@ interface HomarrCustomWidgetV2 { ### Design with AI The **Design with AI** action is available while creating or editing a custom widget. Describe what the widget should show and, -when [Homarr Assistant](../assistant) is enabled, send the request directly from the form. The generated prompt includes the +when [Assistant](../assistant) is enabled, send the request directly from the form. The generated prompt includes the widget schema and current non-secret configuration, but not the latest preview response. It proposes the matching create or update tool for your approval. diff --git a/apps/docs/docs/management/mcp.mdx b/apps/docs/docs/management/mcp.mdx index c0ed2e7b1..9deb3585f 100644 --- a/apps/docs/docs/management/mcp.mdx +++ b/apps/docs/docs/management/mcp.mdx @@ -17,7 +17,7 @@ remains available as a compatibility alias, but new clients should always use `/ With MCP, you can ask your AI assistant to manage apps, integrations, users, boards, Docker containers, media servers, DNS settings, and more - all through Homarr's existing tRPC API, now exposed as 50+ AI-callable tools. -The optional [Homarr Assistant](./assistant) uses these same tool definitions internally. +The optional [Assistant](./assistant) uses these same tool definitions internally. Unlike external MCP clients, it uses the current Homarr session directly and asks for in-conversation approval before running mutating procedures. diff --git a/apps/nextjs/src/app/api/assistant/chat/route.ts b/apps/nextjs/src/app/api/assistant/chat/route.ts index eb9cac440..c96b8d3e3 100644 --- a/apps/nextjs/src/app/api/assistant/chat/route.ts +++ b/apps/nextjs/src/app/api/assistant/chat/route.ts @@ -371,12 +371,12 @@ export async function POST(request: Request) { const session = await auth(); if (!session) { - return Response.json({ error: "Sign in to use Homarr Assistant." }, { status: 401 }); + return Response.json({ error: "Sign in to use Assistant." }, { status: 401 }); } const featureControls = await getServerSettingByKeyAsync(db, "featureControls"); if (!featureControls.assistantEnabled) { - return Response.json({ error: "Homarr Assistant is disabled." }, { status: 404 }); + return Response.json({ error: "Assistant is disabled." }, { status: 404 }); } const requestBody = await request.text(); @@ -420,7 +420,7 @@ export async function POST(request: Request) { const requiresApiKey = configuration ? assistantProviderRequiresApiKey(configuration.provider) : false; if (!configuration?.enabled || !configuration.modelId || (requiresApiKey && !configuration.encryptedApiKey)) { - return Response.json({ error: "Homarr Assistant is not configured." }, { status: 503 }); + return Response.json({ error: "Assistant is not configured." }, { status: 503 }); } let homarrProviderToken: string | null | undefined; diff --git a/apps/nextjs/src/components/assistant/assistant-conversation-export.ts b/apps/nextjs/src/components/assistant/assistant-conversation-export.ts index 9cd3e9de6..a1deab185 100644 --- a/apps/nextjs/src/components/assistant/assistant-conversation-export.ts +++ b/apps/nextjs/src/components/assistant/assistant-conversation-export.ts @@ -220,7 +220,7 @@ const renderMessage = (message: AssistantConversationExportMessage, index: numbe export const buildAssistantMessageMarkdown = (message: AssistantConversationExportMessage, exportedAt = new Date()) => { const title = `${roleLabel(getMessagePayload(message)?.role)} ${message.id}`; - return `# ${title}\n\n> Homarr Assistant debugging export. Secret-looking fields and embedded file data are redacted.\n\n- Exported: ${exportedAt.toISOString()}\n\n${renderMessage(message, 0)}\n`; + return `# ${title}\n\n> Assistant debugging export. Secret-looking fields and embedded file data are redacted.\n\n- Exported: ${exportedAt.toISOString()}\n\n${renderMessage(message, 0)}\n`; }; export const buildAssistantConversationMarkdown = ({ @@ -233,7 +233,7 @@ export const buildAssistantConversationMarkdown = ({ const header = [ `# ${title}`, "", - "> Homarr Assistant debugging export. Secret-looking fields and embedded file data are redacted.", + "> Assistant debugging export. Secret-looking fields and embedded file data are redacted.", "", `- Conversation ID: \`${thread.id}\``, `- Model: ${thread.modelId ? `\`${thread.modelId}\`` : "Not recorded"}`, diff --git a/apps/nextjs/src/components/user-avatar-menu.tsx b/apps/nextjs/src/components/user-avatar-menu.tsx index 6c3e44349..fba6f55a3 100644 --- a/apps/nextjs/src/components/user-avatar-menu.tsx +++ b/apps/nextjs/src/components/user-avatar-menu.tsx @@ -18,7 +18,6 @@ import type { RouterOutputs } from "@homarr/api"; import { signOut, useSession } from "@homarr/auth/client"; import { hotkeys, invariantTechnicalLabels } from "@homarr/definitions"; import { useModalAction } from "@homarr/modals"; -import { useSettings } from "@homarr/settings"; import { useI18n } from "@homarr/translation/client"; import { Link } from "@homarr/ui"; @@ -46,7 +45,6 @@ const formatHotkeyLabel = (hotkey: string, modifierLabel: string) => export const UserAvatarMenu = ({ children, availableUpdates, isDockerEnabled, boardSwitcher }: UserAvatarMenuProps) => { const t = useI18n("common.userAvatar.menu"); const tBoard = useI18n("board"); - const { branding } = useSettings(); const session = useSession(); const { logoutUrl } = useAuthContext(); @@ -111,7 +109,7 @@ export const UserAvatarMenu = ({ children, availableUpdates, isDockerEnabled, bo } onClick={assistant.open} > - {t("assistant", { app: branding.appName })} + {t("assistant")} )}