Skip to content

Commit 6a89f67

Browse files
Merge pull request #1652 from ratierd/feat/add-forge-support-2ib
feat: add Forge (forgecode.dev) as a provider
2 parents 175a507 + 5a2089f commit 6a89f67

8 files changed

Lines changed: 30 additions & 0 deletions

File tree

src/assets/images/forge.svg

Lines changed: 3 additions & 0 deletions
Loading

src/main/services/ptyManager.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ const AGENT_ENV_VARS = [
5757
'CURSOR_API_KEY',
5858
'DASHSCOPE_API_KEY',
5959
'FACTORY_API_KEY',
60+
'FORGE_API_KEY',
6061
'GEMINI_API_KEY',
6162
'GH_TOKEN',
6263
'GITHUB_TOKEN',

src/renderer/components/AgentInfoCard.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ export const agentInfo: Record<UiAgent, AgentInfo> = {
129129
description:
130130
'Terminal coding agent with auto-commit, dry-run previews, community skills, and headless CI/CD mode. Supports multiple LLM providers and unrestricted auto-approve for hands-free operation.',
131131
},
132+
forge: {
133+
title: 'Forge',
134+
description:
135+
'AI coding agent by Antinomy with deep Zsh integration, multi-provider support (OpenRouter, Anthropic, OpenAI), workflows, and interactive or prompt-driven modes.',
136+
},
132137
};
133138

134139
type Props = {

src/renderer/constants/agents.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export const TERMINAL_PROVIDER_IDS = [
1616
'rovo',
1717
'pi',
1818
'autohand',
19+
'forge',
1920
] as const;
2021

2122
export type TerminalProviderId = (typeof TERMINAL_PROVIDER_IDS)[number];

src/renderer/lib/agentConfig.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import codebuffLogo from '../../assets/images/codebuff.png';
2222
import mistralLogo from '../../assets/images/mistral.png';
2323
import piLogo from '../../assets/images/pi.png';
2424
import autohandLogoSvg from '../../assets/images/autohand.svg?raw';
25+
import forgeLogoSvg from '../../assets/images/forge.svg?raw';
2526

2627
export type AgentInfo = {
2728
name: string;
@@ -57,4 +58,5 @@ export const agentConfig: Record<Agent, AgentInfo> = {
5758
copilot: { name: 'Copilot', logo: copilotLogoSvg, alt: 'GitHub Copilot CLI', isSvg: true },
5859
charm: { name: 'Charm', logo: charmLogo, alt: 'Charm Crush', invertInDark: true },
5960
rovo: { name: 'Rovo Dev', logo: atlassianLogo, alt: 'Rovo Dev' },
61+
forge: { name: 'Forge', logo: forgeLogoSvg, alt: 'Forge CLI', isSvg: true },
6062
};

src/renderer/providers/assets.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import codebuffLogo from '../../assets/images/codebuff.png';
2121
import mistralLogo from '../../assets/images/mistral.png';
2222
import piLogo from '../../assets/images/pi.png';
2323
import autohandLogoSvg from '../../assets/images/autohand.svg?raw';
24+
import forgeLogoSvg from '../../assets/images/forge.svg?raw';
2425
import type { UiAgent } from './meta';
2526

2627
export type AgentAsset = {
@@ -56,4 +57,5 @@ export const agentAssets: Record<UiAgent, AgentAsset> = {
5657
mistral: { name: 'Mistral AI', logo: mistralLogo, alt: 'Mistral Vibe CLI' },
5758
pi: { name: 'Pi', logo: piLogo, alt: 'Pi CLI' },
5859
autohand: { name: 'Autohand', logo: autohandLogoSvg, alt: 'Autohand Code CLI', isSvg: true },
60+
forge: { name: 'Forge', logo: forgeLogoSvg, alt: 'Forge CLI', isSvg: true },
5961
};

src/renderer/providers/meta.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import codebuffIcon from '../../assets/images/codebuff.png';
2323
import mistralIcon from '../../assets/images/mistral.png';
2424
import piIcon from '../../assets/images/pi.png';
2525
import autohandIcon from '../../assets/images/autohand.svg?raw';
26+
import forgeIcon from '../../assets/images/forge.svg?raw';
2627

2728
export type UiAgent = ProviderId;
2829

@@ -50,6 +51,7 @@ const ICONS: Record<string, string> = {
5051
'mistral.png': mistralIcon,
5152
'pi.png': piIcon,
5253
'autohand.svg': autohandIcon,
54+
'forge.svg': forgeIcon,
5355
};
5456

5557
export type AgentMeta = {

src/shared/providers/registry.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export const PROVIDER_IDS = [
2222
'mistral',
2323
'pi',
2424
'autohand',
25+
'forge',
2526
] as const;
2627

2728
export type ProviderId = (typeof PROVIDER_IDS)[number];
@@ -368,6 +369,19 @@ export const PROVIDERS: ProviderDefinition[] = [
368369
icon: 'autohand.svg',
369370
terminalOnly: true,
370371
},
372+
{
373+
id: 'forge',
374+
name: 'Forge',
375+
docUrl: 'https://forgecode.dev/docs/',
376+
installCommand: 'curl -fsSL https://forgecode.dev/cli | sh',
377+
commands: ['forge'],
378+
versionArgs: ['--version'],
379+
cli: 'forge',
380+
initialPromptFlag: '-p',
381+
resumeFlag: '--conversation-id',
382+
icon: 'forge.svg',
383+
terminalOnly: true,
384+
},
371385
];
372386

373387
const PROVIDER_MAP = new Map<string, ProviderDefinition>(

0 commit comments

Comments
 (0)