docs(website): add provider pages and refresh docs

This commit is contained in:
Mohamed Boudra
2026-05-07 22:52:26 +07:00
parent f7eac82593
commit a1ac402154
55 changed files with 1754 additions and 403 deletions
@@ -0,0 +1,13 @@
import { LandingPage } from "~/components/landing-page";
import { getAgentPage } from "~/data/agent-pages";
import { pageMeta } from "~/meta";
export function agentRouteOptions(slug: string) {
const page = getAgentPage(slug);
return {
head: () => ({ meta: pageMeta(page.metaTitle, page.metaDescription) }),
component: function AgentLandingPage() {
return <LandingPage title={page.title} subtitle={page.subtitle} />;
},
};
}
@@ -33,6 +33,7 @@ const SVG_OVERFLOW_VISIBLE_STYLE = { overflow: "visible" as const };
const PHONE_PERSPECTIVE_STYLE = { minHeight: 480, perspective: 1200 };
import { CursorFieldProvider } from "~/components/butterfly";
import { CommandDialog } from "~/components/command-dialog";
import { AGENT_PAGES } from "~/data/agent-pages";
import {
appStoreUrl,
playStoreUrl,
@@ -142,6 +143,9 @@ const OPENCODE_BADGE_ICON = <OpenCodeIcon className="h-6 w-6" />;
const COPILOT_BADGE_ICON = <CopilotIcon className="h-6 w-6" />;
const PI_BADGE_ICON = <PiIcon className="h-6 w-6" />;
const FEATURED_AGENT_COUNT = 5;
const ADDITIONAL_AGENT_COUNT = AGENT_PAGES.length - FEATURED_AGENT_COUNT;
function AgentBadge({ name, icon }: { name: string; icon: React.ReactNode }) {
const [hovered, setHovered] = React.useState(false);
const handleMouseEnter = React.useCallback(() => setHovered(true), []);
@@ -222,7 +226,7 @@ function MultiProviderSection() {
</div>
))}
</div>
<div className="grid grid-cols-2 gap-4 sm:w-2/3">
<div className="grid grid-cols-2 sm:grid-cols-3 gap-4 sm:w-full">
{providers.slice(3).map((p) => (
<div
key={p.name}
@@ -232,6 +236,12 @@ function MultiProviderSection() {
<span className="font-medium">{p.name}</span>
</div>
))}
<a
href="/agents"
className="flex items-center justify-center gap-3 rounded-xl border border-dashed border-white/10 bg-white/[0.01] px-5 py-4 text-white/50 hover:text-white/80 hover:border-white/20 hover:bg-white/[0.03] transition-colors"
>
<span className="font-medium">+{ADDITIONAL_AGENT_COUNT} more</span>
</a>
</div>
</FeatureSection>
);
@@ -910,6 +920,12 @@ function GetStarted() {
<AgentBadge name="Copilot" icon={COPILOT_BADGE_ICON} />
<AgentBadge name="Pi" icon={PI_BADGE_ICON} />
</div>
<a
href="/agents"
className="text-xs text-muted-foreground hover:text-foreground transition-colors"
>
+{ADDITIONAL_AGENT_COUNT} more
</a>
</div>
</motion.div>
);
@@ -72,6 +72,12 @@ export function SiteFooter({ width = "default" }: SiteFooterProps) {
>
OpenCode
</a>
<a
href="/agents"
className="block text-muted-foreground hover:text-foreground transition-colors"
>
All providers
</a>
</div>
</div>
<div className="space-y-3">
+379
View File
@@ -0,0 +1,379 @@
// Source of truth for per-agent marketing landing pages.
// To add a new agent, append an entry here and create a 4-line route file at
// `src/routes/<slug>.tsx`. The sitemap (vite.config) reads `AGENT_PAGE_SLUGS`.
export interface AgentPage {
slug: string;
name: string;
title: string;
subtitle: string;
metaTitle: string;
metaDescription: string;
}
export const AGENT_PAGES = [
{
slug: "claude-code",
name: "Claude Code",
title: "Ship with Claude Code from your phone",
subtitle:
"Launch agents, check on progress, and merge from anywhere. Your Claude Code setup, your machine, your pocket.",
metaTitle: "Claude Code Mobile App – Ship from your phone | Paseo",
metaDescription:
"Run Claude Code from your phone. Launch agents, check on progress, review diffs, and merge — all from your pocket. Self-hosted, your code stays on your machine.",
},
{
slug: "codex",
name: "Codex",
title: "Run Codex from anywhere",
subtitle:
"Kick off Codex agents on your machine from your phone. Check in on the train, review on the couch, merge from the park.",
metaTitle: "Codex Mobile App – Run Codex from anywhere | Paseo",
metaDescription:
"Run OpenAI Codex from your phone. Kick off agents, monitor progress, and ship code without being at your desk. Self-hosted, your code never leaves your machine.",
},
{
slug: "opencode",
name: "OpenCode",
title: "Run OpenCode from your phone",
subtitle:
"Launch agents, check on builds, and ship code from anywhere. Same setup, same machine, just not at your desk.",
metaTitle: "OpenCode Mobile App – Code from anywhere | Paseo",
metaDescription:
"Run OpenCode from your phone. Launch agents, watch them work, and ship code from wherever you are. Self-hosted, open source, your code stays local.",
},
{
slug: "copilot",
name: "GitHub Copilot",
title: "GitHub Copilot, mobile",
subtitle:
"Drive Copilot from your phone. Kick off changes, watch them land, ship without sitting down at your desk.",
metaTitle: "GitHub Copilot Mobile App – Drive Copilot from anywhere | Paseo",
metaDescription:
"Control GitHub Copilot from your phone. Launch sessions, monitor progress, merge from anywhere. Your machine, your account, your pocket.",
},
{
slug: "pi",
name: "Pi",
title: "Run Pi from your phone",
subtitle: "Tiny agent, full control. Launch Pi from anywhere and check in when it matters.",
metaTitle: "Pi Mobile App – Run pi from anywhere | Paseo",
metaDescription:
"Run the pi coding agent from your phone. Launch sessions on your machine, check progress, merge from your pocket. Self-hosted and open source.",
},
{
slug: "cursor",
name: "Cursor",
title: "Cursor, in your pocket",
subtitle: "Send tasks to Cursor on your machine, watch them run, review the diff on the train.",
metaTitle: "Cursor Mobile App – Drive Cursor from anywhere | Paseo",
metaDescription:
"Run Cursor from your phone. Launch tasks, monitor output, review diffs, and merge — all from your pocket. Self-hosted, your code stays local.",
},
{
slug: "gemini",
name: "Gemini CLI",
title: "Run Gemini from anywhere",
subtitle: "Kick off Google's Gemini CLI from your phone. Real coding work, no laptop required.",
metaTitle: "Gemini CLI Mobile App – Run Gemini from anywhere | Paseo",
metaDescription:
"Drive Google's Gemini CLI from your phone. Launch agents, monitor progress, and ship from anywhere. Self-hosted, your code never leaves your machine.",
},
{
slug: "hermes",
name: "Hermes Agent",
title: "Hermes Agent, on your phone",
subtitle:
"Drive Nous Research's Hermes Agent from anywhere. Your machine does the work, your pocket runs the show.",
metaTitle: "Hermes Agent Mobile App – Drive Hermes from anywhere | Paseo",
metaDescription:
"Run Nous Research's Hermes Agent from your phone. Launch sessions, monitor progress, ship code from your pocket.",
},
{
slug: "qwen-code",
name: "Qwen Code",
title: "Qwen Code from anywhere",
subtitle: "Send Alibaba's Qwen agent to work on your machine while you're not at your desk.",
metaTitle: "Qwen Code Mobile App – Run Qwen from anywhere | Paseo",
metaDescription:
"Drive Alibaba's Qwen Code from your phone. Launch agents on your machine, monitor progress, and merge from anywhere.",
},
{
slug: "kimi",
name: "Kimi Code CLI",
title: "Kimi Code from your phone",
subtitle:
"Moonshot AI's Kimi Code CLI on your machine, controlled from anywhere. Same setup, no laptop.",
metaTitle: "Kimi Code Mobile App – Run Kimi Code from anywhere | Paseo",
metaDescription:
"Run Moonshot AI's Kimi Code CLI from your phone. Launch sessions, monitor progress, ship from your pocket. Self-hosted and private.",
},
{
slug: "amp",
name: "Amp",
title: "Amp, mobile",
subtitle:
"Drive the frontier coding agent from your phone. Kick off work, monitor progress, merge from anywhere.",
metaTitle: "Amp Mobile App – Run Amp from anywhere | Paseo",
metaDescription:
"Run Amp, the frontier coding agent, from your phone. Launch tasks on your machine, watch them ship from your pocket.",
},
{
slug: "auggie",
name: "Auggie CLI",
title: "Auggie, in your pocket",
subtitle:
"Run Augment Code's agent from your phone. Industry-leading context, anywhere you are.",
metaTitle: "Auggie Mobile App – Drive Augment Code from anywhere | Paseo",
metaDescription:
"Run Augment Code's Auggie CLI from your phone. Launch sessions on your machine, monitor progress, ship code from your pocket.",
},
{
slug: "cline",
name: "Cline",
title: "Cline from anywhere",
subtitle:
"Autonomous coding agent on your machine, controlled from your phone. Watch it work, jump in when needed.",
metaTitle: "Cline Mobile App – Run Cline from anywhere | Paseo",
metaDescription:
"Drive Cline, the autonomous coding agent, from your phone. Launch tasks, monitor output, review diffs from anywhere.",
},
{
slug: "codebuddy",
name: "Codebuddy Code",
title: "Codebuddy from your phone",
subtitle:
"Run Tencent Cloud's intelligent coding tool from anywhere. Your dev box, your pocket.",
metaTitle: "Codebuddy Code Mobile App – Run Codebuddy from anywhere | Paseo",
metaDescription:
"Drive Tencent Cloud's Codebuddy Code from your phone. Launch sessions on your machine, monitor progress, ship from anywhere.",
},
{
slug: "cortex-code",
name: "Cortex Code",
title: "Cortex Code, mobile",
subtitle:
"Snowflake's coding agent on your machine, driven from your phone. No laptop required.",
metaTitle: "Cortex Code Mobile App – Run Cortex Code from anywhere | Paseo",
metaDescription:
"Run Snowflake's Cortex Code from your phone. Launch agents, monitor progress, and ship from anywhere.",
},
{
slug: "corust",
name: "Corust Agent",
title: "Corust, in your pocket",
subtitle: "Build Rust with a seasoned partner on your machine, driven from your phone.",
metaTitle: "Corust Mobile App – Drive Corust agent from anywhere | Paseo",
metaDescription:
"Run the Corust Rust-focused coding agent from your phone. Launch tasks on your machine, ship from your pocket.",
},
{
slug: "crow",
name: "crow-cli",
title: "crow-cli from your phone",
subtitle:
"Minimal native coding agent on your machine, controlled from anywhere. Lean, ACP-native, mobile.",
metaTitle: "crow-cli Mobile App – Run crow-cli from anywhere | Paseo",
metaDescription:
"Drive crow-cli, the minimal ACP-native coding agent, from your phone. Launch tasks on your machine, monitor from anywhere.",
},
{
slug: "deepagents",
name: "DeepAgents",
title: "DeepAgents from your phone",
subtitle:
"LangChain-powered coding agent on your machine, driven from anywhere. Batteries included.",
metaTitle: "DeepAgents Mobile App – Run DeepAgents from anywhere | Paseo",
metaDescription:
"Run the LangChain DeepAgents coding agent from your phone. Launch sessions, monitor progress, and ship code from anywhere.",
},
{
slug: "dimcode",
name: "DimCode",
title: "DimCode from anywhere",
subtitle: "Leading models, one command — driven from your phone. Your machine does the work.",
metaTitle: "DimCode Mobile App – Run DimCode from anywhere | Paseo",
metaDescription:
"Drive DimCode, the multi-model coding agent, from your phone. Launch tasks on your machine, ship from your pocket.",
},
{
slug: "dirac",
name: "Dirac",
title: "Dirac, mobile",
subtitle:
"Hash-anchored parallel edits on your machine, driven from your pocket. Faster, cheaper, fully open source.",
metaTitle: "Dirac Mobile App – Run Dirac from anywhere | Paseo",
metaDescription:
"Run the Dirac coding agent from your phone. Hash-anchored parallel edits, AST manipulation, ship from anywhere.",
},
{
slug: "factory-droid",
name: "Factory Droid",
title: "Factory Droid from anywhere",
subtitle:
"Drive Factory's coding agent from your phone. Kick it off, check in, ship from your pocket.",
metaTitle: "Factory Droid Mobile App – Run Droid from anywhere | Paseo",
metaDescription:
"Run Factory AI's Droid coding agent from your phone. Launch sessions on your machine, monitor progress, ship from anywhere.",
},
{
slug: "fast-agent",
name: "fast-agent",
title: "fast-agent, mobile",
subtitle:
"Multi-provider agent on your machine, controlled from anywhere. Send work, get results.",
metaTitle: "fast-agent Mobile App – Run fast-agent from anywhere | Paseo",
metaDescription:
"Drive fast-agent, the multi-provider coding agent, from your phone. Launch tasks on your machine, monitor from your pocket.",
},
{
slug: "glm",
name: "GLM Agent",
title: "GLM Agent from your phone",
subtitle:
"Zhipu AI's GLM coding agent on your machine, driven from anywhere. Streaming, mid-session model switching, mobile.",
metaTitle: "GLM Agent Mobile App – Run GLM from anywhere | Paseo",
metaDescription:
"Run Zhipu AI's GLM coding agent from your phone. Launch sessions, monitor progress, and ship code from anywhere.",
},
{
slug: "goose",
name: "goose",
title: "Run goose from your phone",
subtitle:
"Block's open-source agent on your laptop, driven from anywhere. Local, extensible, mobile.",
metaTitle: "goose Mobile App – Run goose from anywhere | Paseo",
metaDescription:
"Drive Block's goose, the local open-source AI agent, from your phone. Launch tasks on your machine, ship from your pocket.",
},
{
slug: "junie",
name: "Junie",
title: "Junie, on your phone",
subtitle:
"JetBrains' coding agent on your dev box, controlled from your pocket. Real work, no IDE required.",
metaTitle: "Junie Mobile App – Run Junie from anywhere | Paseo",
metaDescription:
"Drive JetBrains' Junie coding agent from your phone. Launch sessions on your machine, monitor progress, ship from anywhere.",
},
{
slug: "kilo",
name: "Kilo Code",
title: "Kilo Code from anywhere",
subtitle: "Kilo Code on your machine, driven from your phone. Send tasks, watch them ship.",
metaTitle: "Kilo Code Mobile App – Run Kilo Code from anywhere | Paseo",
metaDescription:
"Run Kilo Code, the open-source coding agent, from your phone. Launch tasks on your machine via Kilo CLI, monitor progress, merge from anywhere.",
},
{
slug: "minion-code",
name: "Minion Code",
title: "Minion Code, mobile",
subtitle:
"Minion-framework agent on your machine, controlled from your phone. Rich tooling, full freedom.",
metaTitle: "Minion Code Mobile App – Run Minion Code from anywhere | Paseo",
metaDescription:
"Drive Minion Code, the Minion-framework coding agent, from your phone. Launch sessions on your machine, ship from your pocket.",
},
{
slug: "mistral-vibe",
name: "Mistral Vibe",
title: "Mistral Vibe from your phone",
subtitle:
"Mistral's open-source coding assistant, driven from anywhere. Your machine, your pocket.",
metaTitle: "Mistral Vibe Mobile App – Run Mistral Vibe from anywhere | Paseo",
metaDescription:
"Run Mistral's open-source Vibe coding assistant from your phone. Launch sessions on your machine, monitor progress, ship from anywhere.",
},
{
slug: "nova",
name: "Nova",
title: "Nova, in your pocket",
subtitle:
"Compass AI's software engineer on your machine, controlled from your phone. Send work, ship code.",
metaTitle: "Nova Mobile App – Run Nova from anywhere | Paseo",
metaDescription:
"Drive Compass AI's Nova coding agent from your phone. Launch sessions on your machine, monitor progress, merge from your pocket.",
},
{
slug: "poolside",
name: "Poolside",
title: "Poolside, mobile",
subtitle:
"Drive Poolside's coding agent from anywhere. Kick off the work, watch it land, merge on the move.",
metaTitle: "Poolside Mobile App – Run Poolside from anywhere | Paseo",
metaDescription:
"Run Poolside's coding agent from your phone. Launch tasks on your machine, monitor progress, ship from anywhere.",
},
{
slug: "qoder",
name: "Qoder CLI",
title: "Qoder from your phone",
subtitle:
"Agentic coding assistant on your machine, controlled from anywhere. No laptop required.",
metaTitle: "Qoder Mobile App – Run Qoder from anywhere | Paseo",
metaDescription:
"Drive Qoder, the agentic coding assistant, from your phone. Launch sessions on your machine, ship from your pocket.",
},
{
slug: "sigit",
name: "siGit Code",
title: "siGit Code, mobile",
subtitle:
"Local-first coding agent on your machine, driven from your phone. Optionally on-device LLM inference.",
metaTitle: "siGit Code Mobile App – Run siGit from anywhere | Paseo",
metaDescription:
"Run siGit Code, the local-first coding agent, from your phone. Launch sessions on your machine, ship from anywhere.",
},
{
slug: "stakpak",
name: "Stakpak",
title: "Stakpak DevOps from anywhere",
subtitle:
"Open-source DevOps agent on your machine, controlled from your phone. Rust speed, enterprise security.",
metaTitle: "Stakpak Mobile App – Run Stakpak from anywhere | Paseo",
metaDescription:
"Drive Stakpak, the Rust-based DevOps agent, from your phone. Launch tasks on your machine, monitor from your pocket.",
},
{
slug: "vtcode",
name: "VT Code",
title: "VT Code, mobile",
subtitle:
"Multi-provider coding agent on your machine. Send tasks from anywhere, ship from your pocket.",
metaTitle: "VT Code Mobile App – Run VT Code from anywhere | Paseo",
metaDescription:
"Run VT Code, the open-source multi-provider coding agent, from your phone. Launch sessions, monitor progress, ship from anywhere.",
},
{
slug: "agoragentic",
name: "Agoragentic",
title: "Agoragentic from your phone",
subtitle: "174+ AI capabilities on your machine, driven from anywhere. Browse, invoke, ship.",
metaTitle: "Agoragentic Mobile App – Run Agoragentic from anywhere | Paseo",
metaDescription:
"Drive Agoragentic, the AI agent marketplace, from your phone. Launch sessions on your machine, ship from your pocket.",
},
{
slug: "autohand",
name: "Autohand Code",
title: "Autohand Code, mobile",
subtitle:
"Autohand's coding agent on your machine, controlled from your phone. Real work, no laptop.",
metaTitle: "Autohand Code Mobile App – Run Autohand from anywhere | Paseo",
metaDescription:
"Run Autohand AI's coding agent from your phone. Launch sessions on your machine, monitor progress, ship from anywhere.",
},
] as const satisfies readonly AgentPage[];
export const AGENT_PAGE_SLUGS: readonly string[] = AGENT_PAGES.map((p) => p.slug);
const AGENT_PAGE_MAP_INTERNAL: Record<string, AgentPage> = Object.fromEntries(
AGENT_PAGES.map((p) => [p.slug, p]),
);
export function getAgentPage(slug: string): AgentPage {
const page = AGENT_PAGE_MAP_INTERNAL[slug];
if (!page) throw new Error(`Unknown agent page slug: ${slug}`);
return page;
}
+714
View File
@@ -9,31 +9,160 @@
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
import { Route as rootRouteImport } from "./routes/__root";
import { Route as VtcodeRouteImport } from "./routes/vtcode";
import { Route as StakpakRouteImport } from "./routes/stakpak";
import { Route as SigitRouteImport } from "./routes/sigit";
import { Route as QwenCodeRouteImport } from "./routes/qwen-code";
import { Route as QoderRouteImport } from "./routes/qoder";
import { Route as PrivacyRouteImport } from "./routes/privacy";
import { Route as PoolsideRouteImport } from "./routes/poolside";
import { Route as PiRouteImport } from "./routes/pi";
import { Route as OpencodeRouteImport } from "./routes/opencode";
import { Route as NovaRouteImport } from "./routes/nova";
import { Route as MistralVibeRouteImport } from "./routes/mistral-vibe";
import { Route as MinionCodeRouteImport } from "./routes/minion-code";
import { Route as KimiRouteImport } from "./routes/kimi";
import { Route as KiloRouteImport } from "./routes/kilo";
import { Route as JunieRouteImport } from "./routes/junie";
import { Route as HermesRouteImport } from "./routes/hermes";
import { Route as GooseRouteImport } from "./routes/goose";
import { Route as GlmRouteImport } from "./routes/glm";
import { Route as GeminiRouteImport } from "./routes/gemini";
import { Route as FastAgentRouteImport } from "./routes/fast-agent";
import { Route as FactoryDroidRouteImport } from "./routes/factory-droid";
import { Route as DownloadRouteImport } from "./routes/download";
import { Route as DocsRouteImport } from "./routes/docs";
import { Route as DiracRouteImport } from "./routes/dirac";
import { Route as DimcodeRouteImport } from "./routes/dimcode";
import { Route as DeepagentsRouteImport } from "./routes/deepagents";
import { Route as CursorRouteImport } from "./routes/cursor";
import { Route as CrowRouteImport } from "./routes/crow";
import { Route as CorustRouteImport } from "./routes/corust";
import { Route as CortexCodeRouteImport } from "./routes/cortex-code";
import { Route as CopilotRouteImport } from "./routes/copilot";
import { Route as CodexRouteImport } from "./routes/codex";
import { Route as CodebuddyRouteImport } from "./routes/codebuddy";
import { Route as CloudRouteImport } from "./routes/cloud";
import { Route as ClineRouteImport } from "./routes/cline";
import { Route as ClaudeCodeRouteImport } from "./routes/claude-code";
import { Route as ChangelogRouteImport } from "./routes/changelog";
import { Route as BlogRouteImport } from "./routes/blog";
import { Route as AutohandRouteImport } from "./routes/autohand";
import { Route as AuggieRouteImport } from "./routes/auggie";
import { Route as AmpRouteImport } from "./routes/amp";
import { Route as AgoragenticRouteImport } from "./routes/agoragentic";
import { Route as AgentsRouteImport } from "./routes/agents";
import { Route as IndexRouteImport } from "./routes/index";
import { Route as DocsIndexRouteImport } from "./routes/docs/index";
import { Route as BlogIndexRouteImport } from "./routes/blog/index";
import { Route as DocsSplatRouteImport } from "./routes/docs/$";
import { Route as BlogSplatRouteImport } from "./routes/blog/$";
const VtcodeRoute = VtcodeRouteImport.update({
id: "/vtcode",
path: "/vtcode",
getParentRoute: () => rootRouteImport,
} as any);
const StakpakRoute = StakpakRouteImport.update({
id: "/stakpak",
path: "/stakpak",
getParentRoute: () => rootRouteImport,
} as any);
const SigitRoute = SigitRouteImport.update({
id: "/sigit",
path: "/sigit",
getParentRoute: () => rootRouteImport,
} as any);
const QwenCodeRoute = QwenCodeRouteImport.update({
id: "/qwen-code",
path: "/qwen-code",
getParentRoute: () => rootRouteImport,
} as any);
const QoderRoute = QoderRouteImport.update({
id: "/qoder",
path: "/qoder",
getParentRoute: () => rootRouteImport,
} as any);
const PrivacyRoute = PrivacyRouteImport.update({
id: "/privacy",
path: "/privacy",
getParentRoute: () => rootRouteImport,
} as any);
const PoolsideRoute = PoolsideRouteImport.update({
id: "/poolside",
path: "/poolside",
getParentRoute: () => rootRouteImport,
} as any);
const PiRoute = PiRouteImport.update({
id: "/pi",
path: "/pi",
getParentRoute: () => rootRouteImport,
} as any);
const OpencodeRoute = OpencodeRouteImport.update({
id: "/opencode",
path: "/opencode",
getParentRoute: () => rootRouteImport,
} as any);
const NovaRoute = NovaRouteImport.update({
id: "/nova",
path: "/nova",
getParentRoute: () => rootRouteImport,
} as any);
const MistralVibeRoute = MistralVibeRouteImport.update({
id: "/mistral-vibe",
path: "/mistral-vibe",
getParentRoute: () => rootRouteImport,
} as any);
const MinionCodeRoute = MinionCodeRouteImport.update({
id: "/minion-code",
path: "/minion-code",
getParentRoute: () => rootRouteImport,
} as any);
const KimiRoute = KimiRouteImport.update({
id: "/kimi",
path: "/kimi",
getParentRoute: () => rootRouteImport,
} as any);
const KiloRoute = KiloRouteImport.update({
id: "/kilo",
path: "/kilo",
getParentRoute: () => rootRouteImport,
} as any);
const JunieRoute = JunieRouteImport.update({
id: "/junie",
path: "/junie",
getParentRoute: () => rootRouteImport,
} as any);
const HermesRoute = HermesRouteImport.update({
id: "/hermes",
path: "/hermes",
getParentRoute: () => rootRouteImport,
} as any);
const GooseRoute = GooseRouteImport.update({
id: "/goose",
path: "/goose",
getParentRoute: () => rootRouteImport,
} as any);
const GlmRoute = GlmRouteImport.update({
id: "/glm",
path: "/glm",
getParentRoute: () => rootRouteImport,
} as any);
const GeminiRoute = GeminiRouteImport.update({
id: "/gemini",
path: "/gemini",
getParentRoute: () => rootRouteImport,
} as any);
const FastAgentRoute = FastAgentRouteImport.update({
id: "/fast-agent",
path: "/fast-agent",
getParentRoute: () => rootRouteImport,
} as any);
const FactoryDroidRoute = FactoryDroidRouteImport.update({
id: "/factory-droid",
path: "/factory-droid",
getParentRoute: () => rootRouteImport,
} as any);
const DownloadRoute = DownloadRouteImport.update({
id: "/download",
path: "/download",
@@ -44,16 +173,66 @@ const DocsRoute = DocsRouteImport.update({
path: "/docs",
getParentRoute: () => rootRouteImport,
} as any);
const DiracRoute = DiracRouteImport.update({
id: "/dirac",
path: "/dirac",
getParentRoute: () => rootRouteImport,
} as any);
const DimcodeRoute = DimcodeRouteImport.update({
id: "/dimcode",
path: "/dimcode",
getParentRoute: () => rootRouteImport,
} as any);
const DeepagentsRoute = DeepagentsRouteImport.update({
id: "/deepagents",
path: "/deepagents",
getParentRoute: () => rootRouteImport,
} as any);
const CursorRoute = CursorRouteImport.update({
id: "/cursor",
path: "/cursor",
getParentRoute: () => rootRouteImport,
} as any);
const CrowRoute = CrowRouteImport.update({
id: "/crow",
path: "/crow",
getParentRoute: () => rootRouteImport,
} as any);
const CorustRoute = CorustRouteImport.update({
id: "/corust",
path: "/corust",
getParentRoute: () => rootRouteImport,
} as any);
const CortexCodeRoute = CortexCodeRouteImport.update({
id: "/cortex-code",
path: "/cortex-code",
getParentRoute: () => rootRouteImport,
} as any);
const CopilotRoute = CopilotRouteImport.update({
id: "/copilot",
path: "/copilot",
getParentRoute: () => rootRouteImport,
} as any);
const CodexRoute = CodexRouteImport.update({
id: "/codex",
path: "/codex",
getParentRoute: () => rootRouteImport,
} as any);
const CodebuddyRoute = CodebuddyRouteImport.update({
id: "/codebuddy",
path: "/codebuddy",
getParentRoute: () => rootRouteImport,
} as any);
const CloudRoute = CloudRouteImport.update({
id: "/cloud",
path: "/cloud",
getParentRoute: () => rootRouteImport,
} as any);
const ClineRoute = ClineRouteImport.update({
id: "/cline",
path: "/cline",
getParentRoute: () => rootRouteImport,
} as any);
const ClaudeCodeRoute = ClaudeCodeRouteImport.update({
id: "/claude-code",
path: "/claude-code",
@@ -69,6 +248,31 @@ const BlogRoute = BlogRouteImport.update({
path: "/blog",
getParentRoute: () => rootRouteImport,
} as any);
const AutohandRoute = AutohandRouteImport.update({
id: "/autohand",
path: "/autohand",
getParentRoute: () => rootRouteImport,
} as any);
const AuggieRoute = AuggieRouteImport.update({
id: "/auggie",
path: "/auggie",
getParentRoute: () => rootRouteImport,
} as any);
const AmpRoute = AmpRouteImport.update({
id: "/amp",
path: "/amp",
getParentRoute: () => rootRouteImport,
} as any);
const AgoragenticRoute = AgoragenticRouteImport.update({
id: "/agoragentic",
path: "/agoragentic",
getParentRoute: () => rootRouteImport,
} as any);
const AgentsRoute = AgentsRouteImport.update({
id: "/agents",
path: "/agents",
getParentRoute: () => rootRouteImport,
} as any);
const IndexRoute = IndexRouteImport.update({
id: "/",
path: "/",
@@ -97,15 +301,49 @@ const BlogSplatRoute = BlogSplatRouteImport.update({
export interface FileRoutesByFullPath {
"/": typeof IndexRoute;
"/agents": typeof AgentsRoute;
"/agoragentic": typeof AgoragenticRoute;
"/amp": typeof AmpRoute;
"/auggie": typeof AuggieRoute;
"/autohand": typeof AutohandRoute;
"/blog": typeof BlogRouteWithChildren;
"/changelog": typeof ChangelogRoute;
"/claude-code": typeof ClaudeCodeRoute;
"/cline": typeof ClineRoute;
"/cloud": typeof CloudRoute;
"/codebuddy": typeof CodebuddyRoute;
"/codex": typeof CodexRoute;
"/copilot": typeof CopilotRoute;
"/cortex-code": typeof CortexCodeRoute;
"/corust": typeof CorustRoute;
"/crow": typeof CrowRoute;
"/cursor": typeof CursorRoute;
"/deepagents": typeof DeepagentsRoute;
"/dimcode": typeof DimcodeRoute;
"/dirac": typeof DiracRoute;
"/docs": typeof DocsRouteWithChildren;
"/download": typeof DownloadRoute;
"/factory-droid": typeof FactoryDroidRoute;
"/fast-agent": typeof FastAgentRoute;
"/gemini": typeof GeminiRoute;
"/glm": typeof GlmRoute;
"/goose": typeof GooseRoute;
"/hermes": typeof HermesRoute;
"/junie": typeof JunieRoute;
"/kilo": typeof KiloRoute;
"/kimi": typeof KimiRoute;
"/minion-code": typeof MinionCodeRoute;
"/mistral-vibe": typeof MistralVibeRoute;
"/nova": typeof NovaRoute;
"/opencode": typeof OpencodeRoute;
"/pi": typeof PiRoute;
"/poolside": typeof PoolsideRoute;
"/privacy": typeof PrivacyRoute;
"/qoder": typeof QoderRoute;
"/qwen-code": typeof QwenCodeRoute;
"/sigit": typeof SigitRoute;
"/stakpak": typeof StakpakRoute;
"/vtcode": typeof VtcodeRoute;
"/blog/$": typeof BlogSplatRoute;
"/docs/$": typeof DocsSplatRoute;
"/blog/": typeof BlogIndexRoute;
@@ -113,13 +351,47 @@ export interface FileRoutesByFullPath {
}
export interface FileRoutesByTo {
"/": typeof IndexRoute;
"/agents": typeof AgentsRoute;
"/agoragentic": typeof AgoragenticRoute;
"/amp": typeof AmpRoute;
"/auggie": typeof AuggieRoute;
"/autohand": typeof AutohandRoute;
"/changelog": typeof ChangelogRoute;
"/claude-code": typeof ClaudeCodeRoute;
"/cline": typeof ClineRoute;
"/cloud": typeof CloudRoute;
"/codebuddy": typeof CodebuddyRoute;
"/codex": typeof CodexRoute;
"/copilot": typeof CopilotRoute;
"/cortex-code": typeof CortexCodeRoute;
"/corust": typeof CorustRoute;
"/crow": typeof CrowRoute;
"/cursor": typeof CursorRoute;
"/deepagents": typeof DeepagentsRoute;
"/dimcode": typeof DimcodeRoute;
"/dirac": typeof DiracRoute;
"/download": typeof DownloadRoute;
"/factory-droid": typeof FactoryDroidRoute;
"/fast-agent": typeof FastAgentRoute;
"/gemini": typeof GeminiRoute;
"/glm": typeof GlmRoute;
"/goose": typeof GooseRoute;
"/hermes": typeof HermesRoute;
"/junie": typeof JunieRoute;
"/kilo": typeof KiloRoute;
"/kimi": typeof KimiRoute;
"/minion-code": typeof MinionCodeRoute;
"/mistral-vibe": typeof MistralVibeRoute;
"/nova": typeof NovaRoute;
"/opencode": typeof OpencodeRoute;
"/pi": typeof PiRoute;
"/poolside": typeof PoolsideRoute;
"/privacy": typeof PrivacyRoute;
"/qoder": typeof QoderRoute;
"/qwen-code": typeof QwenCodeRoute;
"/sigit": typeof SigitRoute;
"/stakpak": typeof StakpakRoute;
"/vtcode": typeof VtcodeRoute;
"/blog/$": typeof BlogSplatRoute;
"/docs/$": typeof DocsSplatRoute;
"/blog": typeof BlogIndexRoute;
@@ -128,15 +400,49 @@ export interface FileRoutesByTo {
export interface FileRoutesById {
__root__: typeof rootRouteImport;
"/": typeof IndexRoute;
"/agents": typeof AgentsRoute;
"/agoragentic": typeof AgoragenticRoute;
"/amp": typeof AmpRoute;
"/auggie": typeof AuggieRoute;
"/autohand": typeof AutohandRoute;
"/blog": typeof BlogRouteWithChildren;
"/changelog": typeof ChangelogRoute;
"/claude-code": typeof ClaudeCodeRoute;
"/cline": typeof ClineRoute;
"/cloud": typeof CloudRoute;
"/codebuddy": typeof CodebuddyRoute;
"/codex": typeof CodexRoute;
"/copilot": typeof CopilotRoute;
"/cortex-code": typeof CortexCodeRoute;
"/corust": typeof CorustRoute;
"/crow": typeof CrowRoute;
"/cursor": typeof CursorRoute;
"/deepagents": typeof DeepagentsRoute;
"/dimcode": typeof DimcodeRoute;
"/dirac": typeof DiracRoute;
"/docs": typeof DocsRouteWithChildren;
"/download": typeof DownloadRoute;
"/factory-droid": typeof FactoryDroidRoute;
"/fast-agent": typeof FastAgentRoute;
"/gemini": typeof GeminiRoute;
"/glm": typeof GlmRoute;
"/goose": typeof GooseRoute;
"/hermes": typeof HermesRoute;
"/junie": typeof JunieRoute;
"/kilo": typeof KiloRoute;
"/kimi": typeof KimiRoute;
"/minion-code": typeof MinionCodeRoute;
"/mistral-vibe": typeof MistralVibeRoute;
"/nova": typeof NovaRoute;
"/opencode": typeof OpencodeRoute;
"/pi": typeof PiRoute;
"/poolside": typeof PoolsideRoute;
"/privacy": typeof PrivacyRoute;
"/qoder": typeof QoderRoute;
"/qwen-code": typeof QwenCodeRoute;
"/sigit": typeof SigitRoute;
"/stakpak": typeof StakpakRoute;
"/vtcode": typeof VtcodeRoute;
"/blog/$": typeof BlogSplatRoute;
"/docs/$": typeof DocsSplatRoute;
"/blog/": typeof BlogIndexRoute;
@@ -146,15 +452,49 @@ export interface FileRouteTypes {
fileRoutesByFullPath: FileRoutesByFullPath;
fullPaths:
| "/"
| "/agents"
| "/agoragentic"
| "/amp"
| "/auggie"
| "/autohand"
| "/blog"
| "/changelog"
| "/claude-code"
| "/cline"
| "/cloud"
| "/codebuddy"
| "/codex"
| "/copilot"
| "/cortex-code"
| "/corust"
| "/crow"
| "/cursor"
| "/deepagents"
| "/dimcode"
| "/dirac"
| "/docs"
| "/download"
| "/factory-droid"
| "/fast-agent"
| "/gemini"
| "/glm"
| "/goose"
| "/hermes"
| "/junie"
| "/kilo"
| "/kimi"
| "/minion-code"
| "/mistral-vibe"
| "/nova"
| "/opencode"
| "/pi"
| "/poolside"
| "/privacy"
| "/qoder"
| "/qwen-code"
| "/sigit"
| "/stakpak"
| "/vtcode"
| "/blog/$"
| "/docs/$"
| "/blog/"
@@ -162,13 +502,47 @@ export interface FileRouteTypes {
fileRoutesByTo: FileRoutesByTo;
to:
| "/"
| "/agents"
| "/agoragentic"
| "/amp"
| "/auggie"
| "/autohand"
| "/changelog"
| "/claude-code"
| "/cline"
| "/cloud"
| "/codebuddy"
| "/codex"
| "/copilot"
| "/cortex-code"
| "/corust"
| "/crow"
| "/cursor"
| "/deepagents"
| "/dimcode"
| "/dirac"
| "/download"
| "/factory-droid"
| "/fast-agent"
| "/gemini"
| "/glm"
| "/goose"
| "/hermes"
| "/junie"
| "/kilo"
| "/kimi"
| "/minion-code"
| "/mistral-vibe"
| "/nova"
| "/opencode"
| "/pi"
| "/poolside"
| "/privacy"
| "/qoder"
| "/qwen-code"
| "/sigit"
| "/stakpak"
| "/vtcode"
| "/blog/$"
| "/docs/$"
| "/blog"
@@ -176,15 +550,49 @@ export interface FileRouteTypes {
id:
| "__root__"
| "/"
| "/agents"
| "/agoragentic"
| "/amp"
| "/auggie"
| "/autohand"
| "/blog"
| "/changelog"
| "/claude-code"
| "/cline"
| "/cloud"
| "/codebuddy"
| "/codex"
| "/copilot"
| "/cortex-code"
| "/corust"
| "/crow"
| "/cursor"
| "/deepagents"
| "/dimcode"
| "/dirac"
| "/docs"
| "/download"
| "/factory-droid"
| "/fast-agent"
| "/gemini"
| "/glm"
| "/goose"
| "/hermes"
| "/junie"
| "/kilo"
| "/kimi"
| "/minion-code"
| "/mistral-vibe"
| "/nova"
| "/opencode"
| "/pi"
| "/poolside"
| "/privacy"
| "/qoder"
| "/qwen-code"
| "/sigit"
| "/stakpak"
| "/vtcode"
| "/blog/$"
| "/docs/$"
| "/blog/"
@@ -193,19 +601,88 @@ export interface FileRouteTypes {
}
export interface RootRouteChildren {
IndexRoute: typeof IndexRoute;
AgentsRoute: typeof AgentsRoute;
AgoragenticRoute: typeof AgoragenticRoute;
AmpRoute: typeof AmpRoute;
AuggieRoute: typeof AuggieRoute;
AutohandRoute: typeof AutohandRoute;
BlogRoute: typeof BlogRouteWithChildren;
ChangelogRoute: typeof ChangelogRoute;
ClaudeCodeRoute: typeof ClaudeCodeRoute;
ClineRoute: typeof ClineRoute;
CloudRoute: typeof CloudRoute;
CodebuddyRoute: typeof CodebuddyRoute;
CodexRoute: typeof CodexRoute;
CopilotRoute: typeof CopilotRoute;
CortexCodeRoute: typeof CortexCodeRoute;
CorustRoute: typeof CorustRoute;
CrowRoute: typeof CrowRoute;
CursorRoute: typeof CursorRoute;
DeepagentsRoute: typeof DeepagentsRoute;
DimcodeRoute: typeof DimcodeRoute;
DiracRoute: typeof DiracRoute;
DocsRoute: typeof DocsRouteWithChildren;
DownloadRoute: typeof DownloadRoute;
FactoryDroidRoute: typeof FactoryDroidRoute;
FastAgentRoute: typeof FastAgentRoute;
GeminiRoute: typeof GeminiRoute;
GlmRoute: typeof GlmRoute;
GooseRoute: typeof GooseRoute;
HermesRoute: typeof HermesRoute;
JunieRoute: typeof JunieRoute;
KiloRoute: typeof KiloRoute;
KimiRoute: typeof KimiRoute;
MinionCodeRoute: typeof MinionCodeRoute;
MistralVibeRoute: typeof MistralVibeRoute;
NovaRoute: typeof NovaRoute;
OpencodeRoute: typeof OpencodeRoute;
PiRoute: typeof PiRoute;
PoolsideRoute: typeof PoolsideRoute;
PrivacyRoute: typeof PrivacyRoute;
QoderRoute: typeof QoderRoute;
QwenCodeRoute: typeof QwenCodeRoute;
SigitRoute: typeof SigitRoute;
StakpakRoute: typeof StakpakRoute;
VtcodeRoute: typeof VtcodeRoute;
}
declare module "@tanstack/react-router" {
interface FileRoutesByPath {
"/vtcode": {
id: "/vtcode";
path: "/vtcode";
fullPath: "/vtcode";
preLoaderRoute: typeof VtcodeRouteImport;
parentRoute: typeof rootRouteImport;
};
"/stakpak": {
id: "/stakpak";
path: "/stakpak";
fullPath: "/stakpak";
preLoaderRoute: typeof StakpakRouteImport;
parentRoute: typeof rootRouteImport;
};
"/sigit": {
id: "/sigit";
path: "/sigit";
fullPath: "/sigit";
preLoaderRoute: typeof SigitRouteImport;
parentRoute: typeof rootRouteImport;
};
"/qwen-code": {
id: "/qwen-code";
path: "/qwen-code";
fullPath: "/qwen-code";
preLoaderRoute: typeof QwenCodeRouteImport;
parentRoute: typeof rootRouteImport;
};
"/qoder": {
id: "/qoder";
path: "/qoder";
fullPath: "/qoder";
preLoaderRoute: typeof QoderRouteImport;
parentRoute: typeof rootRouteImport;
};
"/privacy": {
id: "/privacy";
path: "/privacy";
@@ -213,6 +690,20 @@ declare module "@tanstack/react-router" {
preLoaderRoute: typeof PrivacyRouteImport;
parentRoute: typeof rootRouteImport;
};
"/poolside": {
id: "/poolside";
path: "/poolside";
fullPath: "/poolside";
preLoaderRoute: typeof PoolsideRouteImport;
parentRoute: typeof rootRouteImport;
};
"/pi": {
id: "/pi";
path: "/pi";
fullPath: "/pi";
preLoaderRoute: typeof PiRouteImport;
parentRoute: typeof rootRouteImport;
};
"/opencode": {
id: "/opencode";
path: "/opencode";
@@ -220,6 +711,90 @@ declare module "@tanstack/react-router" {
preLoaderRoute: typeof OpencodeRouteImport;
parentRoute: typeof rootRouteImport;
};
"/nova": {
id: "/nova";
path: "/nova";
fullPath: "/nova";
preLoaderRoute: typeof NovaRouteImport;
parentRoute: typeof rootRouteImport;
};
"/mistral-vibe": {
id: "/mistral-vibe";
path: "/mistral-vibe";
fullPath: "/mistral-vibe";
preLoaderRoute: typeof MistralVibeRouteImport;
parentRoute: typeof rootRouteImport;
};
"/minion-code": {
id: "/minion-code";
path: "/minion-code";
fullPath: "/minion-code";
preLoaderRoute: typeof MinionCodeRouteImport;
parentRoute: typeof rootRouteImport;
};
"/kimi": {
id: "/kimi";
path: "/kimi";
fullPath: "/kimi";
preLoaderRoute: typeof KimiRouteImport;
parentRoute: typeof rootRouteImport;
};
"/kilo": {
id: "/kilo";
path: "/kilo";
fullPath: "/kilo";
preLoaderRoute: typeof KiloRouteImport;
parentRoute: typeof rootRouteImport;
};
"/junie": {
id: "/junie";
path: "/junie";
fullPath: "/junie";
preLoaderRoute: typeof JunieRouteImport;
parentRoute: typeof rootRouteImport;
};
"/hermes": {
id: "/hermes";
path: "/hermes";
fullPath: "/hermes";
preLoaderRoute: typeof HermesRouteImport;
parentRoute: typeof rootRouteImport;
};
"/goose": {
id: "/goose";
path: "/goose";
fullPath: "/goose";
preLoaderRoute: typeof GooseRouteImport;
parentRoute: typeof rootRouteImport;
};
"/glm": {
id: "/glm";
path: "/glm";
fullPath: "/glm";
preLoaderRoute: typeof GlmRouteImport;
parentRoute: typeof rootRouteImport;
};
"/gemini": {
id: "/gemini";
path: "/gemini";
fullPath: "/gemini";
preLoaderRoute: typeof GeminiRouteImport;
parentRoute: typeof rootRouteImport;
};
"/fast-agent": {
id: "/fast-agent";
path: "/fast-agent";
fullPath: "/fast-agent";
preLoaderRoute: typeof FastAgentRouteImport;
parentRoute: typeof rootRouteImport;
};
"/factory-droid": {
id: "/factory-droid";
path: "/factory-droid";
fullPath: "/factory-droid";
preLoaderRoute: typeof FactoryDroidRouteImport;
parentRoute: typeof rootRouteImport;
};
"/download": {
id: "/download";
path: "/download";
@@ -234,6 +809,62 @@ declare module "@tanstack/react-router" {
preLoaderRoute: typeof DocsRouteImport;
parentRoute: typeof rootRouteImport;
};
"/dirac": {
id: "/dirac";
path: "/dirac";
fullPath: "/dirac";
preLoaderRoute: typeof DiracRouteImport;
parentRoute: typeof rootRouteImport;
};
"/dimcode": {
id: "/dimcode";
path: "/dimcode";
fullPath: "/dimcode";
preLoaderRoute: typeof DimcodeRouteImport;
parentRoute: typeof rootRouteImport;
};
"/deepagents": {
id: "/deepagents";
path: "/deepagents";
fullPath: "/deepagents";
preLoaderRoute: typeof DeepagentsRouteImport;
parentRoute: typeof rootRouteImport;
};
"/cursor": {
id: "/cursor";
path: "/cursor";
fullPath: "/cursor";
preLoaderRoute: typeof CursorRouteImport;
parentRoute: typeof rootRouteImport;
};
"/crow": {
id: "/crow";
path: "/crow";
fullPath: "/crow";
preLoaderRoute: typeof CrowRouteImport;
parentRoute: typeof rootRouteImport;
};
"/corust": {
id: "/corust";
path: "/corust";
fullPath: "/corust";
preLoaderRoute: typeof CorustRouteImport;
parentRoute: typeof rootRouteImport;
};
"/cortex-code": {
id: "/cortex-code";
path: "/cortex-code";
fullPath: "/cortex-code";
preLoaderRoute: typeof CortexCodeRouteImport;
parentRoute: typeof rootRouteImport;
};
"/copilot": {
id: "/copilot";
path: "/copilot";
fullPath: "/copilot";
preLoaderRoute: typeof CopilotRouteImport;
parentRoute: typeof rootRouteImport;
};
"/codex": {
id: "/codex";
path: "/codex";
@@ -241,6 +872,13 @@ declare module "@tanstack/react-router" {
preLoaderRoute: typeof CodexRouteImport;
parentRoute: typeof rootRouteImport;
};
"/codebuddy": {
id: "/codebuddy";
path: "/codebuddy";
fullPath: "/codebuddy";
preLoaderRoute: typeof CodebuddyRouteImport;
parentRoute: typeof rootRouteImport;
};
"/cloud": {
id: "/cloud";
path: "/cloud";
@@ -248,6 +886,13 @@ declare module "@tanstack/react-router" {
preLoaderRoute: typeof CloudRouteImport;
parentRoute: typeof rootRouteImport;
};
"/cline": {
id: "/cline";
path: "/cline";
fullPath: "/cline";
preLoaderRoute: typeof ClineRouteImport;
parentRoute: typeof rootRouteImport;
};
"/claude-code": {
id: "/claude-code";
path: "/claude-code";
@@ -269,6 +914,41 @@ declare module "@tanstack/react-router" {
preLoaderRoute: typeof BlogRouteImport;
parentRoute: typeof rootRouteImport;
};
"/autohand": {
id: "/autohand";
path: "/autohand";
fullPath: "/autohand";
preLoaderRoute: typeof AutohandRouteImport;
parentRoute: typeof rootRouteImport;
};
"/auggie": {
id: "/auggie";
path: "/auggie";
fullPath: "/auggie";
preLoaderRoute: typeof AuggieRouteImport;
parentRoute: typeof rootRouteImport;
};
"/amp": {
id: "/amp";
path: "/amp";
fullPath: "/amp";
preLoaderRoute: typeof AmpRouteImport;
parentRoute: typeof rootRouteImport;
};
"/agoragentic": {
id: "/agoragentic";
path: "/agoragentic";
fullPath: "/agoragentic";
preLoaderRoute: typeof AgoragenticRouteImport;
parentRoute: typeof rootRouteImport;
};
"/agents": {
id: "/agents";
path: "/agents";
fullPath: "/agents";
preLoaderRoute: typeof AgentsRouteImport;
parentRoute: typeof rootRouteImport;
};
"/": {
id: "/";
path: "/";
@@ -333,15 +1013,49 @@ const DocsRouteWithChildren = DocsRoute._addFileChildren(DocsRouteChildren);
const rootRouteChildren: RootRouteChildren = {
IndexRoute: IndexRoute,
AgentsRoute: AgentsRoute,
AgoragenticRoute: AgoragenticRoute,
AmpRoute: AmpRoute,
AuggieRoute: AuggieRoute,
AutohandRoute: AutohandRoute,
BlogRoute: BlogRouteWithChildren,
ChangelogRoute: ChangelogRoute,
ClaudeCodeRoute: ClaudeCodeRoute,
ClineRoute: ClineRoute,
CloudRoute: CloudRoute,
CodebuddyRoute: CodebuddyRoute,
CodexRoute: CodexRoute,
CopilotRoute: CopilotRoute,
CortexCodeRoute: CortexCodeRoute,
CorustRoute: CorustRoute,
CrowRoute: CrowRoute,
CursorRoute: CursorRoute,
DeepagentsRoute: DeepagentsRoute,
DimcodeRoute: DimcodeRoute,
DiracRoute: DiracRoute,
DocsRoute: DocsRouteWithChildren,
DownloadRoute: DownloadRoute,
FactoryDroidRoute: FactoryDroidRoute,
FastAgentRoute: FastAgentRoute,
GeminiRoute: GeminiRoute,
GlmRoute: GlmRoute,
GooseRoute: GooseRoute,
HermesRoute: HermesRoute,
JunieRoute: JunieRoute,
KiloRoute: KiloRoute,
KimiRoute: KimiRoute,
MinionCodeRoute: MinionCodeRoute,
MistralVibeRoute: MistralVibeRoute,
NovaRoute: NovaRoute,
OpencodeRoute: OpencodeRoute,
PiRoute: PiRoute,
PoolsideRoute: PoolsideRoute,
PrivacyRoute: PrivacyRoute,
QoderRoute: QoderRoute,
QwenCodeRoute: QwenCodeRoute,
SigitRoute: SigitRoute,
StakpakRoute: StakpakRoute,
VtcodeRoute: VtcodeRoute,
};
export const routeTree = rootRouteImport
._addFileChildren(rootRouteChildren)
+65
View File
@@ -0,0 +1,65 @@
import { createFileRoute, Link } from "@tanstack/react-router";
import { CursorFieldProvider } from "~/components/butterfly";
import { SiteFooter } from "~/components/site-footer";
import { SiteHeader } from "~/components/site-header";
import { AGENT_PAGES } from "~/data/agent-pages";
import { pageMeta } from "~/meta";
import "~/styles.css";
export const Route = createFileRoute("/agents")({
head: () => ({
meta: pageMeta(
"Supported agents – Every coding agent Paseo runs | Paseo",
"Run Claude Code, Codex, OpenCode, Cursor CLI, Gemini CLI, Hermes Agent, Qwen Code, Kimi Code, and 28 more coding agents from your phone. Self-hosted, your code stays on your machine.",
),
}),
component: AgentsPage,
});
function AgentsPage() {
return (
<CursorFieldProvider>
<div className="bg-background">
<div className="p-6 md:px-32 md:pt-20 max-w-7xl mx-auto">
<nav className="mb-16">
<SiteHeader />
</nav>
<header className="space-y-4 max-w-2xl">
<h1 className="text-3xl md:text-5xl font-medium tracking-tight">
Every agent Paseo supports
</h1>
<p className="text-white/70 text-lg leading-relaxed">
Paseo runs the native CLI for {AGENT_PAGES.length} coding agents — your skills, your
config, your MCP servers, all intact. Drive any of them from your phone.
</p>
</header>
</div>
<main className="px-6 md:px-32 pb-24 max-w-7xl mx-auto">
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3">
{AGENT_PAGES.map((agent) => (
<Link
key={agent.slug}
to={`/${agent.slug}`}
className="block rounded-xl border border-white/10 bg-white/[0.02] p-5 hover:border-white/20 hover:bg-white/[0.04] transition-colors"
>
<h2 className="font-medium text-white">{agent.name}</h2>
<p className="mt-1 text-sm text-white/60 leading-relaxed">{agent.subtitle}</p>
</Link>
))}
</div>
<p className="mt-10 text-sm text-white/50">
Want to add another?{" "}
<a href="/docs/custom-providers" className="underline hover:text-white/80">
Configure any ACP-compatible agent
</a>{" "}
in <code className="font-mono text-white/60">~/.paseo/config.json</code>.
</p>
</main>
<SiteFooter />
</div>
</CursorFieldProvider>
);
}
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/agoragentic")(agentRouteOptions("agoragentic"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/amp")(agentRouteOptions("amp"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/auggie")(agentRouteOptions("auggie"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/autohand")(agentRouteOptions("autohand"));
+2 -20
View File
@@ -1,22 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { LandingPage } from "~/components/landing-page";
import { pageMeta } from "~/meta";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/claude-code")({
head: () => ({
meta: pageMeta(
"Claude Code Mobile App – Ship from your phone | Paseo",
"Run Claude Code from your phone. Launch agents, check on progress, review diffs, and merge — all from your pocket. Self-hosted, your code stays on your machine.",
),
}),
component: ClaudeCodePage,
});
function ClaudeCodePage() {
return (
<LandingPage
title="Ship with Claude Code from your phone"
subtitle="Launch agents, check on progress, and merge from anywhere. Your Claude Code setup, your machine, your pocket."
/>
);
}
export const Route = createFileRoute("/claude-code")(agentRouteOptions("claude-code"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/cline")(agentRouteOptions("cline"));
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/codebuddy")(agentRouteOptions("codebuddy"));
+2 -20
View File
@@ -1,22 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { LandingPage } from "~/components/landing-page";
import { pageMeta } from "~/meta";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/codex")({
head: () => ({
meta: pageMeta(
"Codex Mobile App – Run Codex from anywhere | Paseo",
"Run OpenAI Codex from your phone. Kick off agents, monitor progress, and ship code without being at your desk. Self-hosted, your code never leaves your machine.",
),
}),
component: CodexPage,
});
function CodexPage() {
return (
<LandingPage
title="Run Codex from anywhere"
subtitle="Kick off Codex agents on your machine from your phone. Check in on the train, review on the couch, merge from the park."
/>
);
}
export const Route = createFileRoute("/codex")(agentRouteOptions("codex"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/copilot")(agentRouteOptions("copilot"));
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/cortex-code")(agentRouteOptions("cortex-code"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/corust")(agentRouteOptions("corust"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/crow")(agentRouteOptions("crow"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/cursor")(agentRouteOptions("cursor"));
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/deepagents")(agentRouteOptions("deepagents"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/dimcode")(agentRouteOptions("dimcode"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/dirac")(agentRouteOptions("dirac"));
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/factory-droid")(agentRouteOptions("factory-droid"));
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/fast-agent")(agentRouteOptions("fast-agent"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/gemini")(agentRouteOptions("gemini"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/glm")(agentRouteOptions("glm"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/goose")(agentRouteOptions("goose"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/hermes")(agentRouteOptions("hermes"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/junie")(agentRouteOptions("junie"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/kilo")(agentRouteOptions("kilo"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/kimi")(agentRouteOptions("kimi"));
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/minion-code")(agentRouteOptions("minion-code"));
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/mistral-vibe")(agentRouteOptions("mistral-vibe"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/nova")(agentRouteOptions("nova"));
+2 -20
View File
@@ -1,22 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { LandingPage } from "~/components/landing-page";
import { pageMeta } from "~/meta";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/opencode")({
head: () => ({
meta: pageMeta(
"OpenCode Mobile App – Code from anywhere | Paseo",
"Run OpenCode from your phone. Launch agents, watch them work, and ship code from wherever you are. Self-hosted, open source, your code stays local.",
),
}),
component: OpenCodePage,
});
function OpenCodePage() {
return (
<LandingPage
title="Run OpenCode from your phone"
subtitle="Launch agents, check on builds, and ship code from anywhere. Same setup, same machine, just not at your desk."
/>
);
}
export const Route = createFileRoute("/opencode")(agentRouteOptions("opencode"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/pi")(agentRouteOptions("pi"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/poolside")(agentRouteOptions("poolside"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/qoder")(agentRouteOptions("qoder"));
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/qwen-code")(agentRouteOptions("qwen-code"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/sigit")(agentRouteOptions("sigit"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/stakpak")(agentRouteOptions("stakpak"));
+4
View File
@@ -0,0 +1,4 @@
import { createFileRoute } from "@tanstack/react-router";
import { agentRouteOptions } from "~/components/agent-route";
export const Route = createFileRoute("/vtcode")(agentRouteOptions("vtcode"));