diff --git a/manifest.json b/manifest.json index a1418d210..d79549a71 100644 --- a/manifest.json +++ b/manifest.json @@ -306,6 +306,8 @@ ] }, "cursor": { + "disabled": true, + "disabled_reason": "Cursor CLI uses a proprietary protocol (ConnectRPC) and validates API keys against Cursor's own servers. Cannot route through OpenRouter. Re-enable when Cursor adds BYOK/custom endpoint support for agent mode.", "name": "Cursor CLI", "description": "Cursor's terminal-based AI coding agent — autonomous coding with plan, agent, and ask modes", "url": "https://cursor.com/cli", diff --git a/packages/cli/src/manifest.ts b/packages/cli/src/manifest.ts index 4a0ffeb52..bda9e6ff6 100644 --- a/packages/cli/src/manifest.ts +++ b/packages/cli/src/manifest.ts @@ -43,6 +43,8 @@ export interface AgentDef { category?: string; tagline?: string; tags?: string[]; + disabled?: boolean; + disabled_reason?: string; } export interface CloudDef { @@ -280,7 +282,9 @@ export async function loadManifest(forceRefresh = false): Promise { } export function agentKeys(m: Manifest): string[] { - return Object.keys(m.agents).sort((a, b) => (m.agents[b].github_stars ?? 0) - (m.agents[a].github_stars ?? 0)); + return Object.keys(m.agents) + .filter((k) => !m.agents[k].disabled) + .sort((a, b) => (m.agents[b].github_stars ?? 0) - (m.agents[a].github_stars ?? 0)); } export function cloudKeys(m: Manifest): string[] {