Add Grok to the website and supported-providers docs

Adds the /grok SEO landing page (and its auto-generated route/sitemap
entries), the /agents directory card, and the Grok line in the ACP
catalog docs, following the Grok Build provider added to the in-app
catalog.
This commit is contained in:
Mohamed Boudra
2026-05-29 18:10:51 +07:00
parent c1453b25a7
commit daae71d1a8
4 changed files with 36 additions and 0 deletions
+10
View File
@@ -378,6 +378,16 @@ export const AGENT_PAGES = [
metaDescription: metaDescription:
"Open source mobile and desktop app for Autohand AI's coding agent. Launch sessions on your machine, monitor progress, ship from anywhere.", "Open source mobile and desktop app for Autohand AI's coding agent. Launch sessions on your machine, monitor progress, ship from anywhere.",
}, },
{
slug: "grok",
name: "Grok",
title: "Open source app for Grok",
subtitle:
"Run xAI's Grok Build coding agent on your machine, drive it from your phone or desktop.",
metaTitle: "Grok Mobile and Desktop App, Open Source",
metaDescription:
"Open source mobile and desktop app for xAI's Grok Build coding agent. Launch sessions on your machine, monitor progress, and ship from anywhere. Self-hosted.",
},
] as const satisfies readonly AgentPage[]; ] as const satisfies readonly AgentPage[];
export const AGENT_PAGE_SLUGS: readonly string[] = AGENT_PAGES.map((p) => p.slug); export const AGENT_PAGE_SLUGS: readonly string[] = AGENT_PAGES.map((p) => p.slug);
+21
View File
@@ -25,6 +25,7 @@ import { Route as KimiRouteImport } from "./routes/kimi";
import { Route as KiloRouteImport } from "./routes/kilo"; import { Route as KiloRouteImport } from "./routes/kilo";
import { Route as JunieRouteImport } from "./routes/junie"; import { Route as JunieRouteImport } from "./routes/junie";
import { Route as HermesRouteImport } from "./routes/hermes"; import { Route as HermesRouteImport } from "./routes/hermes";
import { Route as GrokRouteImport } from "./routes/grok";
import { Route as GooseRouteImport } from "./routes/goose"; import { Route as GooseRouteImport } from "./routes/goose";
import { Route as GlmRouteImport } from "./routes/glm"; import { Route as GlmRouteImport } from "./routes/glm";
import { Route as GeminiRouteImport } from "./routes/gemini"; import { Route as GeminiRouteImport } from "./routes/gemini";
@@ -139,6 +140,11 @@ const HermesRoute = HermesRouteImport.update({
path: "/hermes", path: "/hermes",
getParentRoute: () => rootRouteImport, getParentRoute: () => rootRouteImport,
} as any); } as any);
const GrokRoute = GrokRouteImport.update({
id: "/grok",
path: "/grok",
getParentRoute: () => rootRouteImport,
} as any);
const GooseRoute = GooseRouteImport.update({ const GooseRoute = GooseRouteImport.update({
id: "/goose", id: "/goose",
path: "/goose", path: "/goose",
@@ -335,6 +341,7 @@ export interface FileRoutesByFullPath {
"/gemini": typeof GeminiRoute; "/gemini": typeof GeminiRoute;
"/glm": typeof GlmRoute; "/glm": typeof GlmRoute;
"/goose": typeof GooseRoute; "/goose": typeof GooseRoute;
"/grok": typeof GrokRoute;
"/hermes": typeof HermesRoute; "/hermes": typeof HermesRoute;
"/junie": typeof JunieRoute; "/junie": typeof JunieRoute;
"/kilo": typeof KiloRoute; "/kilo": typeof KiloRoute;
@@ -384,6 +391,7 @@ export interface FileRoutesByTo {
"/gemini": typeof GeminiRoute; "/gemini": typeof GeminiRoute;
"/glm": typeof GlmRoute; "/glm": typeof GlmRoute;
"/goose": typeof GooseRoute; "/goose": typeof GooseRoute;
"/grok": typeof GrokRoute;
"/hermes": typeof HermesRoute; "/hermes": typeof HermesRoute;
"/junie": typeof JunieRoute; "/junie": typeof JunieRoute;
"/kilo": typeof KiloRoute; "/kilo": typeof KiloRoute;
@@ -436,6 +444,7 @@ export interface FileRoutesById {
"/gemini": typeof GeminiRoute; "/gemini": typeof GeminiRoute;
"/glm": typeof GlmRoute; "/glm": typeof GlmRoute;
"/goose": typeof GooseRoute; "/goose": typeof GooseRoute;
"/grok": typeof GrokRoute;
"/hermes": typeof HermesRoute; "/hermes": typeof HermesRoute;
"/junie": typeof JunieRoute; "/junie": typeof JunieRoute;
"/kilo": typeof KiloRoute; "/kilo": typeof KiloRoute;
@@ -489,6 +498,7 @@ export interface FileRouteTypes {
| "/gemini" | "/gemini"
| "/glm" | "/glm"
| "/goose" | "/goose"
| "/grok"
| "/hermes" | "/hermes"
| "/junie" | "/junie"
| "/kilo" | "/kilo"
@@ -538,6 +548,7 @@ export interface FileRouteTypes {
| "/gemini" | "/gemini"
| "/glm" | "/glm"
| "/goose" | "/goose"
| "/grok"
| "/hermes" | "/hermes"
| "/junie" | "/junie"
| "/kilo" | "/kilo"
@@ -589,6 +600,7 @@ export interface FileRouteTypes {
| "/gemini" | "/gemini"
| "/glm" | "/glm"
| "/goose" | "/goose"
| "/grok"
| "/hermes" | "/hermes"
| "/junie" | "/junie"
| "/kilo" | "/kilo"
@@ -641,6 +653,7 @@ export interface RootRouteChildren {
GeminiRoute: typeof GeminiRoute; GeminiRoute: typeof GeminiRoute;
GlmRoute: typeof GlmRoute; GlmRoute: typeof GlmRoute;
GooseRoute: typeof GooseRoute; GooseRoute: typeof GooseRoute;
GrokRoute: typeof GrokRoute;
HermesRoute: typeof HermesRoute; HermesRoute: typeof HermesRoute;
JunieRoute: typeof JunieRoute; JunieRoute: typeof JunieRoute;
KiloRoute: typeof KiloRoute; KiloRoute: typeof KiloRoute;
@@ -773,6 +786,13 @@ declare module "@tanstack/react-router" {
preLoaderRoute: typeof HermesRouteImport; preLoaderRoute: typeof HermesRouteImport;
parentRoute: typeof rootRouteImport; parentRoute: typeof rootRouteImport;
}; };
"/grok": {
id: "/grok";
path: "/grok";
fullPath: "/grok";
preLoaderRoute: typeof GrokRouteImport;
parentRoute: typeof rootRouteImport;
};
"/goose": { "/goose": {
id: "/goose"; id: "/goose";
path: "/goose"; path: "/goose";
@@ -1061,6 +1081,7 @@ const rootRouteChildren: RootRouteChildren = {
GeminiRoute: GeminiRoute, GeminiRoute: GeminiRoute,
GlmRoute: GlmRoute, GlmRoute: GlmRoute,
GooseRoute: GooseRoute, GooseRoute: GooseRoute,
GrokRoute: GrokRoute,
HermesRoute: HermesRoute, HermesRoute: HermesRoute,
JunieRoute: JunieRoute, JunieRoute: JunieRoute,
KiloRoute: KiloRoute, KiloRoute: KiloRoute,
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/grok")(agentRouteOptions("grok"));
+1
View File
@@ -41,6 +41,7 @@ Pick any of these from the in-app provider catalog. Each entry is a one-click in
- [GitHub Copilot](https://github.com/features/copilot/cli/), GitHub's AI pair programmer via ACP. - [GitHub Copilot](https://github.com/features/copilot/cli/), GitHub's AI pair programmer via ACP.
- [GLM Agent](https://github.com/stefandevo/glm-acp-agent), Zhipu AI's GLM coding agent. - [GLM Agent](https://github.com/stefandevo/glm-acp-agent), Zhipu AI's GLM coding agent.
- [goose](https://block.github.io/goose/), Block's local open-source AI agent. - [goose](https://block.github.io/goose/), Block's local open-source AI agent.
- [Grok](https://docs.x.ai/build/overview), xAI's Grok Build agentic coding CLI.
- [Hermes Agent](https://hermes-agent.nousresearch.com/docs/user-guide/features/acp), Nous Research's self-improving agent. - [Hermes Agent](https://hermes-agent.nousresearch.com/docs/user-guide/features/acp), Nous Research's self-improving agent.
- [Junie](https://junie.jetbrains.com/docs/junie-cli-acp.html), JetBrains' coding agent. - [Junie](https://junie.jetbrains.com/docs/junie-cli-acp.html), JetBrains' coding agent.
- [Kilo Code](https://kilo.ai/docs/code-with-ai/platforms/cli), open-source coding agent. - [Kilo Code](https://kilo.ai/docs/code-with-ai/platforms/cli), open-source coding agent.