diff --git a/apps/webapp/app/components/icon-utils.tsx b/apps/webapp/app/components/icon-utils.tsx
index 5689ce0..6af02ad 100644
--- a/apps/webapp/app/components/icon-utils.tsx
+++ b/apps/webapp/app/components/icon-utils.tsx
@@ -9,6 +9,10 @@ import { LinearIcon, SlackIcon } from "./icons";
import { Cursor } from "./icons/cursor";
import { Claude } from "./icons/claude";
import { Cline } from "./icons/cline";
+import { Codex } from "./icons/codex";
+import { ChatGPT } from "./icons/chatgpt";
+import { Gemini } from "./icons/gemini";
+import { Windsurf } from "./icons/windsurf";
import { VSCode } from "./icons/vscode";
import { Obsidian } from "./icons/obsidian";
import { Figma } from "./icons/figma";
@@ -25,6 +29,10 @@ export const ICON_MAPPING = {
cursor: Cursor,
claude: Claude,
cline: Cline,
+ codex: Codex,
+ chatgpt: ChatGPT,
+ gemini: Gemini,
+ windsurf: Windsurf,
vscode: VSCode,
obsidian: Obsidian,
figma: Figma,
diff --git a/apps/webapp/app/components/icons/chatgpt.tsx b/apps/webapp/app/components/icons/chatgpt.tsx
new file mode 100644
index 0000000..72475db
--- /dev/null
+++ b/apps/webapp/app/components/icons/chatgpt.tsx
@@ -0,0 +1,17 @@
+import type { IconProps } from "./types";
+
+export function ChatGPT({ size = 18, className }: IconProps) {
+ return (
+
+ );
+}
diff --git a/apps/webapp/app/components/icons/codex.tsx b/apps/webapp/app/components/icons/codex.tsx
new file mode 100644
index 0000000..8b20a22
--- /dev/null
+++ b/apps/webapp/app/components/icons/codex.tsx
@@ -0,0 +1,17 @@
+import type { IconProps } from "./types";
+
+export function Codex({ size = 18, className }: IconProps) {
+ return (
+
+ );
+}
diff --git a/apps/webapp/app/components/icons/gemini.tsx b/apps/webapp/app/components/icons/gemini.tsx
new file mode 100644
index 0000000..9196d8d
--- /dev/null
+++ b/apps/webapp/app/components/icons/gemini.tsx
@@ -0,0 +1,17 @@
+import type { IconProps } from "./types";
+
+export function Gemini({ size = 18, className }: IconProps) {
+ return (
+
+ );
+}
diff --git a/apps/webapp/app/components/icons/windsurf.tsx b/apps/webapp/app/components/icons/windsurf.tsx
new file mode 100644
index 0000000..95c2ed3
--- /dev/null
+++ b/apps/webapp/app/components/icons/windsurf.tsx
@@ -0,0 +1,17 @@
+import type { IconProps } from "./types";
+
+export function Windsurf({ size = 18, className }: IconProps) {
+ return (
+
+ );
+}
diff --git a/apps/webapp/app/components/onboarding/provider-config.ts b/apps/webapp/app/components/onboarding/provider-config.ts
index 687e330..ae93422 100644
--- a/apps/webapp/app/components/onboarding/provider-config.ts
+++ b/apps/webapp/app/components/onboarding/provider-config.ts
@@ -1,6 +1,13 @@
import { Provider, type ProviderConfig } from "./types";
export const PROVIDER_CONFIGS: Record = {
+ [Provider.CHATGPT]: {
+ id: Provider.CHATGPT,
+ name: "ChatGPT",
+ description: "Connect ChatGPT to CORE's memory system via browser extension",
+ docsUrl: "https://docs.heysol.ai/providers/browser-extension",
+ icon: "chatgpt",
+ },
[Provider.CLAUDE_CODE]: {
id: Provider.CLAUDE_CODE,
name: "Claude Code CLI",
@@ -15,6 +22,13 @@ export const PROVIDER_CONFIGS: Record = {
docsUrl: "https://docs.heysol.ai/providers/claude",
icon: "claude",
},
+ [Provider.CODEX]: {
+ id: Provider.CODEX,
+ name: "Codex",
+ description: "Connect your Codex CLI to CORE's memory system",
+ docsUrl: "https://docs.heysol.ai/providers/codex",
+ icon: "codex",
+ },
[Provider.CURSOR]: {
id: Provider.CURSOR,
name: "Cursor",
@@ -22,6 +36,13 @@ export const PROVIDER_CONFIGS: Record = {
docsUrl: "https://docs.heysol.ai/providers/cursor",
icon: "cursor",
},
+ [Provider.GEMINI]: {
+ id: Provider.GEMINI,
+ name: "Gemini",
+ description: "Connect Gemini to CORE's memory system via browser extension",
+ docsUrl: "https://docs.heysol.ai/providers/browser-extension",
+ icon: "gemini",
+ },
[Provider.KILO_CODE]: {
id: Provider.KILO_CODE,
name: "Kilo-Code",
@@ -36,6 +57,13 @@ export const PROVIDER_CONFIGS: Record = {
docsUrl: "https://docs.heysol.ai/providers/vscode",
icon: "vscode",
},
+ [Provider.WINDSURF]: {
+ id: Provider.WINDSURF,
+ name: "Windsurf",
+ description: "Connect your Windsurf editor to CORE's memory system via MCP",
+ docsUrl: "https://docs.heysol.ai/providers/windsurf",
+ icon: "windsurf",
+ },
[Provider.ZED]: {
id: Provider.ZED,
name: "Zed",
diff --git a/apps/webapp/app/components/onboarding/types.ts b/apps/webapp/app/components/onboarding/types.ts
index 3646472..76403df 100644
--- a/apps/webapp/app/components/onboarding/types.ts
+++ b/apps/webapp/app/components/onboarding/types.ts
@@ -1,9 +1,13 @@
export enum Provider {
+ CHATGPT = "chatgpt",
CLAUDE_CODE = "claude-code",
CLAUDE = "claude",
+ CODEX = "codex",
CURSOR = "cursor",
+ GEMINI = "gemini",
KILO_CODE = "kilo-code",
VSCODE = "vscode",
+ WINDSURF = "windsurf",
ZED = "zed",
}