diff --git a/packages/app/src/assets/acp-provider-icons.ts b/packages/app/src/assets/acp-provider-icons.ts index 296721622..dc0462777 100644 --- a/packages/app/src/assets/acp-provider-icons.ts +++ b/packages/app/src/assets/acp-provider-icons.ts @@ -70,6 +70,8 @@ export const ACP_PROVIDER_ICON_SVGS = { '\n\n\n\n\n\n\n\n\n\n\n\n\n', stakpak: '\n \n\n', + traecli: + '\n \n\n', vtcode: '\n \n VT\n\n', } as const; diff --git a/packages/app/src/components/provider-icon-name.test.ts b/packages/app/src/components/provider-icon-name.test.ts index 956e40d0b..fabfbd25e 100644 --- a/packages/app/src/components/provider-icon-name.test.ts +++ b/packages/app/src/components/provider-icon-name.test.ts @@ -18,6 +18,7 @@ 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("gemini")).toEqual({ kind: "catalog", id: "gemini" }); + expect(resolveProviderIconName("traecli")).toEqual({ kind: "catalog", id: "traecli" }); }); it("falls back to the bot icon for unknown custom providers", () => { diff --git a/packages/app/src/data/acp-provider-catalog.ts b/packages/app/src/data/acp-provider-catalog.ts index 95451bf55..b987c590e 100644 --- a/packages/app/src/data/acp-provider-catalog.ts +++ b/packages/app/src/data/acp-provider-catalog.ts @@ -335,6 +335,15 @@ const CATALOG_DATA = [ installLink: "https://stakpak.dev/", command: ["stakpak", "acp"], }, + { + id: "traecli", + title: "TRAE CLI", + description: "ByteDance's official TRAE coding agent with native ACP support", + version: "manual", + iconId: "traecli", + installLink: "https://docs.trae.cn/cli", + command: ["traecli", "acp", "serve"], + }, { id: "vtcode", title: "VT Code", diff --git a/packages/app/src/hooks/use-acp-provider-catalog.test.ts b/packages/app/src/hooks/use-acp-provider-catalog.test.ts index 7d7e6c2cf..5128b9533 100644 --- a/packages/app/src/hooks/use-acp-provider-catalog.test.ts +++ b/packages/app/src/hooks/use-acp-provider-catalog.test.ts @@ -43,6 +43,7 @@ describe("ACP provider catalog", () => { expect(findProvider("junie").command).toEqual(["junie", "--acp", "true"]); expect(findProvider("kiro").command).toEqual(["kiro-cli", "acp"]); expect(findProvider("poolside").command).toEqual(["pool", "acp"]); + expect(findProvider("traecli").command).toEqual(["traecli", "acp", "serve"]); }); it("maps a catalog entry to the daemon provider config patch", () => { diff --git a/packages/protocol/src/provider-icon-names.ts b/packages/protocol/src/provider-icon-names.ts index 43c65685d..c471a68c6 100644 --- a/packages/protocol/src/provider-icon-names.ts +++ b/packages/protocol/src/provider-icon-names.ts @@ -41,6 +41,7 @@ export const ACP_PROVIDER_ICON_NAMES = [ "qwen-code", "sigit", "stakpak", + "traecli", "vtcode", ]; diff --git a/public-docs/supported-providers.md b/public-docs/supported-providers.md index 1b8395682..57462f38d 100644 --- a/public-docs/supported-providers.md +++ b/public-docs/supported-providers.md @@ -56,6 +56,7 @@ Pick any of these from the in-app provider catalog. Each entry is a one-click in - [Qwen Code](https://qwenlm.github.io/qwen-code-docs/en/users/overview), Alibaba's Qwen coding assistant. - [siGit Code](https://github.com/getsigit/sigit), local-first coding agent with optional on-device LLM. - [Stakpak](https://stakpak.dev/), Rust-based DevOps agent. +- [TRAE CLI](https://docs.trae.cn/cli), ByteDance's official TRAE coding agent. - [VT Code](https://github.com/vinhnx/VTCode/blob/main/docs/guides/zed-acp.md), open-source multi-provider coding agent. The in-app catalog is the canonical, version-pinned source. Anything not listed here can still be added manually, see [Custom providers](/docs/custom-providers).