diff --git a/src/components/browser-use/view/BrowserUsePanel.tsx b/src/components/browser-use/view/BrowserUsePanel.tsx
index 799e7582..3450a212 100644
--- a/src/components/browser-use/view/BrowserUsePanel.tsx
+++ b/src/components/browser-use/view/BrowserUsePanel.tsx
@@ -161,7 +161,7 @@ function getStatusDot(status: BrowserUseSession['status']): string {
}
function getEngineLabel(backend?: BrowserUseStatus['backend'] | BrowserUseSession['backend']): string {
- return backend === 'camoufox-vnc' ? 'Visible browser' : 'Playwright';
+ return backend === 'camoufox-vnc' ? 'Co-browse' : 'Playwright';
}
const PROMPTS = [
@@ -207,6 +207,7 @@ export default function BrowserUsePanel({ isVisible, projectId, onShowSettings }
const isBackgroundRefreshing = isRefreshing && !isInitialLoading;
const needsBrowserBinaries = Boolean(status?.enabled && !status.available);
const usesLocalWindowViewer = status?.viewerMode === 'window';
+ const panelTitle = status?.browserBackend === 'camoufox-vnc' ? 'Co-browse' : 'Browser';
const runtimeLabel = isInitialLoading
? 'Loading'
: !status?.enabled
@@ -491,7 +492,7 @@ export default function BrowserUsePanel({ isVisible, projectId, onShowSettings }
-
Browser
+ {panelTitle}
{runtimeLabel}
@@ -499,7 +500,11 @@ export default function BrowserUsePanel({ isVisible, projectId, onShowSettings }
{getEngineLabel(status?.backend)}
-
Watch and manage browser sessions agents use to test real websites.
+
+ {status?.browserBackend === 'camoufox-vnc'
+ ? 'Watch and manage co-browse sessions agents use to test real websites.'
+ : 'Watch and manage browser sessions agents use to test real websites.'}
+
{isBackgroundRefreshing && (
diff --git a/src/components/main-content/types/types.ts b/src/components/main-content/types/types.ts
index 6fd3ac7d..0c95ab8f 100644
--- a/src/components/main-content/types/types.ts
+++ b/src/components/main-content/types/types.ts
@@ -66,6 +66,7 @@ export type MainContentHeaderProps = {
selectedSession: ProjectSession | null;
shouldShowTasksTab: boolean;
shouldShowBrowserTab: boolean;
+ shouldLabelBrowserTabAsCobrowse: boolean;
isMobile: boolean;
onMenuClick: () => void;
};
diff --git a/src/components/main-content/view/MainContent.tsx b/src/components/main-content/view/MainContent.tsx
index 6f683b95..dca07b37 100644
--- a/src/components/main-content/view/MainContent.tsx
+++ b/src/components/main-content/view/MainContent.tsx
@@ -59,6 +59,7 @@ function MainContent({
const { currentProject, setCurrentProject } = useTaskMaster() as TaskMasterContextValue;
const { tasksEnabled, isTaskMasterInstalled } = useTasksSettings() as TasksSettingsContextValue;
const [browserUseEnabled, setBrowserUseEnabled] = useState(false);
+ const [shouldLabelBrowserTabAsCobrowse, setShouldLabelBrowserTabAsCobrowse] = useState(false);
const shouldShowTasksTab = Boolean(tasksEnabled && isTaskMasterInstalled);
const shouldShowBrowserTab = browserUseEnabled;
@@ -103,9 +104,13 @@ function MainContent({
try {
const response = await authenticatedFetch('/api/browser-use/settings');
const data = await response.json();
- setBrowserUseEnabled(Boolean(response.ok && data?.success !== false && data?.data?.settings?.enabled));
+ const settings = data?.data?.settings;
+ const enabled = Boolean(response.ok && data?.success !== false && settings?.enabled);
+ setBrowserUseEnabled(enabled);
+ setShouldLabelBrowserTabAsCobrowse(enabled && settings?.browserBackend === 'camoufox-vnc');
} catch {
setBrowserUseEnabled(false);
+ setShouldLabelBrowserTabAsCobrowse(false);
}
}, []);
@@ -149,6 +154,7 @@ function MainContent({
selectedSession={selectedSession}
shouldShowTasksTab={shouldShowTasksTab}
shouldShowBrowserTab={shouldShowBrowserTab}
+ shouldLabelBrowserTabAsCobrowse={shouldLabelBrowserTabAsCobrowse}
isMobile={isMobile}
onMenuClick={onMenuClick}
/>
diff --git a/src/components/main-content/view/subcomponents/MainContentHeader.tsx b/src/components/main-content/view/subcomponents/MainContentHeader.tsx
index f75013ce..683abb70 100644
--- a/src/components/main-content/view/subcomponents/MainContentHeader.tsx
+++ b/src/components/main-content/view/subcomponents/MainContentHeader.tsx
@@ -11,6 +11,7 @@ export default function MainContentHeader({
selectedSession,
shouldShowTasksTab,
shouldShowBrowserTab,
+ shouldLabelBrowserTabAsCobrowse,
isMobile,
onMenuClick,
}: MainContentHeaderProps) {
@@ -44,6 +45,7 @@ export default function MainContentHeader({
selectedProject={selectedProject}
selectedSession={selectedSession}
shouldShowTasksTab={shouldShowTasksTab}
+ shouldLabelBrowserTabAsCobrowse={shouldLabelBrowserTabAsCobrowse}
/>
@@ -61,6 +63,7 @@ export default function MainContentHeader({
setActiveTab={setActiveTab}
shouldShowTasksTab={shouldShowTasksTab}
shouldShowBrowserTab={shouldShowBrowserTab}
+ shouldLabelBrowserTabAsCobrowse={shouldLabelBrowserTabAsCobrowse}
/>
{canScrollRight && (
diff --git a/src/components/main-content/view/subcomponents/MainContentTabSwitcher.tsx b/src/components/main-content/view/subcomponents/MainContentTabSwitcher.tsx
index bffe39d6..6e312426 100644
--- a/src/components/main-content/view/subcomponents/MainContentTabSwitcher.tsx
+++ b/src/components/main-content/view/subcomponents/MainContentTabSwitcher.tsx
@@ -12,6 +12,7 @@ type MainContentTabSwitcherProps = {
setActiveTab: Dispatch