agentnetes 0.1.6 → 0.1.9
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.
- package/dist/index.js +94 -85
- package/package.json +2 -2
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +3 -3
- package/web/.next/required-server-files.json +1 -3
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/next-font-manifest.json +7 -2
- package/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/server/app/_not-found.rsc +9 -10
- package/web/.next/server/app/_not-found.segments/_full.segment.rsc +9 -10
- package/web/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_index.segment.rsc +5 -6
- package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -3
- package/web/.next/server/app/demo/page/next-font-manifest.json +7 -2
- package/web/.next/server/app/demo/page.js +1 -1
- package/web/.next/server/app/demo/page.js.nft.json +1 -1
- package/web/.next/server/app/demo/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/demo.html +1 -1
- package/web/.next/server/app/demo.rsc +13 -12
- package/web/.next/server/app/demo.segments/_full.segment.rsc +13 -12
- package/web/.next/server/app/demo.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/demo.segments/_index.segment.rsc +5 -6
- package/web/.next/server/app/demo.segments/_tree.segment.rsc +4 -3
- package/web/.next/server/app/demo.segments/demo/__PAGE__.segment.rsc +4 -4
- package/web/.next/server/app/demo.segments/demo.segment.rsc +3 -3
- package/web/.next/server/app/docs/page/next-font-manifest.json +7 -2
- package/web/.next/server/app/docs/page.js +1 -1
- package/web/.next/server/app/docs/page.js.nft.json +1 -1
- package/web/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/docs.html +4 -4
- package/web/.next/server/app/docs.rsc +13 -12
- package/web/.next/server/app/docs.segments/_full.segment.rsc +13 -12
- package/web/.next/server/app/docs.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/docs.segments/_index.segment.rsc +5 -6
- package/web/.next/server/app/docs.segments/_tree.segment.rsc +4 -3
- package/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +4 -4
- package/web/.next/server/app/docs.segments/docs.segment.rsc +3 -3
- package/web/.next/server/app/index.html +1 -1
- package/web/.next/server/app/index.rsc +13 -12
- package/web/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/web/.next/server/app/index.segments/_full.segment.rsc +13 -12
- package/web/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/index.segments/_index.segment.rsc +5 -6
- package/web/.next/server/app/index.segments/_tree.segment.rsc +4 -3
- package/web/.next/server/app/page/next-font-manifest.json +7 -2
- package/web/.next/server/app/page.js +1 -1
- package/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0h9pqwt._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0j8_mc~._.js +23 -23
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0amff4c._.js → [root-of-the-server]__0fzgx80._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__08ixfva._.js → [root-of-the-server]__0r3ayxw._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0tlv0_c._.js +3 -0
- package/web/.next/server/chunks/ssr/app_demo_page_tsx_0.31s93._.js +2 -2
- package/web/.next/server/chunks/ssr/app_docs_page_tsx_0a3qz3_._.js +4 -4
- package/web/.next/server/chunks/ssr/app_page_tsx_0es_sk2._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_08x2~-f._.js +3 -0
- package/web/.next/server/chunks/ssr/{node_modules_0fx6-.x._.js → node_modules_0blbtbs._.js} +4 -2
- package/web/.next/server/chunks/ssr/node_modules_0mwlsb-._.js +3 -0
- package/web/.next/server/chunks/ssr/{node_modules_0lynej0._.js → node_modules_10h38q2._.js} +2 -2
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +19 -2
- package/web/.next/server/pages/404.html +1 -1
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/static/chunks/02fb.n1lz42au.css +3 -0
- package/web/.next/static/chunks/0cn.wl1796p2h.js +3 -0
- package/web/.next/static/chunks/0jq5vvqp4k_30.js +1 -0
- package/web/.next/static/chunks/0o4.v~utr5rij.js +185 -0
- package/web/.next/static/chunks/{0wsoljjoc5b47.js → 0uksyqmbyr9u_.js} +6 -6
- package/web/.next/static/chunks/0z1bg424bhco1.js +3 -0
- package/web/.next/static/chunks/{0u46szahhg8-l.js → 13l7oudco0wo6.js} +1 -1
- package/web/.next/static/media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2 +0 -0
- package/web/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
- package/web/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
- package/web/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
- package/web/.next/static/media/3fe682a82f50d426-s.09q3q1i5159bl.woff2 +0 -0
- package/web/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
- package/web/.next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2 +0 -0
- package/web/.next/static/media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2 +0 -0
- package/web/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
- package/web/.next/static/media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2 +0 -0
- package/web/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
- package/web/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
- package/web/.next/static/media/cc545e633e20c56d-s.0dza.stei.9v7.woff2 +0 -0
- package/web/package.json +17 -3
- package/web/server.js +1 -1
- package/web/.next/server/chunks/ssr/_062mb1e._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_05cohki._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_0n.ghpl._.js +0 -5
- package/web/.next/server/chunks/ssr/node_modules_120b470._.js +0 -5
- package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_038euao._.js +0 -3
- package/web/.next/static/chunks/05bvvz79zswfr.js +0 -1
- package/web/.next/static/chunks/0a4bykb92jbu2.js +0 -3
- package/web/.next/static/chunks/0zarrl-ygjy7b.js +0 -1
- package/web/.next/static/chunks/164_6pqattb9q.css +0 -1
- package/web/.next/static/chunks/16xltw7vj2r00.js +0 -185
- /package/web/.next/static/{x6OtPfrxJ7vA5hRM_7Q7K → 1jHD4Io184UO0XmrdHDL_}/_buildManifest.js +0 -0
- /package/web/.next/static/{x6OtPfrxJ7vA5hRM_7Q7K → 1jHD4Io184UO0XmrdHDL_}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{x6OtPfrxJ7vA5hRM_7Q7K → 1jHD4Io184UO0XmrdHDL_}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=64&q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Flogo.png&w=128&q=75 1x, /_next/image?url=%2Flogo.png&w=256&q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=48&q=75 2x"/><link rel="stylesheet" href="/_next/static/chunks/164_6pqattb9q.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/16i90eio_ss7o.js"/><script src="/_next/static/chunks/0dgq26a5_oy.a.js" async=""></script><script src="/_next/static/chunks/0h4bq73pogmtb.js" async=""></script><script src="/_next/static/chunks/0257pdz1-imal.js" async=""></script><script src="/_next/static/chunks/turbopack-0hiru4uy9kb-x.js" async=""></script><script src="/_next/static/chunks/0u46szahhg8-l.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/0a4bykb92jbu2.js" async=""></script><script src="/_next/static/chunks/0zarrl-ygjy7b.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" as="style"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>Agentnetes: Zero to a Self-Organizing AI Agency. On Demand.</title><meta name="description" content="Self-organizing AI agent swarms on demand. Kubernetes-inspired orchestration for AI agents — spawn, isolate, execute, and collect specialist agents from a single goal."/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,false,true)</script><div class="overflow-x-hidden" style="font-family:'Inter', sans-serif;background:var(--bg-base);color:rgb(var(--fg))"><nav class="fixed top-0 inset-x-0 z-50 border-b border-white/[0.06] backdrop-blur-xl" style="background:color-mix(in srgb, var(--bg-base) 90%, transparent)"><div class="max-w-6xl mx-auto px-6 h-14 flex items-center justify-between"><div class="flex items-center gap-2.5"><img alt="Agentnetes" width="26" height="26" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=64&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=64&q=75"/><span class="font-bold tracking-tight text-white">Agentnetes</span><span class="text-xs font-mono text-white/50 border border-white/15 rounded px-2 py-0.5 uppercase tracking-wider hidden sm:inline">Kubernetes-inspired</span></div><div class="flex items-center gap-3"><div class="w-9 h-9"></div><a class="text-white/60 hover:text-white/80 transition-colors text-sm hidden sm:block" href="/docs">Docs</a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/65 hover:text-white/80 transition-colors p-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a><a class="flex items-center gap-1.5 text-xs font-semibold px-4 py-2 rounded-lg transition-all" style="background:linear-gradient(135deg, #c084fc, #f472b6, #fb923c);color:#000" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></nav><section class="pt-28 pb-20 px-6 relative overflow-hidden"><div class="max-w-4xl mx-auto text-center relative"><div class="flex justify-center mb-8"><img alt="Agentnetes" width="100" height="100" decoding="async" data-nimg="1" class="rounded-2xl animate-float" style="color:transparent" srcSet="/_next/image?url=%2Flogo.png&w=128&q=75 1x, /_next/image?url=%2Flogo.png&w=256&q=75 2x" src="/_next/image?url=%2Flogo.png&w=256&q=75"/></div><div class="inline-flex items-center gap-2 rounded-full px-4 py-1.5 text-[11px] font-mono mb-6 border border-white/10" style="background:var(--bg-subtle)"><span class="text-white/65">Self-Organizing AI Agent Swarms. On Demand.</span><span class="text-white/20">·</span><span class="text-white/35">Kubernetes-inspired orchestration for AI agents</span></div><h1 class="text-5xl sm:text-7xl font-extrabold tracking-tight mb-5 leading-[1.05]"><span class="text-white">Zero to a</span><br/><span class="text-white"><span class="inline-block transition-all duration-300" style="opacity:1;transform:translateY(0)">Self-Organizing</span></span><br/><span class="text-white">AI Agency.</span></h1><p class="text-white/75 text-lg mb-4 max-w-2xl mx-auto leading-relaxed font-medium">Type a goal. Agentnetes forms a dynamic team of specialist agents, roles invented on the fly, each running in its own isolated sandbox with the repo pre-cloned.</p><p class="text-white/50 text-base mb-4 max-w-xl mx-auto leading-relaxed">No static agent configs. No stuffed context windows. The team assembles itself, works in parallel, and delivers together.</p><div class="flex flex-wrap items-center justify-center gap-2 mb-10"><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#60a5fa"></span><span class="text-white/80 font-semibold">RLM Pattern</span><span class="text-white/35">MIT CSAIL</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#a78bfa"></span><span class="text-white/80 font-semibold">AutoResearch Loop</span><span class="text-white/35">Karpathy</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#f472b6"></span><span class="text-white/80 font-semibold">Two-Tool MCP</span><span class="text-white/35">search() + execute()</span></div></div><div class="inline-flex items-center gap-3 rounded-2xl px-5 py-3.5 mb-10 text-sm font-mono max-w-full" style="background:var(--bg-subtle);box-shadow:0 0 0 1px rgba(168,85,247,0.2), 0 8px 32px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.04)"><span class="text-white/50 shrink-0">$</span><span class="text-white/75 shrink-0">agentnetes run</span><span class="text-violet-300"><span class="inline-block w-0.5 h-4 bg-violet-400 ml-px align-middle transition-opacity opacity-100"></span></span></div><div class="flex flex-col sm:flex-row items-center justify-center gap-3 mb-16"><a class="flex items-center gap-2 font-semibold px-7 py-3 rounded-xl text-base transition-all hover:opacity-90 hover:scale-[1.02] animate-glow-pulse" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff;box-shadow:0 0 40px rgba(168,85,247,0.35), 0 8px 32px rgba(0,0,0,0.4)" href="/demo"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg>Try Demo · no signup</a><a class="flex items-center gap-2 border border-white/15 text-white/70 px-7 py-3 rounded-xl hover:border-white/30 hover:text-white transition-all text-base" href="/docs">Read the docs <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div><div class="max-w-xl mx-auto w-full mb-10"><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><div class="flex items-center gap-2"><span class="w-2.5 h-2.5 rounded-full bg-red-500/60"></span><span class="w-2.5 h-2.5 rounded-full bg-yellow-500/60"></span><span class="w-2.5 h-2.5 rounded-full bg-green-500/60"></span></div><span class="text-white/30 text-xs font-mono">terminal</span><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="text-[11px] font-mono text-purple-400 hover:text-purple-300 transition-colors">npmjs.com/package/agentnetes →</a></div><div class="px-5 py-4 space-y-2 text-sm font-mono text-left"><div><span class="text-white/30">$ </span><span class="text-green-400">npm</span><span class="text-white/80"> install -g agentnetes</span></div><div class="text-white/30 text-xs pt-1 border-t border-white/[0.05]">then run on any git repo</div><div><span class="text-white/30">$ </span><span class="text-green-400">agentnetes</span><span class="text-white/80"> run </span><span class="text-purple-400">"add dark mode to this app"</span></div></div></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-px rounded-2xl overflow-hidden" style="box-shadow:0 0 0 1px rgba(168,85,247,0.15)"><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#c084fc">0<!-- -->+</div><div class="text-[11px] text-white/65 font-mono">parallel agents</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#f472b6">0<!-- --> tools</div><div class="text-[11px] text-white/65 font-mono">per agent (MCP)</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#fb923c">0<!-- -->K+</div><div class="text-[11px] text-white/65 font-mono">lines explored</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#a78bfa">0<!-- --> goal</div><div class="text-[11px] text-white/65 font-mono">to a full team</div></div></div></div></section><section class="py-24 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">The Problem</div><h2 class="text-3xl font-bold mb-4 text-white">Single agents break on real codebases.</h2><p class="text-white/70 text-base max-w-2xl mx-auto leading-relaxed">Teams have tried everything: single coding agents, prompt-stuffed RAG pipelines, hand-wired MCP tools, elaborate harnesses. They all hit the same wall. Real codebases are too large for one context window, too complex for one agent, and too dynamic for static tool configs. Nobody stopped to ask: what if the agents invented their own team?</p></div><div class="grid sm:grid-cols-3 gap-4 mb-12"><div class="rounded-2xl border p-6 border-white/10" style="background:var(--bg-subtle)"><div class="text-sm font-semibold mb-0.5 text-white/60">Single agent + tools</div><div class="text-[11px] font-mono mb-4 text-white/25">Cursor, Copilot, custom harnesses</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Entire codebase stuffed into context</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Context rot beyond ~50K tokens</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Sequential: one task at a time</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">One failure halts everything</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Static tool lists, no emergent roles</span></li></ul></div><div class="rounded-2xl border p-6 border-purple-500/40" style="background:rgba(168,85,247,0.06)"><div class="text-sm font-semibold mb-0.5 text-purple-400">Agentnetes</div><div class="text-[11px] font-mono mb-4 text-purple-400/50">vRLM runtime · RLM pattern</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Context lives in sandboxes, not prompts</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Agents explore via grep, find, cat</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Specialists run in parallel</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Agents catch and fix each other's errors</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Roles invented per goal, never hardcoded</span></li></ul></div><div class="rounded-2xl border p-6 border-white/10" style="background:var(--bg-subtle)"><div class="text-sm font-semibold mb-0.5 text-white/60">Teams using AI tools</div><div class="text-[11px] font-mono mb-4 text-white/25">Copilot, Cursor, RAG, MCP harnesses</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Try different coding agent harnesses</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Hand-wire MCP tools and hope they compose</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Build RAG pipelines to stuff context</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Tune prompts and pray context holds</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Never break the problem down RLM-style</span></li></ul></div></div></div></section><section class="py-20 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Who Is This For</div><h2 class="text-3xl font-bold mb-4 text-white">Built for developers who move fast.</h2></div><div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-4"><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🧑💻</div><div class="text-white font-semibold text-base mb-2">Solo developers</div><div class="text-white/60 text-sm leading-relaxed">Get the leverage of a full engineering team on your personal projects. Ship faster without hiring.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🏗️</div><div class="text-white font-semibold text-base mb-2">Monorepo teams</div><div class="text-white/60 text-sm leading-relaxed">Point the swarm at your large codebase. Agents explore only what they need · no context limits.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🔐</div><div class="text-white font-semibold text-base mb-2">Security engineers</div><div class="text-white/60 text-sm leading-relaxed">Spin up a dedicated audit swarm to scan, analyse, and fix vulnerabilities across the entire codebase.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">⚙️</div><div class="text-white font-semibold text-base mb-2">Platform engineers</div><div class="text-white/60 text-sm leading-relaxed">Automate cross-cutting concerns · test coverage, observability, migrations · across all services.</div></div></div></div></section><section class="py-20 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Differentiation</div><h2 class="text-3xl font-bold mb-4 text-white">Not another AI coding assistant.</h2><p class="text-white/65 text-base max-w-lg mx-auto">Agentnetes is not autocomplete. It is not a chatbot. It is a swarm that investigates, builds, tests, and delivers.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4"><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">01</div><div class="text-white font-semibold text-base mb-2">Self-organizing teams</div><div class="text-white/60 text-sm leading-relaxed">The model invents the roles it needs. A provider task spawns a Scout, Engineer, Tester. A security audit spawns an entirely different team. Nothing is hardcoded.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">02</div><div class="text-white font-semibold text-base mb-2">Real code execution</div><div class="text-white/60 text-sm leading-relaxed">Agents run real shell commands in real sandboxes. Tests actually execute. Build failures get fixed. This is not a simulation of engineering · it is engineering.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">03</div><div class="text-white font-semibold text-base mb-2">Any model, same swarm</div><div class="text-white/60 text-sm leading-relaxed">Swap Gemini for Claude or GPT by changing one env var. The swarm architecture is model-agnostic. Route through Vercel AI Gateway or call Google directly.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">04</div><div class="text-white font-semibold text-base mb-2">Two-tool MCP strategy</div><div class="text-white/60 text-sm leading-relaxed">Each agent has exactly two tools: search() and execute(). ~1,000 token footprint regardless of codebase size. No tool bloat, no context waste.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">05</div><div class="text-white font-semibold text-base mb-2">Context stays external</div><div class="text-white/60 text-sm leading-relaxed">Files never enter the prompt. Agents write code to explore the codebase · grep, find, cat. Proven by the MIT CSAIL RLM paper to outperform context-stuffing 2×.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">06</div><div class="text-white font-semibold text-base mb-2">Agents fix each other</div><div class="text-white/60 text-sm leading-relaxed">When the Tester finds a bug, it routes back to the Engineer automatically. The swarm has a built-in try → test → fix loop that runs until tests pass.</div></div></div></div></section><section class="py-24 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Architecture</div><h2 class="text-3xl font-bold mb-4 text-white">One goal. A recursive agent swarm.</h2><p class="text-white/75 text-base max-w-xl mx-auto leading-relaxed">The root agent decomposes your goal, invents the right team of specialists, and orchestrates them across isolated sandboxes. Roles are fully emergent. Nothing is hardcoded.</p></div><div class="grid lg:grid-cols-2 gap-8 items-start"><div class="rounded-2xl border border-white/10 p-7" style="background:var(--bg-panel)"><div class="flex justify-center mb-5"><div class="flex items-center gap-2 border border-white/10 rounded-xl px-5 py-2.5 bg-white/5"><span class="text-white/70 text-xs font-mono">goal:</span><span class="text-white text-xs font-mono">"Add @ai-sdk/deepseek provider"</span></div></div><div class="flex justify-center mb-3"><div class="w-px h-5 bg-white/10"></div></div><div class="flex justify-center mb-3"><div class="border border-yellow-400/40 bg-yellow-400/5 rounded-xl px-5 py-3 text-center"><div class="text-yellow-300 text-xs font-mono font-semibold">Root Agent / Tech Lead</div><div class="text-white/75 text-[10px] mt-0.5 font-mono">Gemini 2.5 Pro via AI Gateway</div><div class="flex items-center justify-center gap-1.5 mt-1.5"><span class="w-1.5 h-1.5 rounded-full bg-yellow-400 animate-pulse"></span><span class="text-yellow-500/70 text-[10px] font-mono">vRLM orchestrator</span></div></div></div><div class="flex justify-center gap-14 mb-3"><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-3 mb-5"><div class="rounded-xl border border-blue-400/30 bg-blue-400/5 p-3 text-center"><div class="text-lg mb-1">🔍</div><div class="text-white/90 text-[10px] font-medium leading-tight">Architecture Scout</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-blue-400"></span><span class="text-white/65 text-[9px] font-mono">search()</span></div></div><div class="rounded-xl border border-violet-400/30 bg-violet-400/5 p-3 text-center"><div class="text-lg mb-1">⚙️</div><div class="text-white/90 text-[10px] font-medium leading-tight">Provider Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-violet-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div><div class="rounded-xl border border-emerald-400/30 bg-emerald-400/5 p-3 text-center"><div class="text-lg mb-1">🧪</div><div class="text-white/90 text-[10px] font-medium leading-tight">Test Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-emerald-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div><div class="rounded-xl border border-orange-400/30 bg-orange-400/5 p-3 text-center"><div class="text-lg mb-1">📦</div><div class="text-white/90 text-[10px] font-medium leading-tight">Package Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-orange-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div></div><div class="border-t border-white/5 pt-4 flex flex-wrap justify-center gap-5"><span class="text-[10px] font-mono text-white/65">Firecracker microVM per agent</span><span class="text-[10px] font-mono text-white/65">search() + execute() MCP only</span><span class="text-[10px] font-mono text-white/65">SSE event stream to UI</span></div></div><div class="space-y-3"><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Emergent team formation</div><div class="text-white/75 text-sm leading-relaxed">The root agent reads the codebase, understands the task, and invents the right specialist roles. A provider task gets a Scout, Engineer, Tester, and Packager. A security audit gets an entirely different team.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-box" aria-hidden="true"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Isolated Firecracker sandboxes</div><div class="text-white/75 text-sm leading-relaxed">Each agent runs in its own Vercel Sandbox (Firecracker microVM). Pre-warmed from a repo snapshot for near-instant startup. Agents cannot interfere with each other.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Context externalized, not stuffed</div><div class="text-white/75 text-sm leading-relaxed">Agents do not receive hundreds of files in their prompts. They write code to explore context: grep, find, cat. This is the RLM Pattern from MIT CSAIL, proven 2x more effective.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Agents collaborate at runtime</div><div class="text-white/75 text-sm leading-relaxed">When the Test Engineer finds a type error, that finding routes back to the Provider Engineer automatically. The vRLM runtime handles inter-agent communication.</div></div></div></div></div></div></section><section class="py-24 px-6" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="text-center mb-10"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Live Preview</div><h2 class="text-3xl font-bold mb-3 text-white">Watch the swarm execute</h2><p class="text-white/75 text-base max-w-md mx-auto">Real output from a simulated run. The actual runtime produces identical event streams.</p></div><div class="rounded-2xl border border-white/10 overflow-hidden shadow-2xl shadow-purple-500/10" style="background:var(--bg-panel)"><div class="flex items-center gap-2 px-4 py-3 border-b border-white/[0.06] bg-white/[0.02]"><span class="w-3 h-3 rounded-full bg-[#ff5f57]"></span><span class="w-3 h-3 rounded-full bg-[#ffbd2e]"></span><span class="w-3 h-3 rounded-full bg-[#28c840]"></span><span class="ml-3 text-[11px] text-white/65 font-mono flex-1">agentnetes -- vRLM runtime</span></div><div class="p-5 font-mono text-[12px] leading-6 space-y-0.5 overflow-y-auto" style="height:290px;background:var(--bg-panel)"><span class="inline-block w-2 h-3.5 bg-violet-400 animate-pulse align-middle"></span></div></div><div class="flex flex-wrap justify-center gap-5 mt-6"><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-yellow-400"></span><span class="text-[11px] text-white/65 font-mono">Root orchestrator</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-violet-400"></span><span class="text-[11px] text-white/65 font-mono">Shell execution</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-purple-300"></span><span class="text-[11px] text-white/65 font-mono">Worker agent</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-orange-400"></span><span class="text-[11px] text-white/65 font-mono">Inter-agent collaboration</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-emerald-400"></span><span class="text-[11px] text-white/65 font-mono">Completion</span></div></div></div></section><section class="py-24 px-6"><div class="max-w-6xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-6xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Research Foundations</div><h2 class="text-3xl font-bold mb-4 text-white">Four ideas. One system.</h2><p class="text-white/75 text-base max-w-lg mx-auto">Agentnetes combines four research-backed patterns that individually improve agent performance and together create something qualitatively different.</p></div><div class="grid sm:grid-cols-2 gap-4"><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-blue-500/40 text-blue-400">MIT CSAIL</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">RLM Pattern: Context lives in sandboxes</h3><p class="text-white/70 text-base leading-relaxed mb-3">Recursive Language Model runtime. Instead of stuffing files into an agent's context window, context is externalized into a filesystem that agents explore programmatically.</p><p class="text-white/65 text-sm leading-relaxed">Agents write small shell scripts to grep, find, and read exactly what they need. This keeps token footprints tiny regardless of codebase size and has been shown to outperform naive context-stuffing by 2x on software engineering benchmarks.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">agent.execute('grep -r LanguageModelV1 packages/ -l')</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">Based on: RLM paper, MIT CSAIL -- externalized context via code execution</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-purple-500/40 text-purple-400">Karpathy</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">AutoResearch Loop: Try, measure, keep</h3><p class="text-white/70 text-base leading-relaxed mb-3">Agents do not write code and hope for the best. They write code, run tests, measure the result, and either keep the change or discard it and try again.</p><p class="text-white/65 text-sm leading-relaxed">The Test Engineer runs vitest after every change. Type errors trigger re-implementation. Test failures trigger targeted patches. The loop runs until everything passes or the agent escalates to root.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">run tests -> check failures -> patch -> repeat</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">Based on: AutoResearch pattern -- Andrej Karpathy</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-emerald-500/40 text-emerald-400">MCP v2</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">Two-Tool MCP: search() and execute()</h3><p class="text-white/70 text-base leading-relaxed mb-3">Each agent has exactly two tools exposed via MCP: search() for finding things in the codebase, and execute() for running shell commands in its sandbox.</p><p class="text-white/65 text-sm leading-relaxed">This keeps the agent's tool surface to roughly 1,000 tokens regardless of task complexity. The agent writes arbitrary code against these two primitives. No tool proliferation. Just two powerful primitives that compose into anything.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">tools: [search(), execute()] // ~1000 token footprint</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">MCP protocol -- two-tool minimal surface strategy</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-orange-500/40 text-orange-400">A2A Protocol</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">A2A-Ready: Every agent is a publishable service</h3><p class="text-white/70 text-base leading-relaxed mb-3">Every agent Agentnetes spawns generates a standard A2A Agent Card describing its capabilities, skills, and endpoints.</p><p class="text-white/65 text-sm leading-relaxed">Today these cards are internal. Tomorrow any specialist agent can be published as an independent, discoverable service. A Provider Engineer becomes a reusable service any other system can call.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">GET /agents/provider-engineer/.well-known/agent.json</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">A2A Protocol v1.0 -- Google Agent-to-Agent standard</div></div></div></div></section><section class="py-24 px-6" style="background:var(--bg-base)"><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Stack</div><h2 class="text-3xl font-bold mb-4 text-white">Built on the bleeding edge</h2><p class="text-white/75 text-base max-w-lg mx-auto">Every layer is the latest available. No legacy versions. No compatibility shims.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 mb-8"><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">AI Runtime</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">ai (Vercel AI SDK)</div><div class="text-white/75 text-[10px] font-mono shrink-0">v7.0.0-beta.33</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">ToolLoopAgent</div><div class="text-white/75 text-[10px] font-mono shrink-0">beta agent primitive</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">@ai-sdk/google</div><div class="text-white/75 text-[10px] font-mono shrink-0">v3.0.52</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">ToolLoopAgent is the core primitive in AI SDK v7 beta. Each worker runs two MCP tools: search() and execute().</div></div><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">Sandbox</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Docker</div><div class="text-white/75 text-[10px] font-mono shrink-0">node:20-alpine · local default</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">@vercel/sandbox</div><div class="text-white/75 text-[10px] font-mono shrink-0">Firecracker microVMs</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">Local shell</div><div class="text-white/75 text-[10px] font-mono shrink-0">no-install fallback</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">Docker is the default sandbox for local runs. Vercel Firecracker available for cloud self-hosting.</div></div><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">Models</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Gemini 3.1 Pro</div><div class="text-white/75 text-[10px] font-mono shrink-0">planner · latest</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Gemini 2.5 Flash</div><div class="text-white/75 text-[10px] font-mono shrink-0">planner + worker · default</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">Gemini 3.1 Flash-Lite</div><div class="text-white/75 text-[10px] font-mono shrink-0">worker · fastest</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">Full Gemini 2.0 · 2.5 · 3.x lineup supported. Separate planner and worker models configurable in the UI.</div></div></div><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-panel)"><div class="flex items-center gap-2 px-4 py-3 border-b border-white/[0.06] bg-white/[0.02]"><span class="text-[10px] font-mono text-white/65">lib/vrlm/runtime.ts</span></div><div class="p-5 font-mono text-[12px] leading-7 overflow-x-auto"><div><span class="text-white/65">// Each worker: two tools, one sandbox, emergent role</span></div><div class="mt-1.5"><span class="text-violet-400">const</span><span class="text-white"> agent </span><span class="text-white/75">=</span><span class="text-white"> new </span><span class="text-pink-400">ToolLoopAgent</span><span class="text-white">({</span></div><div class="pl-6"><span class="text-white/70">model: </span><span class="text-orange-400">google</span><span class="text-white">('gemini-2.5-flash'),</span></div><div class="pl-6"><span class="text-white/70">tools: </span><span class="text-white">{ </span><span class="text-emerald-400">search</span><span class="text-white">, </span><span class="text-emerald-400">execute</span><span class="text-white"> <!-- -->}<!-- -->,</span></div><div class="pl-6"><span class="text-white/70">stopWhen: </span><span class="text-orange-400">stepCountIs</span><span class="text-white">(40),</span></div><div class="pl-6"><span class="text-white/70">instructions: </span><span class="text-white">buildWorkerPrompt(task),</span></div><div><span class="text-white">});</span></div><div class="mt-2"><span class="text-white/65">// Drive the tool loop; events stream to the UI via SSE</span></div><div><span class="text-violet-400">for await </span><span class="text-white">(</span><span class="text-violet-400">const </span><span class="text-white">_ </span><span class="text-violet-400">of </span><span class="text-white">result.</span><span class="text-pink-400">fullStream</span><span class="text-white">) <!-- -->{ ... }</span></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">How It Works</div><h2 class="text-3xl font-bold mb-4 text-white">One sentence. Dynamic team. Real results.</h2><p class="text-white/75 text-base max-w-md mx-auto">From goal to dynamic team formation to delivered artifacts, in isolated sandboxes</p></div><div class="grid sm:grid-cols-2 gap-7"><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-gray-700 text-white/65">01</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">You give a goal</h4><p class="text-white/75 text-base leading-relaxed">Type what you want built. Not instructions on how. Just what. Agentnetes figures out the rest. The goal can reference a GitHub repo or an uploaded codebase.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-yellow-500/40 text-yellow-500/80">02</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Root agent explores</h4><p class="text-white/75 text-base leading-relaxed">The Tech Lead spawns a Firecracker sandbox pre-warmed with the target repo. It uses grep, find, and cat to map the architecture. Context lives in the filesystem, not the prompt.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-blue-500/40 text-blue-400/80">03</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Team self-assembles</h4><p class="text-white/75 text-base leading-relaxed">Based on what it finds, the root agent invents the team. Roles, goals, and dependencies are all emergent. A provider task gets different specialists than a security audit.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-violet-500/40 text-violet-400/80">04</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Agents work in parallel</h4><p class="text-white/75 text-base leading-relaxed">Each specialist runs concurrently in its own Firecracker microVM. They explore, write code, run tests, and fix failures. No sequential bottlenecks.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-orange-500/40 text-orange-400/80">05</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Agents collaborate</h4><p class="text-white/75 text-base leading-relaxed">Test failures and findings route back to the right specialist automatically. The vRLM runtime handles inter-agent communication. No human needed to relay.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-emerald-500/40 text-emerald-400/80">06</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Synthesis and delivery</h4><p class="text-white/75 text-base leading-relaxed">The root agent collects all artifacts, verifies completeness, and streams a structured summary to the UI with every generated file. Each agent publishes an A2A card.</p></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Runtime</div><h2 class="text-3xl font-bold mb-4 text-white">vRLM: The Orchestration Runtime</h2><p class="text-white/70 text-base max-w-xl mx-auto">Virtual Recursive Language Model Runtime. The engine between your goal and the agents. Inspired by the <a href="https://arxiv.org/abs/2512.24601" target="_blank" rel="noreferrer" class="text-purple-400/80 hover:text-purple-400 transition-colors">RLM pattern from MIT CSAIL</a>.</p></div><div class="grid md:grid-cols-3 gap-4 mb-10"><div class="rounded-2xl border p-5 border-yellow-500/20 bg-yellow-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">01</span><span class="text-sm font-bold text-yellow-400/80">Plan</span></div><p class="text-white/55 text-sm leading-relaxed">Root agent explores the repo with grep and find, then calls the Gemini planner to invent a specialist team. Roles are fully emergent. Nothing is hardcoded.</p></div><div class="rounded-2xl border p-5 border-purple-500/20 bg-purple-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">02</span><span class="text-sm font-bold text-purple-400/80">Execute</span></div><p class="text-white/55 text-sm leading-relaxed">Workers run in parallel. Each gets an isolated Docker container with the repo pre-cloned, and two tools: search() to grep the codebase and execute() to run any shell command.</p></div><div class="rounded-2xl border p-5 border-emerald-500/20 bg-emerald-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">03</span><span class="text-sm font-bold text-emerald-400/80">Synthesize</span></div><p class="text-white/55 text-sm leading-relaxed">When all workers complete, the root agent reads their findings and artifacts, then produces a structured summary. Every generated file is collected and streamed to the UI.</p></div></div><div class="grid md:grid-cols-2 gap-5 items-start"><div><div class="text-[10px] font-mono text-white/30 uppercase tracking-widest mb-3">Event Stream · SSE</div><p class="text-white/55 text-sm leading-relaxed mb-4">Every phase emits typed events over Server-Sent Events. The UI subscribes and renders agent activity in real time with no polling.</p><div class="space-y-1.5"><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-yellow-400/70">task-created</span><span class="text-white/30">new agent spawned</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-white/40">task-updated</span><span class="text-white/30">status or progress change</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-emerald-400/70">task-completed</span><span class="text-white/30">agent finished with artifacts</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-red-400/70">task-failed</span><span class="text-white/30">agent error</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-purple-400/70">finding</span><span class="text-white/30">agent discovered something</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-blue-400/70">terminal</span><span class="text-white/30">shell command + output</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-emerald-400/50">artifact</span><span class="text-white/30">file produced by an agent</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-orange-400/70">collaboration</span><span class="text-white/30">inter-agent finding shared</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-pink-400/70">synthesis</span><span class="text-white/30">root agent final summary</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-white/40">done</span><span class="text-white/30">run complete</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-red-400/50">error</span><span class="text-white/30">runtime error</span></div></div></div><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-panel)"><div class="px-4 py-2.5 border-b border-white/[0.06] text-[10px] font-mono text-white/35">lib/vrlm/types.ts</div><div class="p-4 font-mono text-[11px] leading-6 space-y-0.5"><div><span class="text-violet-400">interface </span><span class="text-white">VrlmConfig <!-- -->{</span></div><div class="pl-4"><span class="text-white/50">maxWorkers: </span><span class="text-blue-400">number</span><span class="text-white/30">; // default 6</span></div><div class="pl-4"><span class="text-white/50">maxStepsPerAgent: </span><span class="text-blue-400">number</span><span class="text-white/30">; // default 20</span></div><div class="pl-4"><span class="text-white/50">plannerModel: </span><span class="text-blue-400">string</span><span class="text-white/30">; // orchestrator</span></div><div class="pl-4"><span class="text-white/50">workerModel: </span><span class="text-blue-400">string</span><span class="text-white/30">; // specialists</span></div><div class="pl-4"><span class="text-white/50">repoUrl: </span><span class="text-blue-400">string</span><span class="text-white/30">; // cloned per agent</span></div><div class="pl-4"><span class="text-white/50">sandboxProvider: </span><span class="text-emerald-400">'docker' | 'vercel' | 'e2b' | 'daytona' | 'local'</span><span class="text-white/30">;</span></div><div class="pl-4"><span class="text-white/50">googleApiKey?: </span><span class="text-blue-400">string</span><span class="text-white/30">; // UI override</span></div><div><span class="text-white">}</span></div></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Get Started</div><h2 class="text-3xl font-bold mb-4 text-white">Three ways to run</h2><p class="text-white/75 text-base max-w-md mx-auto">From instant browser demo to full local execution with Docker sandboxes</p></div><div class="grid md:grid-cols-3 gap-5"><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-emerald-500/30 text-emerald-400 bg-emerald-500/5">no setup</span></div><div class="text-lg font-semibold text-white mb-2">Simulation</div><p class="text-white/55 text-sm leading-relaxed mb-5">Watch the full agent lifecycle in your browser. No API key, no Docker, no install. Pre-scripted scenarios replay real event sequences.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[11px] text-white/50 mb-5" style="background:var(--bg-panel)">Open /demo → toggle Simulation → watch</div><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg transition-all hover:opacity-90 w-full justify-center" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div><div class="rounded-2xl border border-violet-500/20 p-6 relative" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-violet-500/30 text-violet-400 bg-violet-500/5">recommended</span></div><div class="text-lg font-semibold text-white mb-2">Self-host · Local</div><p class="text-white/55 text-sm leading-relaxed mb-5">Clone the repo and run locally. Both simulation and real agent execution available. Configure your Google API key and target repo directly in the UI. No <code class="text-white/50 text-xs">.env</code> file needed.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[10px] text-white/50 mb-5 space-y-1" style="background:var(--bg-panel)"><div><span class="text-white/30">$ </span>git clone · npm install</div><div><span class="text-white/30">$ </span>docker pull node:20-alpine</div><div><span class="text-white/30">$ </span>npm run dev → open /demo</div></div><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg border border-violet-500/30 text-violet-400 hover:border-violet-500/60 hover:text-violet-300 transition-all w-full justify-center" href="/docs">Read the docs <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-blue-500/30 text-blue-400 bg-blue-500/5">CLI</span></div><div class="text-lg font-semibold text-white mb-2">CLI · Any Repo</div><p class="text-white/55 text-sm leading-relaxed mb-5">Install the npm package globally and run against any local git repo. Requires Docker running locally and a Google API key.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[10px] text-white/50 mb-5 space-y-1" style="background:var(--bg-panel)"><div><span class="text-white/30">$ </span>npm install -g agentnetes</div><div><span class="text-white/30">$ </span>export GOOGLE_API_KEY=...</div><div><span class="text-white/30">$ </span>agentnetes run "your goal"</div></div><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg border border-white/10 text-white/55 hover:border-white/20 hover:text-white/75 transition-all w-full justify-center">npm package <svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="grid lg:grid-cols-2 gap-12 items-center"><div><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Models</div><h2 class="text-3xl font-bold mb-4 text-white">Any model. Same swarm.</h2><p class="text-white/70 text-lg leading-relaxed mb-6">Bring your own Google API key and swap models from the UI. No config file needed. Separate planner and worker models let you balance quality vs cost.</p><div class="space-y-3"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">Gemini 3.x, 2.5, 2.0 all supported</span></div><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">Separate planner and worker models</span></div><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">BYOK: paste API key directly in the UI</span></div><div class="flex items-center gap-2.5"><div class="w-3.5 h-3.5 rounded-full border border-white/20 shrink-0"></div><span class="text-base text-white/65">Claude / GPT-4o support</span><span class="text-[9px] font-mono text-white/50 border border-white/20 rounded px-1">soon</span></div></div></div><div class="space-y-3"><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-violet-500/30 bg-violet-500/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 3.1 Pro</div><div class="text-white/65 text-xs font-mono mt-0.5">Planner · latest</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">new</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-blue-400/20 bg-blue-400/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 2.5 Flash</div><div class="text-white/65 text-xs font-mono mt-0.5">Planner + Worker · default</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">recommended</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-emerald-500/20 bg-emerald-500/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 3.1 Flash-Lite</div><div class="text-white/65 text-xs font-mono mt-0.5">Worker · fastest</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">fast</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-white/10 bg-white/[0.02]"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 2.0 Flash</div><div class="text-white/65 text-xs font-mono mt-0.5">Worker · budget</div></div></div><div class="rounded-xl border border-white/10 px-4 py-3 font-mono text-[11px]" style="background:var(--bg-panel)"><span class="text-white/65">createGoogleGenerativeAI<!-- -->({</span><br/><span class="text-white/65"> <!-- -->apiKey: </span><span class="text-violet-400">process.env.GOOGLE_API_KEY</span><br/><span class="text-white/65">}<!-- -->);</span></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-2xl mx-auto"><div class="rounded-2xl border border-white/10 p-12 text-center relative overflow-hidden" style="background:linear-gradient(135deg, rgba(168,85,247,0.06) 0%, rgba(236,72,153,0.04) 50%, rgba(249,115,22,0.06) 100%)"><div class="flex justify-center mb-5"><img alt="Agentnetes" loading="lazy" width="48" height="48" decoding="async" data-nimg="1" class="rounded-xl" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=48&q=75 1x, /_next/image?url=%2Ffavicon.png&w=96&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=96&q=75"/></div><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-4">Try it now</div><h2 class="text-2xl font-bold mb-3 text-white">See the swarm execute</h2><p class="text-white/75 text-base mb-8 max-w-sm mx-auto leading-relaxed">Give it a goal. Watch specialist agents spawn, explore, implement, test, and deliver inside isolated sandboxes. Under 90 seconds.</p><div class="flex flex-col sm:flex-row items-center justify-center gap-3"><a class="flex items-center gap-2 font-semibold px-8 py-3 rounded-xl text-base transition-all hover:opacity-90 hover:scale-[1.02]" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff" href="/demo">Try Demo · no signup <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="flex items-center gap-2 border border-white/15 text-white/70 px-8 py-3 rounded-xl hover:border-white/30 hover:text-white transition-all text-base" href="/docs">Read the docs</a></div></div></div></section><footer class="border-t border-white/[0.05] py-10 px-6"><div class="max-w-6xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-6"><div class="flex items-center gap-2.5"><img alt="Agentnetes" width="22" height="22" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=48&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=48&q=75"/><div><div class="font-bold text-base text-white">Agentnetes</div><div class="text-white/65 text-xs font-mono">Zero to Agent London 2026</div></div></div><div class="text-white/50 text-sm font-mono text-center">Zero to Agent London · Google DeepMind x Vercel · 2026</div><div class="flex items-center gap-5"><a class="text-white/65 hover:text-white/80 transition-colors text-sm" href="/demo">Simulation</a><a href="https://cerebralvalley.ai/e/zero-to-agent-london" target="_blank" rel="noreferrer" class="flex items-center gap-1 text-white/65 hover:text-white/80 transition-colors text-sm">Hackathon <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/65 hover:text-white/80 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/16i90eio_ss7o.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[80492,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ThemeProvider\"]\n3:I[39756,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[47257,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ClientPageRoot\"]\n6:I[31713,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0a4bykb92jbu2.js\",\"/_next/static/chunks/0zarrl-ygjy7b.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\ne:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n10:I[68027,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/164_6pqattb9q.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800\u0026family=JetBrains+Mono:wght@400;500\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/164_6pqattb9q.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0u46szahhg8-l.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"icon\",\"href\":\"/favicon.png\",\"type\":\"image/png\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800\u0026family=JetBrains+Mono:wght@400;500\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0a4bykb92jbu2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0zarrl-ygjy7b.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/164_6pqattb9q.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"x6OtPfrxJ7vA5hRM_7Q7K\"}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"Agentnetes: Zero to a Self-Organizing AI Agency. On Demand.\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Self-organizing AI agent swarms on demand. Kubernetes-inspired orchestration for AI agents — spawn, isolate, execute, and collect specialist agents from a single goal.\"}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon.png&w=48&q=75 1x, /_next/image?url=%2Ffavicon.png&w=96&q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=64&q=75 2x"/><link rel="stylesheet" href="/_next/static/chunks/02fb.n1lz42au.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/16i90eio_ss7o.js"/><script src="/_next/static/chunks/0dgq26a5_oy.a.js" async=""></script><script src="/_next/static/chunks/0h4bq73pogmtb.js" async=""></script><script src="/_next/static/chunks/0257pdz1-imal.js" async=""></script><script src="/_next/static/chunks/turbopack-0hiru4uy9kb-x.js" async=""></script><script src="/_next/static/chunks/13l7oudco0wo6.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/0z1bg424bhco1.js" async=""></script><script src="/_next/static/chunks/0jq5vvqp4k_30.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="icon" href="/favicon.png" type="image/png"/><title>Agentnetes: Zero to a Self-Organizing AI Agency. On Demand.</title><meta name="description" content="Self-organizing AI agent swarms on demand. Kubernetes-inspired orchestration for AI agents — spawn, isolate, execute, and collect specialist agents from a single goal."/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="inter_b2991b2-module__9mH_6q__variable jetbrains_mono_d5591ac2-module__D88TVW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,false,true)</script><div class="overflow-x-hidden" style="font-family:'Inter', sans-serif;background:var(--bg-base);color:rgb(var(--fg))"><nav class="fixed top-0 inset-x-0 z-50 border-b border-white/[0.06] backdrop-blur-xl" style="background:color-mix(in srgb, var(--bg-base) 90%, transparent)"><div class="max-w-6xl mx-auto px-6 h-14 flex items-center justify-between"><div class="flex items-center gap-2.5"><img alt="Agentnetes" width="36" height="36" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=48&q=75 1x, /_next/image?url=%2Ffavicon.png&w=96&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=96&q=75"/><span class="text-lg font-bold tracking-tight text-white">Agentnetes</span><span class="text-xs font-mono text-white/60 border border-white/15 rounded px-2 py-0.5 uppercase tracking-wider hidden sm:inline">Kubernetes-inspired Agent Orchestration</span></div><div class="flex items-center gap-3"><div class="w-9 h-9"></div><a class="text-white/80 hover:text-white transition-colors text-sm hidden sm:block" href="/docs">Docs</a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/80 hover:text-white transition-colors p-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg transition-all bg-white text-black hover:bg-white/90" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></nav><section class="pt-32 pb-28 px-6 relative overflow-hidden ambient-orb orb-purple noise-overlay" style="background-color:#000000"><div class="max-w-4xl mx-auto text-center relative z-10"><div class="flex flex-col items-center gap-2 mb-8"><div class="inline-flex items-center gap-2 rounded-full px-5 py-2 text-sm font-mono border border-white/10" style="background:var(--bg-subtle)"><span class="text-white/90 font-semibold">Self-Organizing AI Agent Swarms. On Demand.</span></div><div class="text-sm font-mono text-white/60"><span class="text-blue-400 font-semibold">k8s</span> orchestrates containers.<!-- --> <span class="text-violet-400 font-semibold">a8s</span> orchestrates AI agents.<!-- --> <span class="text-white/40">Inspired by <span class="text-blue-400">Kubernetes</span>.</span></div></div><h1 class="text-6xl sm:text-8xl font-extrabold tracking-tight mb-8 leading-[1] text-glow"><span class="text-white">Agentnetes</span></h1><div class="text-3xl sm:text-5xl font-bold tracking-tight mb-8 text-white/75">Zero to a <span class="gradient-text"><span class="inline-block transition-all duration-300 gradient-text pb-1" style="opacity:1;transform:translateY(0);line-height:1.2">Self-Organizing</span></span> AI Agency.</div><p class="text-white/75 text-lg mb-8 max-w-xl mx-auto leading-relaxed">One goal. A swarm of agents spins up, each in its own sandbox and coding agent. They research, build, collaborate, and deliver together.</p><div class="flex flex-wrap items-center justify-center gap-2 mb-10"><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-2 text-sm font-mono" style="background:var(--bg-subtle)"><span class="font-semibold text-blue-400">RLM Pattern</span><span class="text-white/50">MIT CSAIL</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-2 text-sm font-mono" style="background:var(--bg-subtle)"><span class="font-semibold text-violet-400">AutoResearch Loop</span><span class="text-white/50">Karpathy</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-2 text-sm font-mono" style="background:var(--bg-subtle)"><span class="font-semibold text-emerald-400">Two-Tool MCP</span><span class="text-white/50">search() + execute()</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-2 text-sm font-mono" style="background:var(--bg-subtle)"><span class="font-semibold text-orange-400">A2A Protocol</span><span class="text-white/50">Google Agent-to-Agent</span></div></div><div class="inline-flex items-center gap-3 rounded-2xl px-5 py-3.5 mb-10 text-base font-mono max-w-full overflow-hidden border border-white/10" style="background:var(--bg-subtle);box-shadow:0 8px 32px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.04)"><span class="text-white/75 shrink-0">$</span><span class="text-white/75 shrink-0">agentnetes run</span><span class="text-violet-300"><span class="inline-block w-0.5 h-4 bg-violet-400 ml-px align-middle transition-opacity opacity-100"></span></span></div><div class="flex flex-col sm:flex-row items-center justify-center gap-3 mb-16"><a class="flex items-center gap-2 font-semibold px-7 py-3 rounded-xl text-base transition-all hover:opacity-90 hover:scale-[1.02] animate-glow-pulse bg-white text-black" href="/demo"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg>Try Demo</a><a class="flex items-center gap-2 border border-white/15 text-white/70 px-7 py-3 rounded-xl hover:border-white/30 hover:text-white transition-all text-base" href="/docs">Read the docs <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div><div class="max-w-xl mx-auto w-full mb-10"><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><div class="flex items-center gap-2"><span class="w-2.5 h-2.5 rounded-full bg-red-500/60"></span><span class="w-2.5 h-2.5 rounded-full bg-yellow-500/60"></span><span class="w-2.5 h-2.5 rounded-full bg-green-500/60"></span></div><span class="text-white/30 text-sm font-mono">terminal</span><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="text-sm font-mono text-white/50 hover:text-white/70 transition-colors">npmjs.com/package/agentnetes →</a></div><div class="px-5 py-4 space-y-2 text-base font-mono text-left overflow-x-auto"><div><span class="text-white/30">$ </span><span class="text-green-400">npm</span><span class="text-white/80"> install -g agentnetes</span></div><div class="text-white/30 text-sm pt-1 border-t border-white/[0.05]">then run on any git repo</div><div><span class="text-white/30">$ </span><span class="text-green-400">agentnetes</span><span class="text-white/80"> run </span><span class="text-purple-400">"add dark mode to this app"</span></div></div></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-px rounded-2xl overflow-hidden glass-card shimmer-border"><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-3xl font-bold mb-0.5 font-mono text-white">0<!-- -->+</div><div class="text-sm text-white/70 font-mono">parallel agents</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-3xl font-bold mb-0.5 font-mono text-white">0<!-- --> tools</div><div class="text-sm text-white/70 font-mono">per agent (MCP)</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-3xl font-bold mb-0.5 font-mono text-white">0<!-- -->K+</div><div class="text-sm text-white/70 font-mono">lines explored</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-3xl font-bold mb-0.5 font-mono text-white">0<!-- --> goal</div><div class="text-sm text-white/70 font-mono">to a full team</div></div></div></div></section><section class="py-28 px-6 relative overflow-hidden"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto relative z-10"><div class="text-center mb-14"><div class="text-sm font-mono text-white/50 uppercase tracking-[0.2em] mb-3">How It Works</div><h2 class="text-4xl font-bold mb-5 text-white">From one goal to a working team.</h2><p class="text-white/50 text-lg max-w-xl mx-auto leading-relaxed">Type a goal. The system researches, decomposes, builds, and delivers — autonomously.</p></div><div class="grid md:grid-cols-[1fr_auto_1fr_auto_1fr] items-start gap-y-4 mb-4"><div class="rounded-2xl border border-white/[0.06] p-5 transition-all duration-700 " style="background:var(--bg-panel)"><div class="flex items-center gap-3 mb-3"><div class="w-2.5 h-2.5 rounded-full transition-all duration-500 bg-white/20"></div><div class="text-xs font-mono text-white/40 uppercase tracking-wider">01 · Goal</div></div><div class="rounded-xl border border-white/[0.06] overflow-hidden mb-3" style="background:var(--bg-subtle)"><div class="flex items-center gap-1.5 px-3 py-1.5 border-b border-white/[0.04]"><span class="w-2 h-2 rounded-full bg-[#ff5f57]/50"></span><span class="w-2 h-2 rounded-full bg-[#ffbd2e]/50"></span><span class="w-2 h-2 rounded-full bg-[#28c840]/50"></span></div><div class="px-3 py-2.5 font-mono text-sm"><span class="text-white/25">$ </span><span class="text-emerald-400">agentnetes run</span><span class="text-violet-400"> "Add billing with Stripe"</span></div></div><p class="text-xs text-white/40 leading-relaxed">One prompt. No config, no YAML, no agent definitions.</p></div><div class="hidden md:flex flex-col items-center justify-center self-center px-2"><div class="relative w-8 h-px overflow-hidden bg-white/[0.08]"></div></div><div class="rounded-2xl border border-white/[0.06] p-5 transition-all duration-700 " style="background:var(--bg-panel)"><div class="flex items-center gap-3 mb-3"><div class="w-2.5 h-2.5 rounded-full transition-all duration-500 bg-white/20"></div><div class="text-xs font-mono text-white/40 uppercase tracking-wider">02 · Decompose</div></div><div class="rounded-xl border border-violet-400/15 px-3 py-2.5 mb-3 flex items-center gap-2" style="background:var(--bg-subtle)"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-split text-violet-400 shrink-0" aria-hidden="true"><path d="M16 3h5v5"></path><path d="M8 3H3v5"></path><path d="M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3"></path><path d="m15 9 6-6"></path></svg><div><div class="text-xs font-mono text-white/70">Root Agent · <span class="text-blue-400">RLM</span></div><div class="text-[11px] font-mono text-white/30">search → analyze → plan → split</div></div></div><div class="grid grid-cols-2 gap-1.5"><div class="rounded-lg border border-white/[0.04] px-2.5 py-1.5 text-center" style="background:var(--bg-subtle)"><span class="text-[11px] font-mono font-semibold text-violet-400">UI Eng</span></div><div class="rounded-lg border border-white/[0.04] px-2.5 py-1.5 text-center" style="background:var(--bg-subtle)"><span class="text-[11px] font-mono font-semibold text-blue-400">API Eng</span></div><div class="rounded-lg border border-white/[0.04] px-2.5 py-1.5 text-center" style="background:var(--bg-subtle)"><span class="text-[11px] font-mono font-semibold text-emerald-400">DB Eng</span></div><div class="rounded-lg border border-white/[0.04] px-2.5 py-1.5 text-center" style="background:var(--bg-subtle)"><span class="text-[11px] font-mono font-semibold text-orange-400">Tester</span></div></div><p class="text-xs text-white/40 leading-relaxed mt-3">Root agent auto-researches the codebase and invents the right team.</p></div><div class="hidden md:flex flex-col items-center justify-center self-center px-2"><div class="relative w-8 h-px overflow-hidden bg-white/[0.08]"></div></div><div class="rounded-2xl border border-white/[0.06] p-5 transition-all duration-700 " style="background:var(--bg-panel)"><div class="flex items-center gap-3 mb-3"><div class="w-2.5 h-2.5 rounded-full transition-all duration-500 bg-white/20"></div><div class="text-xs font-mono text-white/40 uppercase tracking-wider">03 · Sandboxes</div></div><div class="space-y-1.5 mb-3"><div class="flex items-center gap-2 rounded-lg border border-white/[0.04] px-3 py-1.5" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full bg-violet-400 animate-pulse"></span><span class="text-[11px] font-mono font-semibold text-violet-400">UI Eng</span><span class="text-[10px] font-mono text-white/20 ml-auto">microVM</span></div><div class="flex items-center gap-2 rounded-lg border border-white/[0.04] px-3 py-1.5" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full bg-blue-400 animate-pulse"></span><span class="text-[11px] font-mono font-semibold text-blue-400">API Eng</span><span class="text-[10px] font-mono text-white/20 ml-auto">microVM</span></div><div class="flex items-center gap-2 rounded-lg border border-white/[0.04] px-3 py-1.5" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full bg-emerald-400 animate-pulse"></span><span class="text-[11px] font-mono font-semibold text-emerald-400">DB Eng</span><span class="text-[10px] font-mono text-white/20 ml-auto">microVM</span></div><div class="flex items-center gap-2 rounded-lg border border-white/[0.04] px-3 py-1.5" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full bg-orange-400 animate-pulse"></span><span class="text-[11px] font-mono font-semibold text-orange-400">Tester</span><span class="text-[10px] font-mono text-white/20 ml-auto">microVM</span></div></div><div class="flex gap-2 text-[10px] font-mono text-white/30"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="9" height="9" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-box text-emerald-400/50" aria-hidden="true"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg> Firecracker</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="9" height="9" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml text-blue-400/50" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg> Coding harness</span></div></div></div><div class="grid md:grid-cols-[1fr_auto_1fr_auto_1fr] items-start gap-y-4"><div class="rounded-2xl border border-white/[0.06] p-5 transition-all duration-700 " style="background:var(--bg-panel)"><div class="flex items-center gap-3 mb-3"><div class="w-2.5 h-2.5 rounded-full transition-all duration-500 bg-white/20"></div><div class="text-xs font-mono text-white/40 uppercase tracking-wider">04 · Auto-Research</div></div><div class="rounded-xl border border-white/[0.06] overflow-hidden mb-3" style="background:var(--bg-subtle)"><div class="px-3 py-2 border-b border-white/[0.04] flex items-center justify-between"><span class="text-[11px] font-mono text-blue-400 font-semibold">API Engineer</span><span class="text-[10px] font-mono text-white/20">RLM loop <span class="text-blue-400/50">3</span>/5</span></div><div class="px-3 py-2 space-y-1 font-mono text-[11px]"><div class="flex items-center gap-2"><span class="w-12 text-emerald-400">search</span><span class="text-white/25">···</span></div><div class="flex items-center gap-2"><span class="w-12 text-blue-400">read</span><span class="text-white/25">···</span></div><div class="flex items-center gap-2"><span class="w-12 text-violet-400">think</span><span class="text-white/25">···</span></div><div class="flex items-center gap-2"><span class="w-12 text-orange-400">execute</span><span class="text-white/25">···</span></div><div class="flex items-center gap-2"><span class="w-12 text-emerald-400">verify</span><span class="text-white/25">···</span></div></div></div><p class="text-xs text-white/40 leading-relaxed">Each agent runs a tight <span class="text-blue-400/70">RLM</span> loop — search, read, think, execute, verify — repeating until solved.</p></div><div class="hidden md:flex flex-col items-center justify-center self-center px-2"><div class="relative w-8 h-px overflow-hidden bg-white/[0.08]"></div></div><div class="rounded-2xl border border-white/[0.06] p-5 transition-all duration-700 " style="background:var(--bg-panel)"><div class="flex items-center gap-3 mb-3"><div class="w-2.5 h-2.5 rounded-full transition-all duration-500 bg-white/20"></div><div class="text-xs font-mono text-white/40 uppercase tracking-wider">05 · A2A Collaborate</div></div><div class="space-y-2 mb-3"><div class="rounded-lg border border-orange-400/10 bg-white/[0.02] px-3 py-2"><span class="text-[10px] font-mono text-orange-400">Tester</span><div class="text-[11px] text-white/50 mt-0.5">Webhook sig check fails</div></div><div class="rounded-lg border border-blue-400/10 bg-white/[0.02] px-3 py-2"><span class="text-[10px] font-mono text-blue-400">API Eng</span><div class="text-[11px] text-white/50 mt-0.5">Patched env config — re-run</div></div><div class="rounded-lg border border-emerald-400/10 bg-white/[0.02] px-3 py-2"><span class="text-[10px] font-mono text-emerald-400">Tester</span><div class="text-[11px] text-white/50 mt-0.5">12/12 tests passing ✓</div></div></div><p class="text-xs text-white/40 leading-relaxed">Agents coordinate via <span class="text-orange-400/70">A2A protocol</span> — no shared memory or context window.</p></div><div class="hidden md:flex flex-col items-center justify-center self-center px-2"><div class="relative w-8 h-px overflow-hidden bg-white/[0.08]"></div></div><div class="rounded-2xl border border-white/[0.06] p-5 transition-all duration-700 " style="background:var(--bg-panel)"><div class="flex items-center gap-3 mb-3"><div class="w-2.5 h-2.5 rounded-full transition-all duration-500 bg-white/20"></div><div class="text-xs font-mono text-white/40 uppercase tracking-wider">06 · Deliver</div></div><div class="rounded-xl border border-emerald-400/15 overflow-hidden mb-3" style="background:var(--bg-subtle)"><div class="px-3 py-2 border-b border-white/[0.04] bg-emerald-400/[0.03] flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-check text-emerald-400" aria-hidden="true"><path d="M18 6 7 17l-5-5"></path><path d="m22 10-7.5 7.5L13 16"></path></svg><span class="text-[11px] font-mono font-semibold text-emerald-400">Complete</span><span class="text-[10px] font-mono text-white/25 ml-auto">52s</span></div><div class="px-3 py-2 space-y-1 text-[11px] font-mono"><div class="flex items-center gap-2"><span class="text-emerald-400">✓</span><span class="text-white/50">9 files modified</span></div><div class="flex items-center gap-2"><span class="text-emerald-400">✓</span><span class="text-white/50">Stripe webhooks + billing UI</span></div><div class="flex items-center gap-2"><span class="text-emerald-400">✓</span><span class="text-white/50">12/12 tests passing</span></div></div></div><div class="flex justify-between text-center"><div><div class="text-sm font-bold font-mono text-violet-400">4</div><div class="text-[9px] font-mono text-white/25 uppercase">agents</div></div><div><div class="text-sm font-bold font-mono text-emerald-400">4</div><div class="text-[9px] font-mono text-white/25 uppercase">sandboxes</div></div><div><div class="text-sm font-bold font-mono text-blue-400">5</div><div class="text-[9px] font-mono text-white/25 uppercase">RLM</div></div><div><div class="text-sm font-bold font-mono text-orange-400">52s</div><div class="text-[9px] font-mono text-white/25 uppercase">time</div></div></div></div></div><div class="hidden md:flex justify-start pl-[16.7%] -mt-0 -mb-0"></div></div></section><section class="py-24 px-6 relative overflow-hidden ambient-orb orb-blue fade-in-section"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">The Problem</div><h2 class="text-4xl font-bold mb-4 text-white">Single agents break on real codebases.</h2><p class="text-white/85 text-lg max-w-2xl mx-auto leading-relaxed">Teams have tried everything: single coding agents, prompt-stuffed RAG pipelines, hand-wired MCP tools, elaborate harnesses. They all hit the same wall. Real codebases are too large for one context window, too complex for one agent, and too dynamic for static tool configs. Nobody stopped to ask: what if the agents invented their own team?</p></div><div class="grid sm:grid-cols-3 gap-4 mb-12"><div class="rounded-2xl border p-6 card-hover border-white/10" style="background:var(--bg-subtle)"><div class="text-sm font-semibold mb-0.5 text-white/80">Single agent + tools</div><div class="text-sm font-mono mb-4 text-white/50">Cursor, Copilot, custom harnesses</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Entire codebase stuffed into context</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Context rot beyond ~50K tokens</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Sequential: one task at a time</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">One failure halts everything</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Static tool lists, no emergent roles</span></li></ul></div><div class="rounded-2xl border p-6 card-hover border-white/20 shimmer-border" style="background:rgba(255,255,255,0.03)"><div class="text-sm font-semibold mb-0.5 text-white">Agentnetes</div><div class="text-sm font-mono mb-4 text-white/70">vRLM runtime · RLM pattern</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/70">✓</span><span class="text-white/75">Context lives in sandboxes, not prompts</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/70">✓</span><span class="text-white/75">Agents explore via grep, find, cat</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/70">✓</span><span class="text-white/75">Specialists run in parallel</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/70">✓</span><span class="text-white/75">Agents catch and fix each other's errors</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/70">✓</span><span class="text-white/75">Roles invented per goal, never hardcoded</span></li></ul></div><div class="rounded-2xl border p-6 card-hover border-white/10" style="background:var(--bg-subtle)"><div class="text-sm font-semibold mb-0.5 text-white/80">Teams using AI tools</div><div class="text-sm font-mono mb-4 text-white/50">Copilot, Cursor, RAG, MCP harnesses</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Try different coding agent harnesses</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Hand-wire MCP tools and hope they compose</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Build RAG pipelines to stuff context</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Tune prompts and pray context holds</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-sm text-white/20">✗</span><span class="text-white/70">Never break the problem down RLM-style</span></li></ul></div></div></div></section><section class="py-20 px-6 dot-grid fade-in-section"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Who Is This For</div><h2 class="text-4xl font-bold mb-4 text-white">Built for developers who move fast.</h2></div><div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-4 stagger-children"><div class="rounded-2xl border border-white/10 p-6 card-hover" style="background:var(--bg-card)"><div class="text-2xl mb-3">🧑💻</div><div class="text-white font-semibold text-base mb-2">Solo developers</div><div class="text-white/80 text-lg leading-relaxed">Get the leverage of a full engineering team on your personal projects. Ship faster without hiring.</div></div><div class="rounded-2xl border border-white/10 p-6 card-hover" style="background:var(--bg-card)"><div class="text-2xl mb-3">🏗️</div><div class="text-white font-semibold text-base mb-2">Monorepo teams</div><div class="text-white/80 text-lg leading-relaxed">Point the swarm at your large codebase. Agents explore only what they need · no context limits.</div></div><div class="rounded-2xl border border-white/10 p-6 card-hover" style="background:var(--bg-card)"><div class="text-2xl mb-3">🔐</div><div class="text-white font-semibold text-base mb-2">Security engineers</div><div class="text-white/80 text-lg leading-relaxed">Spin up a dedicated audit swarm to scan, analyse, and fix vulnerabilities across the entire codebase.</div></div><div class="rounded-2xl border border-white/10 p-6 card-hover" style="background:var(--bg-card)"><div class="text-2xl mb-3">⚙️</div><div class="text-white font-semibold text-base mb-2">Platform engineers</div><div class="text-white/80 text-lg leading-relaxed">Automate cross-cutting concerns · test coverage, observability, migrations · across all services.</div></div></div></div></section><section class="py-20 px-6 mesh-gradient fade-in-section"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Differentiation</div><h2 class="text-4xl font-bold mb-4 text-white">Not another AI coding assistant.</h2><p class="text-white/85 text-lg max-w-lg mx-auto">Agentnetes is not autocomplete. It is not a chatbot. It is a swarm that investigates, builds, tests, and delivers.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 stagger-children"><div class="rounded-2xl border border-white/[0.08] p-6 hover:border-white/20 group card-hover" style="background:var(--bg-card)"><div class="text-sm font-mono mb-3 text-white/30">01</div><div class="text-white font-semibold text-base mb-2">Self-organizing teams</div><div class="text-white/80 text-lg leading-relaxed">The model invents the roles it needs. A provider task spawns a Scout, Engineer, Tester. A security audit spawns an entirely different team. Nothing is hardcoded.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 hover:border-white/20 group card-hover" style="background:var(--bg-card)"><div class="text-sm font-mono mb-3 text-white/30">02</div><div class="text-white font-semibold text-base mb-2">Real code execution</div><div class="text-white/80 text-lg leading-relaxed">Agents run real shell commands in real sandboxes. Tests actually execute. Build failures get fixed. This is not a simulation of engineering · it is engineering.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 hover:border-white/20 group card-hover" style="background:var(--bg-card)"><div class="text-sm font-mono mb-3 text-white/30">03</div><div class="text-white font-semibold text-base mb-2">Any model, same swarm</div><div class="text-white/80 text-lg leading-relaxed">Swap Gemini for Claude or GPT by changing one env var. The swarm architecture is model-agnostic. Route through Vercel AI Gateway or call Google directly.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 hover:border-white/20 group card-hover" style="background:var(--bg-card)"><div class="text-sm font-mono mb-3 text-white/30">04</div><div class="text-white font-semibold text-base mb-2">Two-tool MCP strategy</div><div class="text-white/80 text-lg leading-relaxed">Each agent has exactly two tools: search() and execute(). ~1,000 token footprint regardless of codebase size. No tool bloat, no context waste.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 hover:border-white/20 group card-hover" style="background:var(--bg-card)"><div class="text-sm font-mono mb-3 text-white/30">05</div><div class="text-white font-semibold text-base mb-2">Context stays external</div><div class="text-white/80 text-lg leading-relaxed">Files never enter the prompt. Agents write code to explore the codebase · grep, find, cat. Proven by the MIT CSAIL RLM paper to outperform context-stuffing 2×.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 hover:border-white/20 group card-hover" style="background:var(--bg-card)"><div class="text-sm font-mono mb-3 text-white/30">06</div><div class="text-white font-semibold text-base mb-2">Agents fix each other</div><div class="text-white/80 text-lg leading-relaxed">When the Tester finds a bug, it routes back to the Engineer automatically. The swarm has a built-in try → test → fix loop that runs until tests pass.</div></div></div></div></section><section class="py-24 px-6 relative overflow-hidden ambient-orb orb-purple fade-in-section"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Architecture</div><h2 class="text-4xl font-bold mb-4 text-white">One goal. A recursive agent swarm.</h2><p class="text-white/90 text-lg max-w-xl mx-auto leading-relaxed">The root agent decomposes your goal, invents the right team of specialists, and orchestrates them across isolated sandboxes. Roles are fully emergent. Nothing is hardcoded.</p></div><div class="grid lg:grid-cols-2 gap-8 items-start"><div class="rounded-2xl border border-white/10 p-7 glass-card"><div class="flex justify-center mb-5"><div class="flex items-center gap-2 border border-white/10 rounded-xl px-5 py-2.5 bg-white/5"><span class="text-emerald-400 text-sm font-mono">goal:</span><span class="text-violet-400 text-sm font-mono">"Add @ai-sdk/deepseek provider"</span></div></div><div class="flex justify-center mb-3"><div class="w-px h-5 bg-white/10"></div></div><div class="flex justify-center mb-3"><div class="border border-white/15 bg-white/[0.03] rounded-xl px-5 py-3 text-center"><div class="text-violet-400 text-sm font-mono font-semibold">Root Agent / Tech Lead</div><div class="text-white/75 text-sm mt-0.5 font-mono"><span class="text-blue-400">Gemini 2.5 Pro</span> via AI Gateway</div><div class="flex items-center justify-center gap-1.5 mt-1.5"><span class="w-1.5 h-1.5 rounded-full bg-orange-400 animate-pulse"></span><span class="text-orange-400 text-sm font-mono">vRLM orchestrator</span></div></div></div><div class="flex justify-center gap-14 mb-3"><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-3 mb-5"><div class="rounded-xl border border-white/10 bg-white/[0.02] p-3 text-center"><div class="text-lg mb-1">🔍</div><div class="text-violet-400 text-sm font-medium leading-tight">Architecture Scout</div><div class="text-blue-400/60 text-sm font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-emerald-400/50"></span><span class="text-emerald-400 text-sm font-mono">search()</span></div></div><div class="rounded-xl border border-white/10 bg-white/[0.02] p-3 text-center"><div class="text-lg mb-1">⚙️</div><div class="text-violet-400 text-sm font-medium leading-tight">Provider Engineer</div><div class="text-blue-400/60 text-sm font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-emerald-400/50"></span><span class="text-emerald-400 text-sm font-mono">execute()</span></div></div><div class="rounded-xl border border-white/10 bg-white/[0.02] p-3 text-center"><div class="text-lg mb-1">🧪</div><div class="text-violet-400 text-sm font-medium leading-tight">Test Engineer</div><div class="text-blue-400/60 text-sm font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-emerald-400/50"></span><span class="text-emerald-400 text-sm font-mono">execute()</span></div></div><div class="rounded-xl border border-white/10 bg-white/[0.02] p-3 text-center"><div class="text-lg mb-1">📦</div><div class="text-violet-400 text-sm font-medium leading-tight">Package Engineer</div><div class="text-blue-400/60 text-sm font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-emerald-400/50"></span><span class="text-emerald-400 text-sm font-mono">execute()</span></div></div></div><div class="border-t border-white/5 pt-4 flex flex-wrap justify-center gap-5"><span class="text-sm font-mono text-white/65"><span class="text-orange-400">Firecracker</span> microVM per agent</span><span class="text-sm font-mono text-white/65"><span class="text-emerald-400">search()</span> + <span class="text-emerald-400">execute()</span> MCP only</span><span class="text-sm font-mono text-white/65"><span class="text-violet-400">SSE</span> event stream to UI</span></div></div><div class="space-y-3"><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 card-hover" style="background:var(--bg-card)"><div class="text-white/80 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Emergent team formation</div><div class="text-white/85 text-lg leading-relaxed">The root agent reads the codebase, understands the task, and invents the right specialist roles. A provider task gets a <span class="text-violet-400 font-mono">Scout</span>, <span class="text-violet-400 font-mono">Engineer</span>, <span class="text-violet-400 font-mono">Tester</span>, and <span class="text-violet-400 font-mono">Packager</span>. A security audit gets an entirely different team.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 card-hover" style="background:var(--bg-card)"><div class="text-white/80 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-box" aria-hidden="true"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Isolated Firecracker sandboxes</div><div class="text-white/85 text-lg leading-relaxed">Each agent runs in its own <span class="text-emerald-400 font-mono">Vercel Sandbox</span> (Firecracker microVM). Pre-warmed from a repo snapshot for near-instant startup. Agents cannot interfere with each other.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 card-hover" style="background:var(--bg-card)"><div class="text-white/80 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Context externalized, not stuffed</div><div class="text-white/85 text-lg leading-relaxed">Agents do not receive hundreds of files in their prompts. They write code to explore context: <span class="text-emerald-400 font-mono">grep</span>, <span class="text-emerald-400 font-mono">find</span>, <span class="text-emerald-400 font-mono">cat</span>. This is the <span class="text-blue-400 font-mono">RLM Pattern</span> from MIT CSAIL, proven 2x more effective.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 card-hover" style="background:var(--bg-card)"><div class="text-white/80 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Agents collaborate at runtime</div><div class="text-white/85 text-lg leading-relaxed">When the <span class="text-violet-400 font-mono">Test Engineer</span> finds a type error, that finding routes back to the <span class="text-violet-400 font-mono">Provider Engineer</span> automatically. The <span class="text-orange-400 font-mono">vRLM</span> runtime handles inter-agent communication.</div></div></div></div></div></div></section><section class="py-24 px-6 relative noise-overlay fade-in-section" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto relative z-10"><div class="text-center mb-10"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Live Preview</div><h2 class="text-4xl font-bold mb-3 text-white">Watch the swarm execute</h2><p class="text-white/90 text-lg max-w-md mx-auto">Real output from a simulated run. The actual runtime produces identical event streams.</p></div><div class="rounded-2xl border border-white/10 overflow-hidden shadow-2xl shadow-black/20" style="background:var(--bg-panel)"><div class="flex items-center gap-2 px-4 py-3 border-b border-white/[0.06] bg-white/[0.02]"><span class="w-3 h-3 rounded-full bg-[#ff5f57]"></span><span class="w-3 h-3 rounded-full bg-[#ffbd2e]"></span><span class="w-3 h-3 rounded-full bg-[#28c840]"></span><span class="ml-3 text-sm text-white/80 font-mono flex-1">agentnetes -- vRLM runtime</span></div><div class="p-5 font-mono text-sm leading-6 space-y-0.5 overflow-y-auto" style="height:290px;background:var(--bg-panel)"><span class="inline-block w-2 h-3.5 bg-violet-400 animate-pulse align-middle"></span></div></div><div class="flex flex-wrap justify-center gap-5 mt-6"><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-yellow-400"></span><span class="text-sm text-white/80 font-mono">Root orchestrator</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-violet-400"></span><span class="text-sm text-white/80 font-mono">Shell execution</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-purple-300"></span><span class="text-sm text-white/80 font-mono">Worker agent</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-orange-400"></span><span class="text-sm text-white/80 font-mono">Inter-agent collaboration</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-emerald-400"></span><span class="text-sm text-white/80 font-mono">Completion</span></div></div></div></section><section class="py-24 px-6 dot-grid fade-in-section"><div class="max-w-6xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-6xl mx-auto"><div class="text-center mb-14"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Research Foundations</div><h2 class="text-4xl font-bold mb-4 text-white">Five ideas. One system.</h2><p class="text-white/90 text-lg max-w-lg mx-auto">Agentnetes combines five research-backed patterns that individually improve agent performance and together create something qualitatively different.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 stagger-children"><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 flex flex-col gap-4 card-hover" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-sm font-mono px-2 py-0.5 rounded border border-white/15 text-white/60">MIT CSAIL</div><div class="text-white/80 group-hover:text-white transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">RLM Pattern: Context lives in sandboxes</h3><p class="text-white/85 text-lg leading-relaxed mb-3">Recursive Language Model runtime. Instead of stuffing files into an agent's context window, context is externalized into a filesystem that agents explore programmatically.</p><p class="text-white/80 text-lg leading-relaxed">Agents write small shell scripts to grep, find, and read exactly what they need. This keeps token footprints tiny regardless of codebase size and has been shown to outperform naive context-stuffing by 2x on software engineering benchmarks.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-sm text-violet-300 overflow-x-auto">agent.execute('grep -r LanguageModelV1 packages/ -l')</div><div class="text-sm text-white/75 font-mono border-t border-white/5 pt-3">Based on: RLM paper, MIT CSAIL -- externalized context via code execution</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 flex flex-col gap-4 card-hover" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-sm font-mono px-2 py-0.5 rounded border border-white/15 text-white/60">Karpathy</div><div class="text-white/80 group-hover:text-white transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">AutoResearch Loop: Try, measure, keep</h3><p class="text-white/85 text-lg leading-relaxed mb-3">Agents do not write code and hope for the best. They write code, run tests, measure the result, and either keep the change or discard it and try again.</p><p class="text-white/80 text-lg leading-relaxed">The Test Engineer runs vitest after every change. Type errors trigger re-implementation. Test failures trigger targeted patches. The loop runs until everything passes or the agent escalates to root.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-sm text-violet-300 overflow-x-auto">run tests -> check failures -> patch -> repeat</div><div class="text-sm text-white/75 font-mono border-t border-white/5 pt-3">Based on: AutoResearch pattern -- Andrej Karpathy</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 flex flex-col gap-4 card-hover" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-sm font-mono px-2 py-0.5 rounded border border-white/15 text-white/60">MCP v2</div><div class="text-white/80 group-hover:text-white transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">Two-Tool MCP: search() and execute()</h3><p class="text-white/85 text-lg leading-relaxed mb-3">Each agent has exactly two tools exposed via MCP: search() for finding things in the codebase, and execute() for running shell commands in its sandbox.</p><p class="text-white/80 text-lg leading-relaxed">This keeps the agent's tool surface to roughly 1,000 tokens regardless of task complexity. The agent writes arbitrary code against these two primitives. No tool proliferation. Just two powerful primitives that compose into anything.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-sm text-violet-300 overflow-x-auto">tools: [search(), execute()] // ~1000 token footprint</div><div class="text-sm text-white/75 font-mono border-t border-white/5 pt-3">MCP protocol -- two-tool minimal surface strategy</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 flex flex-col gap-4 card-hover" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-sm font-mono px-2 py-0.5 rounded border border-white/15 text-white/60">A2A Protocol</div><div class="text-white/80 group-hover:text-white transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">A2A-Ready: Every agent is a publishable service</h3><p class="text-white/85 text-lg leading-relaxed mb-3">Every agent Agentnetes spawns generates a standard A2A Agent Card describing its capabilities, skills, and endpoints.</p><p class="text-white/80 text-lg leading-relaxed">Today these cards are internal. Tomorrow any specialist agent can be published as an independent, discoverable service. A Provider Engineer becomes a reusable service any other system can call.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-sm text-violet-300 overflow-x-auto">GET /agents/provider-engineer/.well-known/agent.json</div><div class="text-sm text-white/75 font-mono border-t border-white/5 pt-3">A2A Protocol v1.0 -- Google Agent-to-Agent standard</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 flex flex-col gap-4 card-hover" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-sm font-mono px-2 py-0.5 rounded border border-white/15 text-white/60">Kubernetes-inspired</div><div class="text-white/80 group-hover:text-white transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">Load Balancing: Work distributed across the swarm</h3><p class="text-white/85 text-lg leading-relaxed mb-3">All specialist agents run concurrently via Promise.allSettled. Work is load-balanced across the agent pool automatically. One agent failing never blocks the others.</p><p class="text-white/80 text-lg leading-relaxed">maxWorkers caps concurrency like Kubernetes resource limits on a node. Promise.allSettled provides fault-tolerant dispatch: a failing Engineer never kills the Scout or Tester. The swarm delivers what it can regardless of individual failures.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-sm text-violet-300 overflow-x-auto">Promise.allSettled(workers.map(task => runWorker(task)))</div><div class="text-sm text-white/75 font-mono border-t border-white/5 pt-3">Kubernetes-inspired: parallel execution + fault-tolerant dispatch</div></div></div></div></section><section class="py-24 px-6 mesh-gradient fade-in-section" style="background:var(--bg-base)"><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Stack</div><h2 class="text-4xl font-bold mb-4 text-white">Built on the bleeding edge</h2><p class="text-white/90 text-lg max-w-lg mx-auto">Every layer is the latest available. No legacy versions. No compatibility shims.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 mb-8 stagger-children"><div class="rounded-2xl border border-white/10 p-5 glass-card card-hover"><div class="text-sm font-mono text-white/65 uppercase tracking-wider mb-4">AI Runtime</div><div class="space-y-2"><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/15 bg-white/[0.03]"><div class="text-white font-semibold text-sm">ai (Vercel AI SDK)</div><div class="text-violet-400/70 text-sm font-mono">v7.0.0-beta.33</div></div><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/15 bg-white/[0.03]"><div class="text-white font-semibold text-sm">ToolLoopAgent</div><div class="text-violet-400/70 text-sm font-mono">beta agent primitive</div></div><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white font-semibold text-sm">@ai-sdk/google</div><div class="text-violet-400/70 text-sm font-mono">v3.0.52</div></div></div><div class="text-sm text-white/80 font-mono mt-4 leading-relaxed"><span class="text-pink-400">ToolLoopAgent</span> is the core primitive in AI SDK v7 beta. Each worker runs two MCP tools: <span class="text-emerald-400">search()</span> and <span class="text-emerald-400">execute()</span>.</div></div><div class="rounded-2xl border border-white/10 p-5 glass-card card-hover"><div class="text-sm font-mono text-white/65 uppercase tracking-wider mb-4">Sandbox</div><div class="space-y-2"><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/15 bg-white/[0.03]"><div class="text-white font-semibold text-sm">Docker</div><div class="text-violet-400/70 text-sm font-mono">node:20-alpine · local default</div></div><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white font-semibold text-sm">@vercel/sandbox</div><div class="text-violet-400/70 text-sm font-mono">Firecracker microVMs</div></div><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white font-semibold text-sm">Local shell</div><div class="text-violet-400/70 text-sm font-mono">no-install fallback</div></div></div><div class="text-sm text-white/80 font-mono mt-4 leading-relaxed"><span class="text-emerald-400">Docker</span> is the default sandbox for local runs. <span class="text-orange-400">Vercel Firecracker</span> available for cloud self-hosting.</div></div><div class="rounded-2xl border border-white/10 p-5 glass-card card-hover"><div class="text-sm font-mono text-white/65 uppercase tracking-wider mb-4">Models</div><div class="space-y-2"><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/15 bg-white/[0.03]"><div class="text-white font-semibold text-sm">Gemini 3.1 Pro</div><div class="text-violet-400/70 text-sm font-mono">planner · latest</div></div><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/15 bg-white/[0.03]"><div class="text-white font-semibold text-sm">Gemini 2.5 Flash</div><div class="text-violet-400/70 text-sm font-mono">planner + worker · default</div></div><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 border rounded-xl px-4 py-3 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white font-semibold text-sm">Gemini 3.1 Flash-Lite</div><div class="text-violet-400/70 text-sm font-mono">worker · fastest</div></div></div><div class="text-sm text-white/80 font-mono mt-4 leading-relaxed">Full <span class="text-blue-400">Gemini 2.0 · 2.5 · 3.x</span> lineup supported. Separate <span class="text-violet-400">planner</span> and <span class="text-violet-400">worker</span> models configurable in the UI.</div></div></div><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-panel)"><div class="flex items-center gap-2 px-4 py-3 border-b border-white/[0.06] bg-white/[0.02]"><span class="text-sm font-mono text-white/65">lib/vrlm/runtime.ts</span></div><div class="p-5 font-mono text-sm leading-7 overflow-x-auto"><div><span class="text-white/65">// Each worker: two tools, one sandbox, emergent role</span></div><div class="mt-1.5"><span class="text-violet-400">const</span><span class="text-white"> agent </span><span class="text-white/75">=</span><span class="text-white"> new </span><span class="text-pink-400">ToolLoopAgent</span><span class="text-white">({</span></div><div class="pl-6"><span class="text-white/70">model: </span><span class="text-orange-400">google</span><span class="text-white">('gemini-2.5-flash'),</span></div><div class="pl-6"><span class="text-white/70">tools: </span><span class="text-white">{ </span><span class="text-emerald-400">search</span><span class="text-white">, </span><span class="text-emerald-400">execute</span><span class="text-white"> <!-- -->}<!-- -->,</span></div><div class="pl-6"><span class="text-white/70">stopWhen: </span><span class="text-orange-400">stepCountIs</span><span class="text-white">(40),</span></div><div class="pl-6"><span class="text-white/70">instructions: </span><span class="text-white">buildWorkerPrompt(task),</span></div><div><span class="text-white">});</span></div><div class="mt-2"><span class="text-white/65">// Drive the tool loop; events stream to the UI via SSE</span></div><div><span class="text-violet-400">for await </span><span class="text-white">(</span><span class="text-violet-400">const </span><span class="text-white">_ </span><span class="text-violet-400">of </span><span class="text-white">result.</span><span class="text-pink-400">fullStream</span><span class="text-white">) <!-- -->{ ... }</span></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05] fade-in-section"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Workflow</div><h2 class="text-4xl font-bold mb-4 text-white">One sentence. Dynamic team. Real results.</h2><p class="text-white/90 text-lg max-w-md mx-auto">From goal to dynamic team formation to delivered artifacts in isolated sandboxes.</p></div><div class="grid sm:grid-cols-2 gap-7 stagger-children"><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-sm font-mono mt-0.5 border-white/15 text-white/50">01</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">You give a goal</h4><p class="text-white/90 text-lg leading-relaxed">Type what you want built. Not instructions on how. Just what. Agentnetes figures out the rest. The goal can reference a GitHub repo or an uploaded codebase.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-sm font-mono mt-0.5 border-white/15 text-white/50">02</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Root agent explores</h4><p class="text-white/90 text-lg leading-relaxed">The Tech Lead spawns a Firecracker sandbox pre-warmed with the target repo. It uses grep, find, and cat to map the architecture. Context lives in the filesystem, not the prompt.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-sm font-mono mt-0.5 border-white/15 text-white/50">03</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Team self-assembles</h4><p class="text-white/90 text-lg leading-relaxed">Based on what it finds, the root agent invents the team. Roles, goals, and dependencies are all emergent. A provider task gets different specialists than a security audit.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-sm font-mono mt-0.5 border-white/15 text-white/50">04</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Agents work in parallel</h4><p class="text-white/90 text-lg leading-relaxed">Each specialist runs concurrently in its own Firecracker microVM. They explore, write code, run tests, and fix failures. No sequential bottlenecks.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-sm font-mono mt-0.5 border-white/15 text-white/50">05</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Agents collaborate</h4><p class="text-white/90 text-lg leading-relaxed">Test failures and findings route back to the right specialist automatically. The vRLM runtime handles inter-agent communication. No human needed to relay.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-sm font-mono mt-0.5 border-white/15 text-white/50">06</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Synthesis and delivery</h4><p class="text-white/90 text-lg leading-relaxed">The root agent collects all artifacts, verifies completeness, and streams a structured summary to the UI with every generated file. Each agent publishes an A2A card.</p></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05] relative overflow-hidden ambient-orb orb-pink fade-in-section" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto relative z-10"><div class="text-center mb-14"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Runtime</div><h2 class="text-4xl font-bold mb-4 text-white">vRLM: The Orchestration Runtime</h2><p class="text-white/85 text-lg max-w-xl mx-auto">Virtual Recursive Language Model Runtime. The engine between your goal and the agents. Inspired by the <a href="https://arxiv.org/abs/2512.24601" target="_blank" rel="noreferrer" class="text-white/80 underline underline-offset-2 hover:text-white transition-colors">RLM pattern from MIT CSAIL</a>.</p></div><div class="grid md:grid-cols-3 gap-4 mb-10"><div class="rounded-2xl border p-5 border-white/10 bg-white/[0.02] card-hover"><div class="flex items-center gap-2 mb-3"><span class="text-sm font-mono text-white/25">01</span><span class="text-sm font-bold text-white/80">Plan</span></div><p class="text-white/80 text-lg leading-relaxed">Root agent explores the repo with grep and find, then calls the Gemini planner to invent a specialist team. Roles are fully emergent. Nothing is hardcoded.</p></div><div class="rounded-2xl border p-5 border-white/10 bg-white/[0.02] card-hover"><div class="flex items-center gap-2 mb-3"><span class="text-sm font-mono text-white/25">02</span><span class="text-sm font-bold text-white/80">Execute</span></div><p class="text-white/80 text-lg leading-relaxed">Workers run in parallel. Each gets an isolated Docker container with the repo pre-cloned, and two tools: search() to grep the codebase and execute() to run any shell command.</p></div><div class="rounded-2xl border p-5 border-white/10 bg-white/[0.02] card-hover"><div class="flex items-center gap-2 mb-3"><span class="text-sm font-mono text-white/25">03</span><span class="text-sm font-bold text-white/80">Synthesize</span></div><p class="text-white/80 text-lg leading-relaxed">When all workers complete, the root agent reads their findings and artifacts, then produces a structured summary. Every generated file is collected and streamed to the UI.</p></div></div><div class="grid md:grid-cols-2 gap-5 items-start"><div><div class="text-sm font-mono text-violet-400/50 uppercase tracking-widest mb-3">Event Stream · SSE</div><p class="text-white/80 text-lg leading-relaxed mb-4">Every phase emits typed events over Server-Sent Events. The UI subscribes and renders agent activity in real time with no polling.</p><div class="space-y-1.5"><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/60">task-created</span><span class="text-white/30">new agent spawned</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/40">task-updated</span><span class="text-white/30">status or progress change</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/60">task-completed</span><span class="text-white/30">agent finished with artifacts</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/40">task-failed</span><span class="text-white/30">agent error</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/60">finding</span><span class="text-white/30">agent discovered something</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/60">terminal</span><span class="text-white/30">shell command + output</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/50">artifact</span><span class="text-white/30">file produced by an agent</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/60">collaboration</span><span class="text-white/30">inter-agent finding shared</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/60">synthesis</span><span class="text-white/30">root agent final summary</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/40">done</span><span class="text-white/30">run complete</span></div><div class="flex items-center gap-3 font-mono text-sm"><span class="w-32 shrink-0 text-white/40">error</span><span class="text-white/30">runtime error</span></div></div></div><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-panel)"><div class="px-4 py-2.5 border-b border-white/[0.06] text-sm font-mono text-white/35">lib/vrlm/types.ts</div><div class="p-4 font-mono text-sm leading-6 space-y-0.5 overflow-x-auto"><div><span class="text-violet-400">interface </span><span class="text-white">VrlmConfig <!-- -->{</span></div><div class="pl-4"><span class="text-white/50">maxWorkers: </span><span class="text-blue-400">number</span><span class="text-white/30">; // default 6</span></div><div class="pl-4"><span class="text-white/50">maxStepsPerAgent: </span><span class="text-blue-400">number</span><span class="text-white/30">; // default 20</span></div><div class="pl-4"><span class="text-white/50">plannerModel: </span><span class="text-blue-400">string</span><span class="text-white/30">; // orchestrator</span></div><div class="pl-4"><span class="text-white/50">workerModel: </span><span class="text-blue-400">string</span><span class="text-white/30">; // specialists</span></div><div class="pl-4"><span class="text-white/50">repoUrl: </span><span class="text-blue-400">string</span><span class="text-white/30">; // cloned per agent</span></div><div class="pl-4"><span class="text-white/50">sandboxProvider: </span><span class="text-emerald-400">'docker' | 'vercel' | 'e2b' | 'daytona' | 'local'</span><span class="text-white/30">;</span></div><div class="pl-4"><span class="text-white/50">googleApiKey?: </span><span class="text-blue-400">string</span><span class="text-white/30">; // UI override</span></div><div><span class="text-white">}</span></div></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05] fade-in-section"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Get Started</div><h2 class="text-4xl font-bold mb-4 text-white">Three ways to run</h2><p class="text-white/90 text-lg max-w-md mx-auto">From instant browser demo to full local execution with Docker sandboxes</p></div><div class="grid md:grid-cols-3 gap-5"><div class="rounded-2xl border border-white/10 p-6 card-hover" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-sm font-mono px-2 py-0.5 rounded-full border border-white/15 text-white/60">no setup</span></div><div class="text-xl font-semibold text-white mb-2">Simulation</div><p class="text-white/80 text-lg leading-relaxed mb-5">Watch the full agent lifecycle in your browser. No API key, no Docker, no install. Pre-scripted scenarios replay real event sequences.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-sm mb-5 overflow-x-auto" style="background:var(--bg-panel)"><span class="text-white/80">Open </span><span class="text-violet-400">/demo</span><span class="text-white/80"> → toggle </span><span class="text-emerald-400">Simulation</span><span class="text-white/80"> → watch</span></div><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg transition-all hover:opacity-90 w-full justify-center bg-white text-black" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div><div class="rounded-2xl border border-white/20 p-6 relative card-hover shimmer-border" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-sm font-mono px-2 py-0.5 rounded-full border border-white/20 text-white/70">recommended</span></div><div class="text-xl font-semibold text-white mb-2">Self-host · Local</div><p class="text-white/80 text-lg leading-relaxed mb-5">Clone the repo and run locally. Both simulation and real agent execution available. Configure your Google API key and target repo directly in the UI. No <code class="text-white/50 text-sm">.env</code> file needed.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-sm mb-5 space-y-1 overflow-x-auto" style="background:var(--bg-panel)"><div><span class="text-white/40">$ </span><span class="text-emerald-400">git clone</span><span class="text-white/80"> · </span><span class="text-emerald-400">npm install</span></div><div><span class="text-white/40">$ </span><span class="text-emerald-400">docker pull</span><span class="text-white/80"> node:20-alpine</span></div><div><span class="text-white/40">$ </span><span class="text-emerald-400">npm run dev</span><span class="text-white/80"> → open </span><span class="text-violet-400">/demo</span></div></div><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg border border-white/15 text-white/65 hover:border-white/30 hover:text-white transition-all w-full justify-center" href="/docs">Read the docs <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div><div class="rounded-2xl border border-white/10 p-6 card-hover" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-sm font-mono px-2 py-0.5 rounded-full border border-white/15 text-white/60">CLI</span></div><div class="text-xl font-semibold text-white mb-2">CLI · Any Repo</div><p class="text-white/80 text-lg leading-relaxed mb-5">Install the npm package globally and run against any local git repo. Requires Docker running locally and a Google API key.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-sm mb-5 space-y-1 overflow-x-auto" style="background:var(--bg-panel)"><div><span class="text-white/40">$ </span><span class="text-emerald-400">npm install</span><span class="text-white/80"> -g agentnetes</span></div><div><span class="text-white/40">$ </span><span class="text-emerald-400">export</span><span class="text-white/80"> GOOGLE_API_KEY=</span><span class="text-violet-400">...</span></div><div><span class="text-white/40">$ </span><span class="text-emerald-400">agentnetes</span><span class="text-white/80"> run </span><span class="text-violet-400">"your goal"</span></div></div><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg border border-white/10 text-white/55 hover:border-white/20 hover:text-white/75 transition-all w-full justify-center">npm package <svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05] dot-grid fade-in-section" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="grid lg:grid-cols-2 gap-12 items-center"><div><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-3">Models</div><h2 class="text-4xl font-bold mb-4 text-white">Any model. Same swarm.</h2><p class="text-white/85 text-lg leading-relaxed mb-6">Bring your own Google API key and swap models from the UI. No config file needed. Separate planner and worker models let you balance quality vs cost.</p><div class="space-y-3"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-white/60 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">Gemini 3.x, 2.5, 2.0 all supported</span></div><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-white/60 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">Separate planner and worker models</span></div><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-white/60 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">BYOK: paste API key directly in the UI</span></div><div class="flex items-center gap-2.5"><div class="w-3.5 h-3.5 rounded-full border border-white/20 shrink-0"></div><span class="text-base text-white/65">Claude / GPT-4o support</span><span class="text-sm font-mono text-white/50 border border-white/20 rounded px-1">soon</span></div></div></div><div class="space-y-3"><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-white/15 bg-white/[0.03]"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 3.1 Pro</div><div class="text-white/80 text-sm font-mono mt-0.5">Planner · latest</div></div><span class="text-sm font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">new</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-white/15 bg-white/[0.03]"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 2.5 Flash</div><div class="text-white/80 text-sm font-mono mt-0.5">Planner + Worker · default</div></div><span class="text-sm font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">recommended</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-white/10 bg-white/[0.02]"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 3.1 Flash-Lite</div><div class="text-white/80 text-sm font-mono mt-0.5">Worker · fastest</div></div><span class="text-sm font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">fast</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-white/10 bg-white/[0.02]"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 2.0 Flash</div><div class="text-white/80 text-sm font-mono mt-0.5">Worker · budget</div></div></div><div class="rounded-xl border border-white/10 px-4 py-3 font-mono text-sm overflow-x-auto" style="background:var(--bg-panel)"><span class="text-white/65">createGoogleGenerativeAI<!-- -->({</span><br/><span class="text-white/65"> <!-- -->apiKey: </span><span class="text-violet-400">process.env.GOOGLE_API_KEY</span><br/><span class="text-white/65">}<!-- -->);</span></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05] relative overflow-hidden ambient-orb orb-pink fade-in-section"><div class="max-w-2xl mx-auto relative z-10"><div class="rounded-2xl border border-white/10 p-12 text-center relative overflow-hidden noise-overlay" style="background:var(--bg-card)"><div class="flex justify-center mb-5 relative z-10"><img alt="Agentnetes" loading="lazy" width="48" height="48" decoding="async" data-nimg="1" class="rounded-xl" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=48&q=75 1x, /_next/image?url=%2Ffavicon.png&w=96&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=96&q=75"/></div><div class="text-sm font-mono text-white/80 uppercase tracking-widest mb-4 relative z-10">Try it now</div><h2 class="text-3xl font-bold mb-3 gradient-text relative z-10">See the swarm execute</h2><p class="text-white/90 text-base mb-8 max-w-sm mx-auto leading-relaxed relative z-10">Give it a goal. Watch specialist agents spawn, explore, implement, test, and deliver inside isolated sandboxes. Under 90 seconds.</p><div class="flex flex-col sm:flex-row items-center justify-center gap-3 relative z-10"><a class="flex items-center gap-2 font-semibold px-8 py-3 rounded-xl text-base transition-all hover:opacity-90 hover:scale-[1.02] bg-white text-black" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="flex items-center gap-2 border border-white/15 text-white/70 px-8 py-3 rounded-xl hover:border-white/30 hover:text-white transition-all text-base" href="/docs">Read the docs</a></div></div></div></section><footer class="border-t border-white/[0.05] py-10 px-6"><div class="max-w-6xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-6"><div class="flex items-center gap-2.5"><img alt="Agentnetes" width="30" height="30" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=64&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=64&q=75"/><div><div class="font-bold text-base text-white">Agentnetes</div><div class="text-white/80 text-sm font-mono">Zero to Agent London 2026</div></div></div><div class="text-white/80 text-sm font-mono text-center">Zero to Agent London · Google DeepMind x Vercel · 2026</div><div class="flex items-center gap-5"><a class="text-white/80 hover:text-white transition-colors text-sm" href="/demo">Simulation</a><a href="https://cerebralvalley.ai/e/zero-to-agent-london" target="_blank" rel="noreferrer" class="flex items-center gap-1 text-white/80 hover:text-white transition-colors text-sm">Hackathon <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/80 hover:text-white transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/16i90eio_ss7o.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[80492,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ThemeProvider\"]\n3:I[39756,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[47257,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ClientPageRoot\"]\n6:I[31713,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0z1bg424bhco1.js\",\"/_next/static/chunks/0jq5vvqp4k_30.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[97367,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\ne:I[97367,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n10:I[68027,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/02fb.n1lz42au.css\",\"style\"]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/02fb.n1lz42au.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13l7oudco0wo6.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"icon\",\"href\":\"/favicon.png\",\"type\":\"image/png\"}]}],[\"$\",\"body\",null,{\"className\":\"inter_b2991b2-module__9mH_6q__variable jetbrains_mono_d5591ac2-module__D88TVW__variable antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0z1bg424bhco1.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0jq5vvqp4k_30.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/02fb.n1lz42au.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"1jHD4Io184UO0XmrdHDL_\"}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"Agentnetes: Zero to a Self-Organizing AI Agency. On Demand.\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Self-organizing AI agent swarms on demand. Kubernetes-inspired orchestration for AI agents — spawn, isolate, execute, and collect specialist agents from a single goal.\"}]]\n"])</script></body></html>
|