winter-super-cli 2026.6.21 → 2026.6.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/memories/readme.md +35 -0
  2. package/package.json +6 -1
  3. package/resources/local/agents.md/AGENTS.md +43 -0
  4. package/resources/local/agents.md/LICENSE +21 -0
  5. package/resources/local/agents.md/README.md +49 -0
  6. package/resources/local/agents.md/components/AboutSection.tsx +37 -0
  7. package/resources/local/agents.md/components/CodeExample.tsx +207 -0
  8. package/resources/local/agents.md/components/CompatibilitySection.tsx +378 -0
  9. package/resources/local/agents.md/components/ExampleListSection.tsx +188 -0
  10. package/resources/local/agents.md/components/ExamplesSection.tsx +22 -0
  11. package/resources/local/agents.md/components/FAQSection.tsx +113 -0
  12. package/resources/local/agents.md/components/Footer.tsx +17 -0
  13. package/resources/local/agents.md/components/Hero.tsx +230 -0
  14. package/resources/local/agents.md/components/HowToUseSection.tsx +66 -0
  15. package/resources/local/agents.md/components/Section.tsx +44 -0
  16. package/resources/local/agents.md/components/ThreeCanvas.tsx +240 -0
  17. package/resources/local/agents.md/components/WhySection.tsx +64 -0
  18. package/resources/local/agents.md/components/icons/ClipboardIcon.tsx +27 -0
  19. package/resources/local/agents.md/components/icons/CopyIcon.tsx +15 -0
  20. package/resources/local/agents.md/components/icons/GitHubIcon.tsx +24 -0
  21. package/resources/local/agents.md/components/icons/LinkIcon.tsx +27 -0
  22. package/resources/local/agents.md/components/icons/UserIcon.tsx +27 -0
  23. package/resources/local/agents.md/next.config.ts +8 -0
  24. package/resources/local/agents.md/package.json +27 -0
  25. package/resources/local/agents.md/pages/_app.tsx +24 -0
  26. package/resources/local/agents.md/pages/_document.tsx +24 -0
  27. package/resources/local/agents.md/pages/index.tsx +160 -0
  28. package/resources/local/agents.md/pnpm-lock.yaml +2782 -0
  29. package/resources/local/agents.md/postcss.config.mjs +5 -0
  30. package/resources/local/agents.md/public/favicon-dark.png +0 -0
  31. package/resources/local/agents.md/public/favicon-light.png +0 -0
  32. package/resources/local/agents.md/public/favicon.ico +0 -0
  33. package/resources/local/agents.md/public/logos/aider.svg +16 -0
  34. package/resources/local/agents.md/public/logos/amp.svg +5 -0
  35. package/resources/local/agents.md/public/logos/augment.svg +9 -0
  36. package/resources/local/agents.md/public/logos/codex.svg +3 -0
  37. package/resources/local/agents.md/public/logos/copilot.svg +1 -0
  38. package/resources/local/agents.md/public/logos/cursor.svg +15 -0
  39. package/resources/local/agents.md/public/logos/devin-dark.svg +1 -0
  40. package/resources/local/agents.md/public/logos/devin-light.svg +1 -0
  41. package/resources/local/agents.md/public/logos/factory.svg +3 -0
  42. package/resources/local/agents.md/public/logos/gemini.svg +27 -0
  43. package/resources/local/agents.md/public/logos/goose.svg +12 -0
  44. package/resources/local/agents.md/public/logos/jules.svg +3 -0
  45. package/resources/local/agents.md/public/logos/junie.svg +5 -0
  46. package/resources/local/agents.md/public/logos/kilo-code.svg +43 -0
  47. package/resources/local/agents.md/public/logos/ona-dark.svg +3 -0
  48. package/resources/local/agents.md/public/logos/ona-light.svg +3 -0
  49. package/resources/local/agents.md/public/logos/opencode.svg +40 -0
  50. package/resources/local/agents.md/public/logos/phoenix.svg +44 -0
  51. package/resources/local/agents.md/public/logos/roocode.svg +3 -0
  52. package/resources/local/agents.md/public/logos/semgrep.svg +7 -0
  53. package/resources/local/agents.md/public/logos/uipath.svg +6 -0
  54. package/resources/local/agents.md/public/logos/vscode-dark.svg +19 -0
  55. package/resources/local/agents.md/public/logos/vscode-light.svg +12 -0
  56. package/resources/local/agents.md/public/logos/warp.svg +7 -0
  57. package/resources/local/agents.md/public/logos/windsurf-dark.svg +3 -0
  58. package/resources/local/agents.md/public/logos/windsurf-light.svg +3 -0
  59. package/resources/local/agents.md/public/logos/zed.svg +3 -0
  60. package/resources/local/agents.md/public/og.png +0 -0
  61. package/resources/local/agents.md/styles/globals.css +415 -0
  62. package/resources/local/agents.md/tsconfig.json +34 -0
  63. package/resources/local/awesome-design-md/README.md +197 -0
  64. package/resources/local/awesome-design-md/design-md/airbnb/DESIGN.md +545 -0
  65. package/resources/local/awesome-design-md/design-md/airbnb/README.md +5 -0
  66. package/resources/local/awesome-design-md/design-md/airtable/DESIGN.md +554 -0
  67. package/resources/local/awesome-design-md/design-md/airtable/README.md +5 -0
  68. package/resources/local/awesome-design-md/design-md/apple/DESIGN.md +562 -0
  69. package/resources/local/awesome-design-md/design-md/apple/README.md +5 -0
  70. package/resources/local/awesome-design-md/design-md/binance/DESIGN.md +634 -0
  71. package/resources/local/awesome-design-md/design-md/binance/README.md +5 -0
  72. package/resources/local/awesome-design-md/design-md/bmw/DESIGN.md +544 -0
  73. package/resources/local/awesome-design-md/design-md/bmw/README.md +5 -0
  74. package/resources/local/awesome-design-md/design-md/bmw-m/DESIGN.md +503 -0
  75. package/resources/local/awesome-design-md/design-md/bmw-m/README.md +5 -0
  76. package/resources/local/awesome-design-md/design-md/bugatti/DESIGN.md +454 -0
  77. package/resources/local/awesome-design-md/design-md/bugatti/README.md +5 -0
  78. package/resources/local/awesome-design-md/design-md/cal/DESIGN.md +542 -0
  79. package/resources/local/awesome-design-md/design-md/cal/README.md +5 -0
  80. package/resources/local/awesome-design-md/design-md/claude/DESIGN.md +589 -0
  81. package/resources/local/awesome-design-md/design-md/claude/README.md +5 -0
  82. package/resources/local/awesome-design-md/design-md/clay/DESIGN.md +541 -0
  83. package/resources/local/awesome-design-md/design-md/clay/README.md +5 -0
  84. package/resources/local/awesome-design-md/design-md/clickhouse/DESIGN.md +544 -0
  85. package/resources/local/awesome-design-md/design-md/clickhouse/README.md +5 -0
  86. package/resources/local/awesome-design-md/design-md/cohere/DESIGN.md +451 -0
  87. package/resources/local/awesome-design-md/design-md/cohere/README.md +5 -0
  88. package/resources/local/awesome-design-md/design-md/coinbase/DESIGN.md +570 -0
  89. package/resources/local/awesome-design-md/design-md/coinbase/README.md +5 -0
  90. package/resources/local/awesome-design-md/design-md/composio/DESIGN.md +506 -0
  91. package/resources/local/awesome-design-md/design-md/composio/README.md +5 -0
  92. package/resources/local/awesome-design-md/design-md/cursor/DESIGN.md +537 -0
  93. package/resources/local/awesome-design-md/design-md/cursor/README.md +5 -0
  94. package/resources/local/awesome-design-md/design-md/elevenlabs/DESIGN.md +504 -0
  95. package/resources/local/awesome-design-md/design-md/elevenlabs/README.md +5 -0
  96. package/resources/local/awesome-design-md/design-md/expo/DESIGN.md +526 -0
  97. package/resources/local/awesome-design-md/design-md/expo/README.md +5 -0
  98. package/resources/local/awesome-design-md/design-md/ferrari/DESIGN.md +531 -0
  99. package/resources/local/awesome-design-md/design-md/ferrari/README.md +5 -0
  100. package/resources/local/awesome-design-md/design-md/figma/DESIGN.md +578 -0
  101. package/resources/local/awesome-design-md/design-md/figma/README.md +5 -0
  102. package/resources/local/awesome-design-md/design-md/framer/DESIGN.md +544 -0
  103. package/resources/local/awesome-design-md/design-md/framer/README.md +5 -0
  104. package/resources/local/awesome-design-md/design-md/hashicorp/DESIGN.md +575 -0
  105. package/resources/local/awesome-design-md/design-md/hashicorp/README.md +5 -0
  106. package/resources/local/awesome-design-md/design-md/ibm/DESIGN.md +550 -0
  107. package/resources/local/awesome-design-md/design-md/ibm/README.md +5 -0
  108. package/resources/local/awesome-design-md/design-md/intercom/DESIGN.md +546 -0
  109. package/resources/local/awesome-design-md/design-md/intercom/README.md +5 -0
  110. package/resources/local/awesome-design-md/design-md/kraken/DESIGN.md +125 -0
  111. package/resources/local/awesome-design-md/design-md/kraken/README.md +5 -0
  112. package/resources/local/awesome-design-md/design-md/lamborghini/DESIGN.md +288 -0
  113. package/resources/local/awesome-design-md/design-md/lamborghini/README.md +5 -0
  114. package/resources/local/awesome-design-md/design-md/linear.app/DESIGN.md +548 -0
  115. package/resources/local/awesome-design-md/design-md/linear.app/README.md +5 -0
  116. package/resources/local/awesome-design-md/design-md/lovable/DESIGN.md +298 -0
  117. package/resources/local/awesome-design-md/design-md/lovable/README.md +5 -0
  118. package/resources/local/awesome-design-md/design-md/mastercard/DESIGN.md +365 -0
  119. package/resources/local/awesome-design-md/design-md/mastercard/README.md +5 -0
  120. package/resources/local/awesome-design-md/design-md/meta/DESIGN.md +683 -0
  121. package/resources/local/awesome-design-md/design-md/meta/README.md +5 -0
  122. package/resources/local/awesome-design-md/design-md/minimax/DESIGN.md +746 -0
  123. package/resources/local/awesome-design-md/design-md/minimax/README.md +5 -0
  124. package/resources/local/awesome-design-md/design-md/mintlify/DESIGN.md +852 -0
  125. package/resources/local/awesome-design-md/design-md/mintlify/README.md +5 -0
  126. package/resources/local/awesome-design-md/design-md/miro/DESIGN.md +825 -0
  127. package/resources/local/awesome-design-md/design-md/miro/README.md +5 -0
  128. package/resources/local/awesome-design-md/design-md/mistral.ai/DESIGN.md +773 -0
  129. package/resources/local/awesome-design-md/design-md/mistral.ai/README.md +5 -0
  130. package/resources/local/awesome-design-md/design-md/mongodb/DESIGN.md +767 -0
  131. package/resources/local/awesome-design-md/design-md/mongodb/README.md +5 -0
  132. package/resources/local/awesome-design-md/design-md/nike/DESIGN.md +575 -0
  133. package/resources/local/awesome-design-md/design-md/nike/README.md +5 -0
  134. package/resources/local/awesome-design-md/design-md/notion/DESIGN.md +821 -0
  135. package/resources/local/awesome-design-md/design-md/notion/README.md +5 -0
  136. package/resources/local/awesome-design-md/design-md/nvidia/DESIGN.md +640 -0
  137. package/resources/local/awesome-design-md/design-md/nvidia/README.md +5 -0
  138. package/resources/local/awesome-design-md/design-md/ollama/DESIGN.md +539 -0
  139. package/resources/local/awesome-design-md/design-md/ollama/README.md +5 -0
  140. package/resources/local/awesome-design-md/design-md/opencode.ai/DESIGN.md +521 -0
  141. package/resources/local/awesome-design-md/design-md/opencode.ai/README.md +5 -0
  142. package/resources/local/awesome-design-md/design-md/pinterest/DESIGN.md +597 -0
  143. package/resources/local/awesome-design-md/design-md/pinterest/README.md +5 -0
  144. package/resources/local/awesome-design-md/design-md/playstation/DESIGN.md +661 -0
  145. package/resources/local/awesome-design-md/design-md/playstation/README.md +5 -0
  146. package/resources/local/awesome-design-md/design-md/posthog/DESIGN.md +690 -0
  147. package/resources/local/awesome-design-md/design-md/posthog/README.md +5 -0
  148. package/resources/local/awesome-design-md/design-md/raycast/DESIGN.md +669 -0
  149. package/resources/local/awesome-design-md/design-md/raycast/README.md +5 -0
  150. package/resources/local/awesome-design-md/design-md/renault/DESIGN.md +589 -0
  151. package/resources/local/awesome-design-md/design-md/renault/README.md +5 -0
  152. package/resources/local/awesome-design-md/design-md/replicate/DESIGN.md +616 -0
  153. package/resources/local/awesome-design-md/design-md/replicate/README.md +5 -0
  154. package/resources/local/awesome-design-md/design-md/resend/DESIGN.md +585 -0
  155. package/resources/local/awesome-design-md/design-md/resend/README.md +5 -0
  156. package/resources/local/awesome-design-md/design-md/revolut/DESIGN.md +636 -0
  157. package/resources/local/awesome-design-md/design-md/revolut/README.md +5 -0
  158. package/resources/local/awesome-design-md/design-md/runwayml/DESIGN.md +244 -0
  159. package/resources/local/awesome-design-md/design-md/runwayml/README.md +5 -0
  160. package/resources/local/awesome-design-md/design-md/sanity/DESIGN.md +357 -0
  161. package/resources/local/awesome-design-md/design-md/sanity/README.md +5 -0
  162. package/resources/local/awesome-design-md/design-md/sentry/DESIGN.md +262 -0
  163. package/resources/local/awesome-design-md/design-md/sentry/README.md +5 -0
  164. package/resources/local/awesome-design-md/design-md/shopify/DESIGN.md +350 -0
  165. package/resources/local/awesome-design-md/design-md/shopify/README.md +5 -0
  166. package/resources/local/awesome-design-md/design-md/spacex/DESIGN.md +194 -0
  167. package/resources/local/awesome-design-md/design-md/spacex/README.md +5 -0
  168. package/resources/local/awesome-design-md/design-md/spotify/DESIGN.md +246 -0
  169. package/resources/local/awesome-design-md/design-md/spotify/README.md +5 -0
  170. package/resources/local/awesome-design-md/design-md/starbucks/DESIGN.md +580 -0
  171. package/resources/local/awesome-design-md/design-md/starbucks/README.md +5 -0
  172. package/resources/local/awesome-design-md/design-md/stripe/DESIGN.md +322 -0
  173. package/resources/local/awesome-design-md/design-md/stripe/README.md +5 -0
  174. package/resources/local/awesome-design-md/design-md/supabase/DESIGN.md +255 -0
  175. package/resources/local/awesome-design-md/design-md/supabase/README.md +5 -0
  176. package/resources/local/awesome-design-md/design-md/superhuman/DESIGN.md +252 -0
  177. package/resources/local/awesome-design-md/design-md/superhuman/README.md +5 -0
  178. package/resources/local/awesome-design-md/design-md/tesla/DESIGN.md +286 -0
  179. package/resources/local/awesome-design-md/design-md/tesla/README.md +5 -0
  180. package/resources/local/awesome-design-md/design-md/theverge/DESIGN.md +339 -0
  181. package/resources/local/awesome-design-md/design-md/theverge/README.md +5 -0
  182. package/resources/local/awesome-design-md/design-md/together.ai/DESIGN.md +263 -0
  183. package/resources/local/awesome-design-md/design-md/together.ai/README.md +5 -0
  184. package/resources/local/awesome-design-md/design-md/uber/DESIGN.md +295 -0
  185. package/resources/local/awesome-design-md/design-md/uber/README.md +5 -0
  186. package/resources/local/awesome-design-md/design-md/vercel/DESIGN.md +310 -0
  187. package/resources/local/awesome-design-md/design-md/vercel/README.md +5 -0
  188. package/resources/local/awesome-design-md/design-md/vodafone/DESIGN.md +423 -0
  189. package/resources/local/awesome-design-md/design-md/vodafone/README.md +5 -0
  190. package/resources/local/awesome-design-md/design-md/voltagent/DESIGN.md +323 -0
  191. package/resources/local/awesome-design-md/design-md/voltagent/README.md +5 -0
  192. package/resources/local/awesome-design-md/design-md/warp/DESIGN.md +253 -0
  193. package/resources/local/awesome-design-md/design-md/warp/README.md +5 -0
  194. package/resources/local/awesome-design-md/design-md/webflow/DESIGN.md +92 -0
  195. package/resources/local/awesome-design-md/design-md/webflow/README.md +5 -0
  196. package/resources/local/awesome-design-md/design-md/wired/DESIGN.md +278 -0
  197. package/resources/local/awesome-design-md/design-md/wired/README.md +5 -0
  198. package/resources/local/awesome-design-md/design-md/wise/DESIGN.md +173 -0
  199. package/resources/local/awesome-design-md/design-md/wise/README.md +5 -0
  200. package/resources/local/awesome-design-md/design-md/x.ai/DESIGN.md +257 -0
  201. package/resources/local/awesome-design-md/design-md/x.ai/README.md +5 -0
  202. package/resources/local/awesome-design-md/design-md/zapier/DESIGN.md +328 -0
  203. package/resources/local/awesome-design-md/design-md/zapier/README.md +5 -0
  204. package/resources/local/awesome-design-md/design-md-cli.js +167 -0
  205. package/resources/local/karpathy-tools/CLAUDE.md +65 -0
  206. package/resources/local/karpathy-tools/karpathy-md.js +140 -0
  207. package/scripts/audit-pack.js +21 -0
  208. package/skills/coding.md +87 -0
  209. package/skills/debug.md +63 -0
  210. package/skills/test.md +64 -0
@@ -0,0 +1,378 @@
1
+ import React, { useEffect, useMemo, useRef, useState } from "react";
2
+ import Image from "next/image";
3
+ import Section from "@/components/Section";
4
+
5
+ type AgentEntry = {
6
+ name: string;
7
+ url: string;
8
+ from?: string;
9
+ imageSrc?: string;
10
+ imageSrcLight?: string;
11
+ imageSrcDark?: string;
12
+ };
13
+
14
+ const agents: AgentEntry[] = [
15
+ {
16
+ name: "Codex",
17
+ url: "https://openai.com/codex/",
18
+ from: "OpenAI",
19
+ imageSrc: "/logos/codex.svg",
20
+ },
21
+ {
22
+ name: "Amp",
23
+ url: "https://ampcode.com",
24
+ imageSrc: "/logos/amp.svg",
25
+ },
26
+ {
27
+ name: "Jules",
28
+ url: "https://jules.google",
29
+ from: "Google",
30
+ imageSrc: "/logos/jules.svg",
31
+ },
32
+ {
33
+ name: "Cursor",
34
+ url: "https://cursor.com",
35
+ imageSrc: "/logos/cursor.svg",
36
+ },
37
+ {
38
+ name: "Factory",
39
+ url: "https://factory.ai",
40
+ imageSrc: "/logos/factory.svg",
41
+ },
42
+ {
43
+ name: "RooCode",
44
+ url: "https://roocode.com",
45
+ imageSrc: "/logos/roocode.svg",
46
+ },
47
+ {
48
+ name: "Aider",
49
+ url: "https://aider.chat/docs/usage/conventions.html#always-load-conventions",
50
+ imageSrc: "/logos/aider.svg",
51
+ },
52
+ {
53
+ name: "Gemini CLI",
54
+ url: "https://github.com/google-gemini/gemini-cli/blob/main/docs/get-started/configuration.md#available-settings-in-settingsjson",
55
+ from: "Google",
56
+ imageSrc: "/logos/gemini.svg",
57
+ },
58
+ {
59
+ name: "goose",
60
+ url: "https://github.com/block/goose",
61
+ imageSrc: "/logos/goose.svg",
62
+ },
63
+ {
64
+ name: "Kilo Code",
65
+ url: "https://kilocode.ai/",
66
+ imageSrc: "/logos/kilo-code.svg",
67
+ },
68
+ {
69
+ name: "opencode",
70
+ url: "https://opencode.ai/docs/rules/",
71
+ imageSrc: "/logos/opencode.svg",
72
+ },
73
+ {
74
+ name: "Phoenix",
75
+ url: "https://phoenix.new/",
76
+ imageSrc: "/logos/phoenix.svg",
77
+ },
78
+ {
79
+ name: "Zed",
80
+ url: "https://zed.dev/docs/ai/rules",
81
+ imageSrc: "/logos/zed.svg",
82
+ },
83
+ {
84
+ name: "Semgrep",
85
+ url: "https://semgrep.dev",
86
+ imageSrc: "/logos/semgrep.svg",
87
+ },
88
+ {
89
+ name: "Warp",
90
+ url: "https://docs.warp.dev/knowledge-and-collaboration/rules#project-scoped-rules-1",
91
+ imageSrc: "/logos/warp.svg",
92
+ },
93
+ {
94
+ name: "Coding agent",
95
+ from: "GitHub Copilot",
96
+ url: "https://gh.io/coding-agent-docs",
97
+ imageSrc: "/logos/copilot.svg",
98
+ },
99
+ {
100
+ name: "VS Code",
101
+ url: "https://code.visualstudio.com/docs/editor/artificial-intelligence",
102
+ imageSrcLight: "/logos/vscode-light.svg",
103
+ imageSrcDark: "/logos/vscode-dark.svg",
104
+ },
105
+ {
106
+ name: "Ona",
107
+ url: "https://ona.com",
108
+ imageSrcLight: "/logos/ona-light.svg",
109
+ imageSrcDark: "/logos/ona-dark.svg",
110
+ },
111
+ {
112
+ name: "Devin",
113
+ from: "Cognition",
114
+ url: "https://devin.ai",
115
+ imageSrcLight: "/logos/devin-light.svg",
116
+ imageSrcDark: "/logos/devin-dark.svg",
117
+ },
118
+ {
119
+ name: "Windsurf",
120
+ from: "Cognition",
121
+ url: "https://windsurf.com",
122
+ imageSrcLight: "/logos/windsurf-light.svg",
123
+ imageSrcDark: "/logos/windsurf-dark.svg",
124
+ },
125
+ {
126
+ name: "Autopilot & Coded Agents",
127
+ from: "UiPath",
128
+ url: "https://uipath.github.io/uipath-python",
129
+ imageSrc: "/logos/uipath.svg",
130
+ },
131
+ {
132
+ name: "Augment Code",
133
+ url: "https://docs.augmentcode.com/cli/overview",
134
+ imageSrc: "/logos/augment.svg",
135
+ },
136
+ {
137
+ name: "Junie",
138
+ from: "JetBrains",
139
+ url: "https://jetbrains.com/junie",
140
+ imageSrc: "/logos/junie.svg",
141
+ },
142
+ ];
143
+
144
+ const shuffleAgents = (items: AgentEntry[]) => {
145
+ const copy = [...items];
146
+ for (let i = copy.length - 1; i > 0; i -= 1) {
147
+ const j = Math.floor(Math.random() * (i + 1));
148
+ [copy[i], copy[j]] = [copy[j], copy[i]];
149
+ }
150
+ return copy;
151
+ };
152
+
153
+ type LogoItemProps = AgentEntry & {
154
+ variant?: "marquee" | "grid";
155
+ };
156
+
157
+ function LogoItem({
158
+ name,
159
+ url,
160
+ from,
161
+ imageSrc,
162
+ imageSrcLight,
163
+ imageSrcDark,
164
+ variant = "marquee",
165
+ }: LogoItemProps) {
166
+ const baseClasses =
167
+ variant === "grid"
168
+ ? "flex h-full w-full min-w-0 items-center gap-4"
169
+ : "flex h-20 min-w-[280px] items-center gap-4 pr-10";
170
+
171
+ return (
172
+ <a
173
+ href={url}
174
+ target="_blank"
175
+ rel="noopener noreferrer"
176
+ className={baseClasses}
177
+ >
178
+ <div className="flex h-16 w-16 items-center justify-center">
179
+ {imageSrcLight && imageSrcDark ? (
180
+ <>
181
+ <Image
182
+ src={imageSrcLight}
183
+ alt={`${name} logo`}
184
+ width={64}
185
+ height={64}
186
+ className="block h-16 w-16 dark:hidden"
187
+ />
188
+ <Image
189
+ src={imageSrcDark}
190
+ alt={`${name} logo`}
191
+ width={64}
192
+ height={64}
193
+ className="hidden h-16 w-16 dark:block"
194
+ />
195
+ </>
196
+ ) : imageSrc ? (
197
+ <span
198
+ aria-hidden
199
+ className="block h-16 w-16 bg-gray-700 dark:bg-gray-400"
200
+ style={{
201
+ WebkitMaskImage: `url(${imageSrc})`,
202
+ maskImage: `url(${imageSrc})`,
203
+ WebkitMaskRepeat: "no-repeat",
204
+ maskRepeat: "no-repeat",
205
+ WebkitMaskSize: "contain",
206
+ maskSize: "contain",
207
+ WebkitMaskPosition: "center",
208
+ maskPosition: "center",
209
+ }}
210
+ />
211
+ ) : null}
212
+ </div>
213
+ <div className="flex flex-col justify-center text-left">
214
+ <span className="text-xl font-semibold leading-tight text-gray-700 dark:text-gray-300">
215
+ {name}
216
+ </span>
217
+ {from ? (
218
+ <span className="text-sm text-gray-500 dark:text-gray-400">
219
+ <span className="font-light">from</span>{" "}
220
+ <span className="font-semibold">{from}</span>
221
+ </span>
222
+ ) : null}
223
+ </div>
224
+ </a>
225
+ );
226
+ }
227
+
228
+ function LogoMarqueeRow({
229
+ agents,
230
+ isActive,
231
+ duration,
232
+ offset,
233
+ }: {
234
+ agents: AgentEntry[];
235
+ isActive: boolean;
236
+ duration: number;
237
+ offset?: number;
238
+ }) {
239
+ const doubledAgents = useMemo(() => [...agents, ...agents], [agents]);
240
+
241
+ if (doubledAgents.length === 0) {
242
+ return null;
243
+ }
244
+
245
+ const trackStyle = {
246
+ animationPlayState: isActive ? "running" : "paused",
247
+ animationDelay: offset ? `${offset}s` : undefined,
248
+ "--marquee-duration": `${duration}s`,
249
+ } as React.CSSProperties;
250
+
251
+ return (
252
+ <div className="w-full overflow-hidden">
253
+ <div
254
+ className="logo-marquee-track flex items-center gap-8 py-3"
255
+ style={trackStyle}
256
+ >
257
+ {doubledAgents.map((agent, index) => (
258
+ <LogoItem key={`${agent.name}-${index}`} {...agent} />
259
+ ))}
260
+ </div>
261
+ </div>
262
+ );
263
+ }
264
+
265
+ export default function CompatibilitySection() {
266
+ const containerRef = useRef<HTMLDivElement | null>(null);
267
+ const [isInView, setIsInView] = useState(false);
268
+ const [shuffledAgents, setShuffledAgents] = useState<AgentEntry[]>(agents);
269
+ const [showGrid, setShowGrid] = useState(false);
270
+
271
+ useEffect(() => {
272
+ setShuffledAgents(shuffleAgents(agents));
273
+ }, []);
274
+
275
+ useEffect(() => {
276
+ if (showGrid) {
277
+ setIsInView(false);
278
+ return;
279
+ }
280
+
281
+ const node = containerRef.current;
282
+ if (!node) {
283
+ return;
284
+ }
285
+
286
+ const observer = new IntersectionObserver(
287
+ ([entry]) => {
288
+ setIsInView(entry.isIntersecting && entry.intersectionRatio > 0);
289
+ },
290
+ {
291
+ threshold: 0,
292
+ }
293
+ );
294
+
295
+ observer.observe(node);
296
+
297
+ if (typeof window !== "undefined") {
298
+ const rect = node.getBoundingClientRect();
299
+ const isVisible =
300
+ rect.bottom >= 0 &&
301
+ rect.right >= 0 &&
302
+ rect.left <= window.innerWidth &&
303
+ rect.top <= window.innerHeight;
304
+ setIsInView(isVisible);
305
+ }
306
+
307
+ return () => {
308
+ observer.disconnect();
309
+ };
310
+ }, [showGrid]);
311
+
312
+ const [topRow, bottomRow] = useMemo(() => {
313
+ const first: AgentEntry[] = [];
314
+ const second: AgentEntry[] = [];
315
+
316
+ shuffledAgents.forEach((agent, index) => {
317
+ if (index % 2 === 0) {
318
+ first.push(agent);
319
+ } else {
320
+ second.push(agent);
321
+ }
322
+ });
323
+
324
+ return [first, second];
325
+ }, [shuffledAgents]);
326
+
327
+ return (
328
+ <Section
329
+ id="compatibility"
330
+ title="One AGENTS.md works across many agents"
331
+ className={`py-12 px-0 ${showGrid ? "" : "!px-0"}`}
332
+ center
333
+ maxWidthClass={showGrid ? "max-w-3xl" : "max-w-none"}
334
+ >
335
+ <div className="mx-auto max-w-3xl text-center">
336
+ <p className="text-xl font-light text-gray-500 dark:text-gray-400 px-8">
337
+ Your agent definitions are compatible with a growing ecosystem of AI
338
+ coding agents and tools:
339
+ </p>
340
+ </div>
341
+ {showGrid ? (
342
+ <div
343
+ id="supported-agents"
344
+ className="mt-6 grid w-full grid-cols-2 gap-8 md:grid-cols-3"
345
+ >
346
+ {agents.map((agent) => (
347
+ <LogoItem key={agent.name} {...agent} variant="grid" />
348
+ ))}
349
+ </div>
350
+ ) : (
351
+ <div
352
+ ref={containerRef}
353
+ className="mt-6 flex w-full flex-col gap-6"
354
+ id="supported-agents"
355
+ >
356
+ <LogoMarqueeRow agents={topRow} isActive={isInView} duration={70} />
357
+ <LogoMarqueeRow
358
+ agents={bottomRow}
359
+ isActive={isInView}
360
+ duration={80}
361
+ offset={-35}
362
+ />
363
+ </div>
364
+ )}
365
+ <div className="mt-4 text-center">
366
+ <button
367
+ type="button"
368
+ onClick={() => setShowGrid((prev) => !prev)}
369
+ className="mt-4 text-base font-medium underline hover:no-underline cursor-pointer"
370
+ aria-controls="supported-agents"
371
+ aria-expanded={showGrid}
372
+ >
373
+ {showGrid ? "Collapse supported agents" : "View all supported agents"}
374
+ </button>
375
+ </div>
376
+ </Section>
377
+ );
378
+ }
@@ -0,0 +1,188 @@
1
+ import React from "react";
2
+
3
+ // GitHub language colors for badge backgrounds
4
+ const LANG_BG_COLORS: Record<string, string> = {
5
+ "TypeScript": "#3178c6",
6
+ "Java": "#b07219",
7
+ "Python": "#3572a5",
8
+ "Rust": "#dea584",
9
+ "C++": "#f34b7d",
10
+ };
11
+
12
+ interface RepoCardProps {
13
+ /** e.g. "openai/codex" */
14
+ name: string;
15
+ /** Short 1-2 line summary */
16
+ description: string;
17
+ /** Primary language */
18
+ language: string;
19
+ }
20
+
21
+ /** Hard-coded examples used for the marketing page. */
22
+ const REPOS: RepoCardProps[] = [
23
+ {
24
+ name: "openai/codex",
25
+ description: "General-purpose CLI tooling for AI coding agents.",
26
+ language: "Rust",
27
+ },
28
+ {
29
+ name: "apache/airflow",
30
+ description:
31
+ "Platform to programmatically author, schedule, and monitor workflows.",
32
+ language: "Python",
33
+ },
34
+ {
35
+ name: "temporalio/sdk-java",
36
+ description:
37
+ "Java SDK for Temporal, workflow orchestration defined in code.",
38
+ language: "Java",
39
+ },
40
+ {
41
+ name: "PlutoLang/Pluto",
42
+ description: "A superset of Lua 5.4 with a focus on general-purpose programming.",
43
+ language: "C++",
44
+ },
45
+ ];
46
+
47
+ interface ExampleListSectionProps {
48
+ contributorsByRepo?: Record<string, { avatars: string[]; total: number }>;
49
+ standalone?: boolean; // if false wraps with its own section
50
+ }
51
+
52
+ const InnerGrid = ({
53
+ contributorsByRepo = {},
54
+ }: {
55
+ contributorsByRepo: Record<string, { avatars: string[]; total: number }>;
56
+ }) => (
57
+ <>
58
+ <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
59
+ {REPOS.map((repo, key) => (
60
+ <ExampleCard
61
+ key={repo.name}
62
+ repo={repo}
63
+ avatars={contributorsByRepo[repo.name]?.avatars ?? []}
64
+ hideOnSmall={key > 3}
65
+ hideOnMedium={key > 2}
66
+ totalContributors={
67
+ contributorsByRepo[repo.name]?.total ??
68
+ contributorsByRepo[repo.name]?.avatars.length ??
69
+ 0
70
+ }
71
+ />
72
+ ))}
73
+ </div>
74
+ <div className="flex justify-center mt-6">
75
+ <a
76
+ href="https://github.com/search?q=path%3AAGENTS.md+NOT+is%3Afork+NOT+is%3Aarchived&type=code"
77
+ className="text-base font-medium underline hover:no-underline"
78
+ >
79
+ View 60k+ examples on GitHub
80
+ </a>
81
+ </div>
82
+ </>
83
+ );
84
+
85
+ const ExampleListSection = ({
86
+ contributorsByRepo = {},
87
+ standalone = false,
88
+ }: ExampleListSectionProps) => {
89
+ if (standalone) {
90
+ return (
91
+ <div className="max-w-6xl mx-auto">
92
+ <InnerGrid contributorsByRepo={contributorsByRepo} />
93
+ </div>
94
+ );
95
+ }
96
+
97
+ return (
98
+ <section className="px-6 pb-12 -mt-36">
99
+ <div className="max-w-6xl mx-auto">
100
+ <h2 className="text-3xl font-semibold mb-6">Who uses AGENTS.md?</h2>
101
+ <InnerGrid contributorsByRepo={contributorsByRepo} />
102
+ </div>
103
+ </section>
104
+ );
105
+ };
106
+
107
+ interface ExampleCardPropsExtended {
108
+ repo: RepoCardProps;
109
+ avatars?: string[];
110
+ totalContributors?: number;
111
+ hideOnSmall?: boolean;
112
+ hideOnMedium?: boolean;
113
+ }
114
+
115
+ function ExampleCard({
116
+ repo,
117
+ avatars = [],
118
+ totalContributors = 0,
119
+ hideOnSmall = false,
120
+ hideOnMedium = false,
121
+ }: ExampleCardPropsExtended) {
122
+ // Show top 3 contributors; ensure highest-ranked appears rightmost.
123
+ const orderedAvatars = avatars.slice(0, 3).reverse();
124
+ // Badge background color based on GitHub language colors
125
+ const badgeBg = LANG_BG_COLORS[repo.language] ?? "#6b7280";
126
+
127
+ return (
128
+ <a
129
+ href={`https://github.com/${repo.name}/blob/-/AGENTS.md`}
130
+ target="_blank"
131
+ rel="noopener noreferrer"
132
+ className={`lg:aspect-video bg-white dark:bg-black border border-gray-200 dark:border-gray-700 rounded-lg shadow-sm flex flex-col justify-between p-4 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors ${
133
+ hideOnSmall
134
+ ? "hidden lg:flex"
135
+ : hideOnMedium
136
+ ? "flex md:hidden lg:flex"
137
+ : ""
138
+ }`}
139
+ >
140
+ <div>
141
+ <h3
142
+ className="font-semibold text-lg leading-snug truncate"
143
+ title={repo.name}
144
+ >
145
+ {repo.name}
146
+ </h3>
147
+ <p className="mt-1 text-sm text-gray-600 dark:text-gray-400">
148
+ {repo.description}
149
+ </p>
150
+ </div>
151
+
152
+ <div className="flex items-end justify-between mt-4">
153
+ <span
154
+ className="text-xs font-semibold px-2 py-0.5 rounded"
155
+ style={{ backgroundColor: badgeBg, color: "#fff" }}
156
+ >
157
+ {repo.language}
158
+ </span>
159
+ <div className="flex items-center justify-center">
160
+ <div className="flex items-center justify-center -space-x-2">
161
+ {orderedAvatars.length > 0
162
+ ? orderedAvatars.map((url, i) => (
163
+ // eslint-disable-next-line @next/next/no-img-element
164
+ <img
165
+ key={i}
166
+ src={url}
167
+ alt="Contributor avatar"
168
+ className="w-6 h-6 rounded-full ring-2 ring-white dark:ring-gray-900 object-cover block shrink-0"
169
+ />
170
+ ))
171
+ : Array.from({ length: 3 }).map((_, i) => (
172
+ <span
173
+ key={i}
174
+ aria-hidden
175
+ className="w-6 h-6 rounded-full bg-gray-300 dark:bg-gray-700 ring-2 ring-white dark:ring-gray-900 block shrink-0"
176
+ />
177
+ ))}
178
+ </div>
179
+ <span className="ml-2 text-xs font-semibold px-2 py-0.5 rounded bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 translate-y-[1px]">
180
+ + {totalContributors}
181
+ </span>
182
+ </div>
183
+ </div>
184
+ </a>
185
+ );
186
+ }
187
+
188
+ export default ExampleListSection;
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import Section from "@/components/Section";
3
+ import CodeExample from "@/components/CodeExample";
4
+ import ExampleListSection from "@/components/ExampleListSection";
5
+
6
+ interface ExamplesSectionProps {
7
+ contributorsByRepo: Record<string, { avatars: string[]; total: number }>;
8
+ }
9
+
10
+ export default function ExamplesSection({ contributorsByRepo }: ExamplesSectionProps) {
11
+ return (
12
+ <Section id="examples" title="Examples" className="py-12" center>
13
+ {/* Wide code example */}
14
+ <div className="mb-4">
15
+ <CodeExample compact />
16
+ </div>
17
+
18
+ {/* Repo cards */}
19
+ <ExampleListSection contributorsByRepo={contributorsByRepo} standalone />
20
+ </Section>
21
+ );
22
+ }
@@ -0,0 +1,113 @@
1
+ import React from "react";
2
+ import Section from "@/components/Section";
3
+ import CodeExample from "@/components/CodeExample";
4
+
5
+ interface FAQItem {
6
+ question: string;
7
+ answer: React.ReactNode;
8
+ }
9
+
10
+ export default function FAQ() {
11
+ const faqItems: FAQItem[] = [
12
+ {
13
+ question: "Are there required fields?",
14
+ answer:
15
+ "No. AGENTS.md is just standard Markdown. Use any headings you like; the agent simply parses the text you provide.",
16
+ },
17
+ {
18
+ question: "What if instructions conflict?",
19
+ answer:
20
+ "The closest AGENTS.md to the edited file wins; explicit user chat prompts override everything.",
21
+ },
22
+ {
23
+ question: "Will the agent run testing commands found in AGENTS.md automatically?",
24
+ answer:
25
+ "Yes—if you list them. The agent will attempt to execute relevant programmatic checks and fix failures before finishing the task.",
26
+ },
27
+ {
28
+ question: "Can I update it later?",
29
+ answer: "Absolutely. Treat AGENTS.md as living documentation.",
30
+ },
31
+ {
32
+ question: "How do I migrate existing docs to AGENTS.md?",
33
+ answer: (
34
+ <>
35
+ <p className="mb-2">
36
+ Rename existing files to AGENTS.md and create symbolic links for backward compatibility:
37
+ </p>
38
+ <div className="w-full flex justify-center">
39
+ <CodeExample
40
+ code="mv AGENT.md AGENTS.md && ln -s AGENTS.md AGENT.md"
41
+ compact
42
+ heightClass="min-h-[48px]"
43
+ centerVertically
44
+ />
45
+ </div>
46
+ </>
47
+ ),
48
+ },
49
+ {
50
+ question: "How do I configure Aider?",
51
+ answer: (
52
+ <>
53
+ <p className="mb-2">
54
+ Configure Aider to use AGENTS.md in <code>.aider.conf.yml</code>:
55
+ </p>
56
+ <div className="w-full flex justify-center">
57
+ <CodeExample
58
+ code="read: AGENTS.md"
59
+ compact
60
+ heightClass="min-h-[48px]"
61
+ centerVertically
62
+ />
63
+ </div>
64
+ </>
65
+ ),
66
+ },
67
+ {
68
+ question: "How do I configure Gemini CLI?",
69
+ answer: (
70
+ <>
71
+ <p className="mb-2">
72
+ Configure Gemini CLI to use AGENTS.md in <code>.gemini/settings.json</code>:
73
+ </p>
74
+ <div className="w-full flex justify-center">
75
+ <CodeExample
76
+ code='{
77
+ "context": {
78
+ "fileName": "AGENTS.md"
79
+ },
80
+ }'
81
+ compact
82
+ heightClass="min-h-[48px]"
83
+ centerVertically
84
+ />
85
+ </div>
86
+ </>
87
+ ),
88
+ },
89
+ ];
90
+
91
+ return (
92
+ <Section
93
+ id="faq"
94
+ title="FAQ"
95
+ className="py-20"
96
+ center
97
+ maxWidthClass="max-w-3xl"
98
+ >
99
+ <div className="space-y-8 max-w-4xl mx-auto">
100
+ {faqItems.map((item, index) => (
101
+ <div key={index}>
102
+ <h3 className="text-xl font-semibold text-gray-900 dark:text-white mb-2">
103
+ {item.question}
104
+ </h3>
105
+ <div className="text-gray-600 dark:text-gray-400 leading-relaxed">
106
+ {item.answer}
107
+ </div>
108
+ </div>
109
+ ))}
110
+ </div>
111
+ </Section>
112
+ );
113
+ }