diff --git a/packages/app/src/assets/acp-provider-icons.ts b/packages/app/src/assets/acp-provider-icons.ts
index 65f123cb3d..92d7df8fd4 100644
--- a/packages/app/src/assets/acp-provider-icons.ts
+++ b/packages/app/src/assets/acp-provider-icons.ts
@@ -53,7 +53,7 @@ export const ACP_PROVIDER_ICON_SVGS = {
kilo: '\n',
kimi: '\n',
"minimax-code":
- '\n',
+ '\n',
"minion-code":
'\n',
"mistral-vibe":
@@ -72,7 +72,11 @@ export const ACP_PROVIDER_ICON_SVGS = {
stakpak:
'\n',
traecli:
- '\n',
+ '\n',
vtcode:
'\n',
+ devin:
+ '\n',
+ hermes:
+ '\n',
} as const;
diff --git a/packages/app/src/assets/acp-provider-icons/devin.svg b/packages/app/src/assets/acp-provider-icons/devin.svg
new file mode 100644
index 0000000000..e0f58c6513
--- /dev/null
+++ b/packages/app/src/assets/acp-provider-icons/devin.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/app/src/assets/acp-provider-icons/grok.svg b/packages/app/src/assets/acp-provider-icons/grok.svg
new file mode 100644
index 0000000000..35db840319
--- /dev/null
+++ b/packages/app/src/assets/acp-provider-icons/grok.svg
@@ -0,0 +1,4 @@
+
diff --git a/packages/app/src/assets/acp-provider-icons/hermes.svg b/packages/app/src/assets/acp-provider-icons/hermes.svg
new file mode 100644
index 0000000000..c6fdd22500
--- /dev/null
+++ b/packages/app/src/assets/acp-provider-icons/hermes.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/app/src/assets/acp-provider-icons/minimax-code.svg b/packages/app/src/assets/acp-provider-icons/minimax-code.svg
new file mode 100644
index 0000000000..61fcb8afab
--- /dev/null
+++ b/packages/app/src/assets/acp-provider-icons/minimax-code.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/app/src/assets/acp-provider-icons/traecli.svg b/packages/app/src/assets/acp-provider-icons/traecli.svg
new file mode 100644
index 0000000000..6d5388fcaa
--- /dev/null
+++ b/packages/app/src/assets/acp-provider-icons/traecli.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/app/src/components/icons/kiro-icon.tsx b/packages/app/src/components/icons/kiro-icon.tsx
new file mode 100644
index 0000000000..992d4a8359
--- /dev/null
+++ b/packages/app/src/components/icons/kiro-icon.tsx
@@ -0,0 +1,14 @@
+import Svg, { Path } from "react-native-svg";
+
+interface KiroIconProps {
+ size?: number;
+ color?: string;
+}
+
+export function KiroIcon({ size = 16, color = "currentColor" }: KiroIconProps) {
+ return (
+
+ );
+}
diff --git a/packages/app/src/components/provider-icon-name.test.ts b/packages/app/src/components/provider-icon-name.test.ts
index 65c75166a5..0083926627 100644
--- a/packages/app/src/components/provider-icon-name.test.ts
+++ b/packages/app/src/components/provider-icon-name.test.ts
@@ -17,8 +17,10 @@ describe("resolveProviderIconName", () => {
it("returns the catalog identifier for ACP catalog provider ids that ship an icon", () => {
expect(resolveProviderIconName("amp-acp")).toEqual({ kind: "catalog", id: "amp-acp" });
+ expect(resolveProviderIconName("devin")).toEqual({ kind: "catalog", id: "devin" });
expect(resolveProviderIconName("gemini")).toEqual({ kind: "catalog", id: "gemini" });
expect(resolveProviderIconName("gjc")).toEqual({ kind: "catalog", id: "gjc" });
+ expect(resolveProviderIconName("hermes")).toEqual({ kind: "catalog", id: "hermes" });
expect(resolveProviderIconName("traecli")).toEqual({ kind: "catalog", id: "traecli" });
});
diff --git a/packages/app/src/components/provider-icons.ts b/packages/app/src/components/provider-icons.ts
index fec4003705..91d9c9c5d1 100644
--- a/packages/app/src/components/provider-icons.ts
+++ b/packages/app/src/components/provider-icons.ts
@@ -1,11 +1,12 @@
import { useStore } from "zustand";
import { providerSnapshotIcons } from "@/data/provider-icons";
-import { Bot, PackagePlus } from "lucide-react-native";
+import { Bot } from "lucide-react-native";
import { createElement, useCallback, type ComponentType } from "react";
import { SvgXml } from "react-native-svg";
import { ClaudeIcon } from "@/components/icons/claude-icon";
import { CodexIcon } from "@/components/icons/codex-icon";
import { CopilotIcon } from "@/components/icons/copilot-icon";
+import { KiroIcon } from "@/components/icons/kiro-icon";
import { MiniMaxIcon } from "@/components/icons/minimax-icon";
import { OpenCodeIcon } from "@/components/icons/opencode-icon";
import { OmpIcon } from "@/components/icons/omp-icon";
@@ -24,7 +25,7 @@ const BUILTIN_PROVIDER_ICONS: Record = {
claude: ClaudeIcon as unknown as ProviderIconComponent,
codex: CodexIcon as unknown as ProviderIconComponent,
copilot: CopilotIcon as unknown as ProviderIconComponent,
- kiro: PackagePlus,
+ kiro: KiroIcon as unknown as ProviderIconComponent,
minimax: MiniMaxIcon as unknown as ProviderIconComponent,
omp: OmpIcon as unknown as ProviderIconComponent,
opencode: OpenCodeIcon as unknown as ProviderIconComponent,
diff --git a/packages/app/src/data/acp-provider-catalog.ts b/packages/app/src/data/acp-provider-catalog.ts
index 1fdb1c6f5d..5f66cd1ae4 100644
--- a/packages/app/src/data/acp-provider-catalog.ts
+++ b/packages/app/src/data/acp-provider-catalog.ts
@@ -132,7 +132,7 @@ const CATALOG_DATA = [
title: "Devin CLI",
description: "Cognition's Devin for Terminal via Agent Client Protocol",
version: "manual",
- iconId: null,
+ iconId: "devin",
installLink: "https://cli.devin.ai/docs",
command: ["devin", "acp"],
},
@@ -234,7 +234,7 @@ const CATALOG_DATA = [
title: "Hermes",
description: "Nous Research self-improving AI agent",
version: "manual",
- iconId: null,
+ iconId: "hermes",
installLink: "https://hermes-agent.nousresearch.com/docs/user-guide/features/acp",
command: ["hermes", "acp"],
},
diff --git a/packages/protocol/src/provider-icon-names.ts b/packages/protocol/src/provider-icon-names.ts
index 6265b631c3..9206a9ef77 100644
--- a/packages/protocol/src/provider-icon-names.ts
+++ b/packages/protocol/src/provider-icon-names.ts
@@ -22,6 +22,7 @@ export const ACP_PROVIDER_ICON_NAMES = [
"crow-cli",
"cursor",
"deepagents",
+ "devin",
"dimcode",
"dirac",
"factory-droid",
@@ -31,6 +32,7 @@ export const ACP_PROVIDER_ICON_NAMES = [
"glm-acp-agent",
"goose",
"grok",
+ "hermes",
"junie",
"kilo",
"kimi",
diff --git a/packages/website/src/assets/agent-icons/deepseek-tui.svg b/packages/website/src/assets/agent-icons/deepseek-tui.svg
new file mode 100644
index 0000000000..2e0ae009e8
--- /dev/null
+++ b/packages/website/src/assets/agent-icons/deepseek-tui.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/website/src/assets/agent-icons/hermes.svg b/packages/website/src/assets/agent-icons/hermes.svg
new file mode 100644
index 0000000000..c6fdd22500
--- /dev/null
+++ b/packages/website/src/assets/agent-icons/hermes.svg
@@ -0,0 +1,3 @@
+