Skip to content

Commit 3106523

Browse files
committed
fix: add Windsurf, JetBrains, and Android Studio to quick-connect grid
Add popular AI client options to the ConnectIDEs dashboard panel so users can easily copy configuration for Windsurf, JetBrains IDEs (IntelliJ, WebStorm, PyCharm, etc.), and Android Studio alongside existing VS Code, Cursor, and Claude Code entries. - Add Windsurf, JetBrains, Android Studio entries to ConnectIDEs grid - Create SVG icons for JetBrains and Android Studio - Register new icon keys in CLIENT_ICON_ASSETS (ClientsPage, OAuthConsentModal) - Add client name patterns for all JetBrains products (IntelliJ, WebStorm, PyCharm, PhpStorm, RustRover, GoLand, Rider, CLion) and Android Studio to clientIcons.ts Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
1 parent a4919db commit 3106523

6 files changed

Lines changed: 82 additions & 0 deletions

File tree

Lines changed: 24 additions & 0 deletions
Loading
Lines changed: 13 additions & 0 deletions
Loading

apps/desktop/src/components/ConnectIDEs.tsx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import { Card, CardHeader, CardTitle, CardDescription, CardContent, Button } fro
44
import cursorIcon from '@/assets/client-icons/cursor.svg';
55
import vscodeIcon from '@/assets/client-icons/vscode.png';
66
import claudeIcon from '@/assets/client-icons/claude.svg';
7+
import windsurfIcon from '@/assets/client-icons/windsurf.svg';
8+
import jetbrainsIcon from '@/assets/client-icons/jetbrains.svg';
9+
import androidStudioIcon from '@/assets/client-icons/android-studio.svg';
710
import { addToVscode, addToCursor } from '@/lib/api/clientInstall';
811

912
type GridAction = 'deep_link' | 'copy_command' | 'copy_config';
@@ -46,6 +49,14 @@ export function ConnectIDEs({ gatewayUrl, gatewayRunning }: ConnectIDEsProps) {
4649
action: 'deep_link',
4750
handler: () => addToCursor(gatewayUrl),
4851
},
52+
{
53+
id: 'windsurf',
54+
name: 'Windsurf',
55+
label: 'Windsurf',
56+
icon: windsurfIcon,
57+
action: 'copy_config',
58+
handler: `"mcpmux": {\n "type": "http",\n "url": "${mcpUrl}"\n}`,
59+
},
4960
{
5061
id: 'claude-code',
5162
name: 'Claude Code',
@@ -54,6 +65,22 @@ export function ConnectIDEs({ gatewayUrl, gatewayRunning }: ConnectIDEsProps) {
5465
action: 'copy_command',
5566
handler: `claude mcp add --transport http --scope user mcpmux ${mcpUrl}`,
5667
},
68+
{
69+
id: 'jetbrains',
70+
name: 'JetBrains IDEs',
71+
label: 'JetBrains',
72+
icon: jetbrainsIcon,
73+
action: 'copy_config',
74+
handler: `"mcpmux": {\n "type": "http",\n "url": "${mcpUrl}"\n}`,
75+
},
76+
{
77+
id: 'android-studio',
78+
name: 'Android Studio',
79+
label: 'Android',
80+
icon: androidStudioIcon,
81+
action: 'copy_config',
82+
handler: `"mcpmux": {\n "type": "http",\n "url": "${mcpUrl}"\n}`,
83+
},
5784
{
5885
id: 'copy-config',
5986
name: 'JSON Config',

apps/desktop/src/components/OAuthConsentModal.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,17 @@ import cursorIcon from '@/assets/client-icons/cursor.svg';
2222
import vscodeIcon from '@/assets/client-icons/vscode.png';
2323
import claudeIcon from '@/assets/client-icons/claude.svg';
2424
import windsurfIcon from '@/assets/client-icons/windsurf.svg';
25+
import jetbrainsIcon from '@/assets/client-icons/jetbrains.svg';
26+
import androidStudioIcon from '@/assets/client-icons/android-studio.svg';
2527

2628
/** Bundled icon assets for known clients */
2729
const CLIENT_ICON_ASSETS: Record<string, string> = {
2830
cursor: cursorIcon,
2931
vscode: vscodeIcon,
3032
claude: claudeIcon,
3133
windsurf: windsurfIcon,
34+
jetbrains: jetbrainsIcon,
35+
'android-studio': androidStudioIcon,
3236
};
3337

3438
/** Look up a bundled logo for a known client by name */

apps/desktop/src/features/clients/ClientsPage.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import cursorIcon from '@/assets/client-icons/cursor.svg';
44
import vscodeIcon from '@/assets/client-icons/vscode.png';
55
import claudeIcon from '@/assets/client-icons/claude.svg';
66
import windsurfIcon from '@/assets/client-icons/windsurf.svg';
7+
import jetbrainsIcon from '@/assets/client-icons/jetbrains.svg';
8+
import androidStudioIcon from '@/assets/client-icons/android-studio.svg';
79
import { resolveKnownClientKey } from '@/lib/clientIcons';
810
import {
911
Laptop,
@@ -87,6 +89,8 @@ const CLIENT_ICON_ASSETS: Record<string, string> = {
8789
vscode: vscodeIcon,
8890
claude: claudeIcon,
8991
windsurf: windsurfIcon,
92+
jetbrains: jetbrainsIcon,
93+
'android-studio': androidStudioIcon,
9094
};
9195

9296
// Client icon component — uses bundled icon for known clients, falls back to logo_uri, then emoji

apps/desktop/src/lib/clientIcons.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,21 @@
55
*/
66
const KNOWN_CLIENT_PATTERNS: { pattern: string; iconKey: string }[] = [
77
{ pattern: 'visual studio code', iconKey: 'vscode' },
8+
{ pattern: 'android studio', iconKey: 'android-studio' },
89
{ pattern: 'claude desktop', iconKey: 'claude' },
910
{ pattern: 'claude code', iconKey: 'claude' },
1011
{ pattern: 'vs code', iconKey: 'vscode' },
1112
{ pattern: 'windsurf', iconKey: 'windsurf' },
1213
{ pattern: 'codeium', iconKey: 'windsurf' },
14+
{ pattern: 'intellij', iconKey: 'jetbrains' },
15+
{ pattern: 'webstorm', iconKey: 'jetbrains' },
16+
{ pattern: 'pycharm', iconKey: 'jetbrains' },
17+
{ pattern: 'phpstorm', iconKey: 'jetbrains' },
18+
{ pattern: 'rustrover', iconKey: 'jetbrains' },
19+
{ pattern: 'goland', iconKey: 'jetbrains' },
20+
{ pattern: 'rider', iconKey: 'jetbrains' },
21+
{ pattern: 'clion', iconKey: 'jetbrains' },
22+
{ pattern: 'jetbrains', iconKey: 'jetbrains' },
1323
{ pattern: 'cursor', iconKey: 'cursor' },
1424
{ pattern: 'vscode', iconKey: 'vscode' },
1525
{ pattern: 'claude', iconKey: 'claude' },

0 commit comments

Comments
 (0)