type Agent = { name: string; /** asset file stem; if no theme variants, `variants: false` */ file: string; variants: boolean; }; const agents: Agent[] = [ { name: 'Claude', file: 'claude', variants: false }, { name: 'Codex', file: 'codex', variants: true }, { name: 'Cursor', file: 'cursor', variants: true }, { name: 'Gemini CLI', file: 'gemini', variants: false }, { name: 'OpenCode', file: 'opencode', variants: true }, { name: 'Windsurf', file: 'windsurf', variants: true }, { name: 'Zed', file: 'zed', variants: true }, ]; export function Agents() { // double the list so the marquee loops seamlessly const track = [...agents, ...agents]; return ( Bring your own agent. Anything that edits React works. {track.map((agent, i) => ( {agent.name} ))} ); } function AgentLogo({ agent }: { agent: Agent }) { const alt = agent.name; const cls = 'h-[28px] md:h-[34px] lg:h-[40px] w-auto object-contain shrink-0'; if (!agent.variants) { return ; } return ( <> > ); }