+ {/* Close button */}
+
+
- {/* Divider */}
-
+ {/* Page content */}
+
+ {activeTab === 'agents' &&
}
- {/* MCP Server section */}
-
-
-
-
- {t('agents.mcpServer')}
-
-
-
- {/* Status indicator */}
-
-
- {mcpServerRunning ? t('agents.mcpServerRunning') : t('agents.mcpServerStopped')}
-
-
{t('agents.port')}
-
handlePortBlur(e.target.value)}
- disabled={mcpServerRunning || mcpServerLoading}
- className="h-6 w-[52px] text-[11px] text-center tabular-nums bg-secondary text-foreground rounded border border-input focus:border-ring outline-none transition-colors disabled:opacity-50"
- />
-
-
- {mcpServerRunning && mcpServerLocalIp && (
-
-
- {t('agents.mcpClientConfig')}
-
-
-
{`{ "type": "http", "url": "http://${mcpServerLocalIp}:${mcpHttpPort}/mcp" }`}
-
)}
- {mcpServerError && (
-
- )}
-
-
- {/* Divider */}
-
-
- {/* MCP integrations section */}
-
-
-
-
- {t('agents.mcpIntegrations')}
-
-
-
-
- {mcpIntegrations.map((m) => (
-
-
-
- {m.displayName}
-
- {mcpInstalling === m.tool && (
-
- )}
+ {activeTab === 'system' && (
+
+
{t('settings.system')}
+ {isElectron && (
+
+
+ {t('agents.autoUpdate')}
+ {t('settings.autoUpdateDesc')}
+
+
-
handleToggleMCP(m.tool)}
- className="shrink-0 ml-2"
- />
-
- ))}
-
- {mcpError && (
-
-
-
{mcpError}
+ )}
+ {!isElectron && (
+
+
{t('settings.systemDesktopOnly')}
+
+ )}
)}
-
- {t('agents.mcpRestart')}
-
-
- {/* Auto-update toggle (Electron only) */}
- {isElectron && (
- <>
-
-
-
-
- {t('agents.autoUpdate')}
-
-
-
- >
- )}
diff --git a/src/i18n/locales/de.ts b/src/i18n/locales/de.ts
index f5f3e31af..c55cb58b1 100644
--- a/src/i18n/locales/de.ts
+++ b/src/i18n/locales/de.ts
@@ -365,6 +365,13 @@ const de: TranslationKeys = {
'agents.installing': 'Installiere...',
'agents.installFailed': 'Installation fehlgeschlagen',
'agents.viewDocs': 'Doku',
+ 'settings.title': 'Einstellungen',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'System',
+ 'settings.autoUpdateDesc': 'Beim Start automatisch nach neuen Versionen suchen',
+ 'settings.systemDesktopOnly': 'Systemeinstellungen sind in der Desktop-App verfügbar.',
+ 'settings.envHint': 'Sie können zusätzliche Umgebungsvariablen in {{path}} festlegen.',
// ── Figma Import ──
'figma.title': 'Aus Figma importieren',
diff --git a/src/i18n/locales/en.ts b/src/i18n/locales/en.ts
index 82c7ecca9..cfc3bf1fb 100644
--- a/src/i18n/locales/en.ts
+++ b/src/i18n/locales/en.ts
@@ -361,6 +361,13 @@ const en = {
'agents.installing': 'Installing...',
'agents.installFailed': 'Installation failed',
'agents.viewDocs': 'Docs',
+ 'settings.title': 'Settings',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'System',
+ 'settings.autoUpdateDesc': 'Automatically check for new versions on startup',
+ 'settings.systemDesktopOnly': 'System settings are available in the desktop app.',
+ 'settings.envHint': 'You can set additional environment variables in {{path}}.',
// ── Figma Import ──
'figma.title': 'Import from Figma',
diff --git a/src/i18n/locales/es.ts b/src/i18n/locales/es.ts
index b46fc4cf4..419fd428a 100644
--- a/src/i18n/locales/es.ts
+++ b/src/i18n/locales/es.ts
@@ -370,6 +370,13 @@ const es: TranslationKeys = {
'agents.installing': 'Instalando...',
'agents.installFailed': 'Instalación fallida',
'agents.viewDocs': 'Docs',
+ 'settings.title': 'Configuración',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'Sistema',
+ 'settings.autoUpdateDesc': 'Buscar automáticamente nuevas versiones al iniciar',
+ 'settings.systemDesktopOnly': 'La configuración del sistema está disponible en la aplicación de escritorio.',
+ 'settings.envHint': 'Puedes establecer variables de entorno adicionales en {{path}}.',
// ── Figma Import ──
'figma.title': 'Importar desde Figma',
diff --git a/src/i18n/locales/fr.ts b/src/i18n/locales/fr.ts
index e7d6dd15b..af8a15832 100644
--- a/src/i18n/locales/fr.ts
+++ b/src/i18n/locales/fr.ts
@@ -368,6 +368,13 @@ const fr: TranslationKeys = {
'agents.installing': 'Installation...',
'agents.installFailed': "Échec de l'installation",
'agents.viewDocs': 'Docs',
+ 'settings.title': 'Paramètres',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'Système',
+ 'settings.autoUpdateDesc': 'Vérifier automatiquement les nouvelles versions au démarrage',
+ 'settings.systemDesktopOnly': 'Les paramètres système sont disponibles dans l\'application de bureau.',
+ 'settings.envHint': 'Vous pouvez définir des variables d\'environnement supplémentaires dans {{path}}.',
// ── Figma Import ──
'figma.title': 'Importer depuis Figma',
diff --git a/src/i18n/locales/hi.ts b/src/i18n/locales/hi.ts
index a2ffc5bcf..e059612d8 100644
--- a/src/i18n/locales/hi.ts
+++ b/src/i18n/locales/hi.ts
@@ -363,6 +363,13 @@ const hi: TranslationKeys = {
'agents.installing': 'स्थापित हो रहा है...',
'agents.installFailed': 'स्थापना विफल',
'agents.viewDocs': 'दस्तावेज़',
+ 'settings.title': 'सेटिंग्स',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'सिस्टम',
+ 'settings.autoUpdateDesc': 'स्टार्टअप पर स्वचालित रूप से नए संस्करणों की जाँच करें',
+ 'settings.systemDesktopOnly': 'सिस्टम सेटिंग्स डेस्कटॉप ऐप में उपलब्ध हैं।',
+ 'settings.envHint': 'आप {{path}} में अतिरिक्त पर्यावरण चर सेट कर सकते हैं।',
// ── Figma Import ──
'figma.title': 'Figma से आयात करें',
diff --git a/src/i18n/locales/id.ts b/src/i18n/locales/id.ts
index 6194736ba..67920f59a 100644
--- a/src/i18n/locales/id.ts
+++ b/src/i18n/locales/id.ts
@@ -363,6 +363,13 @@ const id: TranslationKeys = {
'agents.installing': 'Memasang...',
'agents.installFailed': 'Pemasangan gagal',
'agents.viewDocs': 'Dokumen',
+ 'settings.title': 'Pengaturan',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'Sistem',
+ 'settings.autoUpdateDesc': 'Periksa versi baru secara otomatis saat memulai',
+ 'settings.systemDesktopOnly': 'Pengaturan sistem tersedia di aplikasi desktop.',
+ 'settings.envHint': 'Anda dapat mengatur variabel lingkungan tambahan di {{path}}.',
// ── Figma Import ──
'figma.title': 'Impor dari Figma',
diff --git a/src/i18n/locales/ja.ts b/src/i18n/locales/ja.ts
index c9ef997d6..b6845bdd5 100644
--- a/src/i18n/locales/ja.ts
+++ b/src/i18n/locales/ja.ts
@@ -366,6 +366,13 @@ const ja: TranslationKeys = {
'agents.installing': 'インストール中...',
'agents.installFailed': 'インストール失敗',
'agents.viewDocs': 'ドキュメント',
+ 'settings.title': '設定',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'システム',
+ 'settings.autoUpdateDesc': '起動時に新しいバージョンを自動的に確認する',
+ 'settings.systemDesktopOnly': 'システム設定はデスクトップアプリで利用できます。',
+ 'settings.envHint': '{{path}} で追加の環境変数を設定できます。',
// ── Figma Import ──
'figma.title': 'Figma からインポート',
diff --git a/src/i18n/locales/ko.ts b/src/i18n/locales/ko.ts
index 9e7114f77..93e8b1c53 100644
--- a/src/i18n/locales/ko.ts
+++ b/src/i18n/locales/ko.ts
@@ -363,6 +363,13 @@ const ko: TranslationKeys = {
'agents.installing': '설치 중...',
'agents.installFailed': '설치 실패',
'agents.viewDocs': '문서',
+ 'settings.title': '설정',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': '시스템',
+ 'settings.autoUpdateDesc': '시작 시 자동으로 새 버전 확인',
+ 'settings.systemDesktopOnly': '시스템 설정은 데스크톱 앱에서 사용할 수 있습니다.',
+ 'settings.envHint': '{{path}}에서 추가 환경 변수를 설정할 수 있습니다.',
// ── Figma Import ──
'figma.title': 'Figma에서 가져오기',
diff --git a/src/i18n/locales/pt.ts b/src/i18n/locales/pt.ts
index a068ea102..6370644a3 100644
--- a/src/i18n/locales/pt.ts
+++ b/src/i18n/locales/pt.ts
@@ -365,6 +365,13 @@ const pt: TranslationKeys = {
'agents.installing': 'Instalando...',
'agents.installFailed': 'Falha na instalação',
'agents.viewDocs': 'Docs',
+ 'settings.title': 'Configurações',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'Sistema',
+ 'settings.autoUpdateDesc': 'Verificar automaticamente novas versões ao iniciar',
+ 'settings.systemDesktopOnly': 'As configurações do sistema estão disponíveis no aplicativo de desktop.',
+ 'settings.envHint': 'Você pode definir variáveis de ambiente adicionais em {{path}}.',
// ── Figma Import ──
'figma.title': 'Importar do Figma',
diff --git a/src/i18n/locales/ru.ts b/src/i18n/locales/ru.ts
index 089a2cca0..409893f46 100644
--- a/src/i18n/locales/ru.ts
+++ b/src/i18n/locales/ru.ts
@@ -365,6 +365,13 @@ const ru: TranslationKeys = {
'agents.installing': 'Установка...',
'agents.installFailed': 'Ошибка установки',
'agents.viewDocs': 'Документация',
+ 'settings.title': 'Настройки',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'Система',
+ 'settings.autoUpdateDesc': 'Автоматически проверять наличие новых версий при запуске',
+ 'settings.systemDesktopOnly': 'Системные настройки доступны в настольном приложении.',
+ 'settings.envHint': 'Вы можете задать дополнительные переменные окружения в {{path}}.',
// ── Figma Import ──
'figma.title': 'Импорт из Figma',
diff --git a/src/i18n/locales/th.ts b/src/i18n/locales/th.ts
index 61879ce7c..faedab40b 100644
--- a/src/i18n/locales/th.ts
+++ b/src/i18n/locales/th.ts
@@ -363,6 +363,13 @@ const th: TranslationKeys = {
'agents.installing': 'กำลังติดตั้ง...',
'agents.installFailed': 'การติดตั้งล้มเหลว',
'agents.viewDocs': 'เอกสาร',
+ 'settings.title': 'การตั้งค่า',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'ระบบ',
+ 'settings.autoUpdateDesc': 'ตรวจสอบเวอร์ชันใหม่โดยอัตโนมัติเมื่อเริ่มต้น',
+ 'settings.systemDesktopOnly': 'การตั้งค่าระบบใช้ได้ในแอปเดสก์ท็อป',
+ 'settings.envHint': 'คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมเพิ่มเติมได้ใน {{path}}',
// ── Figma Import ──
'figma.title': 'นำเข้าจาก Figma',
diff --git a/src/i18n/locales/tr.ts b/src/i18n/locales/tr.ts
index 14b59aa26..d97711c98 100644
--- a/src/i18n/locales/tr.ts
+++ b/src/i18n/locales/tr.ts
@@ -363,6 +363,13 @@ const tr: TranslationKeys = {
'agents.installing': 'Yükleniyor...',
'agents.installFailed': 'Yükleme başarısız',
'agents.viewDocs': 'Belgeler',
+ 'settings.title': 'Ayarlar',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'Sistem',
+ 'settings.autoUpdateDesc': 'Başlangıçta yeni sürümleri otomatik olarak kontrol et',
+ 'settings.systemDesktopOnly': 'Sistem ayarları masaüstü uygulamasında kullanılabilir.',
+ 'settings.envHint': '{{path}} dosyasında ek ortam değişkenleri ayarlayabilirsiniz.',
// ── Figma Import ──
'figma.title': 'Figma\'dan İçe Aktar',
diff --git a/src/i18n/locales/vi.ts b/src/i18n/locales/vi.ts
index 72acc4420..b78907a4f 100644
--- a/src/i18n/locales/vi.ts
+++ b/src/i18n/locales/vi.ts
@@ -363,6 +363,13 @@ const vi: TranslationKeys = {
'agents.installing': 'Đang cài đặt...',
'agents.installFailed': 'Cài đặt thất bại',
'agents.viewDocs': 'Tài liệu',
+ 'settings.title': 'Cài đặt',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': 'Hệ thống',
+ 'settings.autoUpdateDesc': 'Tự động kiểm tra phiên bản mới khi khởi động',
+ 'settings.systemDesktopOnly': 'Cài đặt hệ thống khả dụng trong ứng dụng máy tính.',
+ 'settings.envHint': 'Bạn có thể đặt thêm biến môi trường trong {{path}}.',
// ── Figma Import ──
'figma.title': 'Nhập từ Figma',
diff --git a/src/i18n/locales/zh-tw.ts b/src/i18n/locales/zh-tw.ts
index 44a011e38..a353275ce 100644
--- a/src/i18n/locales/zh-tw.ts
+++ b/src/i18n/locales/zh-tw.ts
@@ -355,6 +355,13 @@ const zhTW: TranslationKeys = {
'agents.installing': '安裝中...',
'agents.installFailed': '安裝失敗',
'agents.viewDocs': '文件',
+ 'settings.title': '設定',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': '系統',
+ 'settings.autoUpdateDesc': '啟動時自動檢查新版本',
+ 'settings.systemDesktopOnly': '系統設定僅在桌面應用程式中可用。',
+ 'settings.envHint': '你可以在 {{path}} 中設定額外的環境變數。',
// ── Figma Import ──
'figma.title': '從 Figma 匯入',
diff --git a/src/i18n/locales/zh.ts b/src/i18n/locales/zh.ts
index ae96090ad..03fc1271a 100644
--- a/src/i18n/locales/zh.ts
+++ b/src/i18n/locales/zh.ts
@@ -355,6 +355,13 @@ const zh: TranslationKeys = {
'agents.installing': '安装中...',
'agents.installFailed': '安装失败',
'agents.viewDocs': '文档',
+ 'settings.title': '设置',
+ 'settings.agents': 'Agents',
+ 'settings.mcp': 'MCP',
+ 'settings.system': '系统',
+ 'settings.autoUpdateDesc': '启动时自动检查新版本',
+ 'settings.systemDesktopOnly': '系统设置仅在桌面应用中可用。',
+ 'settings.envHint': '你可以在 {{path}} 中设置额外的环境变量。',
// ── Figma Import ──
'figma.title': '从 Figma 导入',
diff --git a/src/stores/agent-settings-store.ts b/src/stores/agent-settings-store.ts
index 371d8777c..f3a5858d4 100644
--- a/src/stores/agent-settings-store.ts
+++ b/src/stores/agent-settings-store.ts
@@ -28,6 +28,8 @@ interface AgentSettingsState extends PersistedState {
provider: AIProviderType,
method: AIProviderConfig['connectionMethod'],
models: GroupedModel[],
+ connectionInfo?: string,
+ hintPath?: string,
) => void
disconnectProvider: (provider: AIProviderType) => void
toggleMCPIntegration: (tool: string) => void
@@ -88,7 +90,7 @@ export const useAgentSettingsStore = create
((set, get) => ({
mcpServerRunning: false,
mcpServerLocalIp: null,
- connectProvider: (provider, method, models) =>
+ connectProvider: (provider, method, models, connectionInfo, hintPath) =>
set((s) => ({
providers: {
...s.providers,
@@ -97,6 +99,8 @@ export const useAgentSettingsStore = create((set, get) => ({
isConnected: true,
connectionMethod: method,
models,
+ connectionInfo,
+ hintPath,
},
},
})),
diff --git a/src/types/agent-settings.ts b/src/types/agent-settings.ts
index 2e1af0be6..8d2239ede 100644
--- a/src/types/agent-settings.ts
+++ b/src/types/agent-settings.ts
@@ -7,6 +7,10 @@ export interface AIProviderConfig {
connectionMethod: 'claude-code' | 'codex-cli' | 'opencode' | 'copilot' | null
/** Models fetched when the user connects this provider */
models: GroupedModel[]
+ /** Human-readable connection status, e.g. "Connected via API key" */
+ connectionInfo?: string
+ /** Config file path for the hint (client renders localized text) */
+ hintPath?: string
}
export type MCPCliTool =