diff --git a/messages/en-US.json b/messages/en-US.json
index f08126a94..89d8b1c4b 100644
--- a/messages/en-US.json
+++ b/messages/en-US.json
@@ -1785,7 +1785,6 @@
"aiClientConfigDescriptionClaude": "Anthropic's agentic coding tool for the terminal.",
"aiClientConfigDescriptionCodex": "OpenAI's agentic coding tool for the terminal.",
"aiClientConfigDescriptionOpencode": "Open source terminal coding agent.",
- "aiClientConfigDescriptionCursor": "AI code editor built on VS Code.",
"aiClientConfigSetup": "Setup",
"aiClientConfigTabCli": "Automatic (CLI)",
"aiClientConfigTabManual": "Manual Configuration",
diff --git a/public/third-party/cursor-dark.svg b/public/third-party/cursor-dark.svg
deleted file mode 100644
index 635d3ccdc..000000000
--- a/public/third-party/cursor-dark.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
\ No newline at end of file
diff --git a/public/third-party/cursor-light.svg b/public/third-party/cursor-light.svg
deleted file mode 100644
index 10d50ca84..000000000
--- a/public/third-party/cursor-light.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
\ No newline at end of file
diff --git a/src/components/ai-client-config/AiClientConfigSection.tsx b/src/components/ai-client-config/AiClientConfigSection.tsx
index c82f71368..955dfb4a9 100644
--- a/src/components/ai-client-config/AiClientConfigSection.tsx
+++ b/src/components/ai-client-config/AiClientConfigSection.tsx
@@ -49,10 +49,6 @@ const CLIENT_LOGOS = {
opencode: {
light: "/third-party/opencode-dark.svg",
dark: "/third-party/opencode-light.svg"
- },
- cursor: {
- light: "/third-party/cursor-dark.svg",
- dark: "/third-party/cursor-light.svg"
}
} as const;
@@ -69,8 +65,7 @@ export function AiClientConfigSection({
const descriptions: Record = {
claude: t("aiClientConfigDescriptionClaude"),
codex: t("aiClientConfigDescriptionCodex"),
- opencode: t("aiClientConfigDescriptionOpencode"),
- cursor: t("aiClientConfigDescriptionCursor")
+ opencode: t("aiClientConfigDescriptionOpencode")
};
return (
diff --git a/src/lib/aiClientConfig.ts b/src/lib/aiClientConfig.ts
index c3dbf96f5..37fe7cd16 100644
--- a/src/lib/aiClientConfig.ts
+++ b/src/lib/aiClientConfig.ts
@@ -1,11 +1,10 @@
-export const AI_CLIENT_IDS = ["claude", "codex", "opencode", "cursor"] as const;
+export const AI_CLIENT_IDS = ["claude", "codex", "opencode"] as const;
export type AiClientId = (typeof AI_CLIENT_IDS)[number];
export const AI_CLIENT_NAMES: Record = {
claude: "Claude Code",
codex: "Codex",
- opencode: "OpenCode",
- cursor: "Cursor"
+ opencode: "OpenCode"
};
/** Auth as supplied by callers: the real key isn't fetched yet. */
@@ -352,40 +351,6 @@ function buildOpencodeGuide(
};
}
-function buildCursorGuide(endpoint: string, auth: AiClientAuth): AiClientGuide {
- const steps = block(
- "cursor-steps",
- "Cursor Settings",
- (key) =>
- [
- "1. Open Cursor Settings -> Models.",
- '2. Enable "Override OpenAI Base URL".',
- `3. Set the base URL to: ${endpoint}/v1`,
- auth.mode === "keyed"
- ? `4. Paste your API key into the OpenAI API Key field: ${key}`
- : '4. Leave the OpenAI API Key field set to a placeholder (e.g. "-"). Pangolin authenticates the request over your Newt/Olm connection automatically.',
- "5. Add a custom model matching the model your Pangolin AI Gateway serves (e.g. gpt-5.6-sol)."
- ].join("\n"),
- auth,
- "steps",
- true
- );
-
- return {
- id: "cursor",
- name: AI_CLIENT_NAMES.cursor,
- cli: null,
- presets: [
- {
- id: "default",
- label: "Default",
- relation: "steps",
- blocks: [steps]
- }
- ]
- };
-}
-
const GUIDE_BUILDERS: Record<
AiClientId,
(
@@ -396,8 +361,7 @@ const GUIDE_BUILDERS: Record<
> = {
claude: buildClaudeGuide,
codex: buildCodexGuide,
- opencode: buildOpencodeGuide,
- cursor: buildCursorGuide
+ opencode: buildOpencodeGuide
};
export function buildAiClientGuide(