diff --git a/apps/landing/src/pages/index.astro b/apps/landing/src/pages/index.astro index 2d09ad3e..65fd1b36 100644 --- a/apps/landing/src/pages/index.astro +++ b/apps/landing/src/pages/index.astro @@ -41,33 +41,38 @@ const exposureSurfaces = [ const heroCommands = [ { - label: "Install", + label: "Install Caplets", command: "npm install -g caplets", }, { - label: "Setup", + label: "Wire up your agent", command: "caplets setup", }, ]; +const quickstartCommand = heroCommands.map((item) => item.command).join("\n"); + const proofStats = [ { value: "10/10", - label: "tasks passed", + label: "passed", detail: "Caplets Code Mode and progressive modes matched direct MCP and Executor.sh on the pass-rate baseline.", }, { value: "236,803", - label: "avg total tokens", + label: "avg tokens", detail: "Average request + output token estimate across the live Pi eval runs.", }, { value: "72.0% fewer", - label: "vs vanilla MCP", + label: "vs vanilla", detail: "Request + output token reduction with the same pass rate.", }, ]; +const benchmarkProvenance = + "Run June 2026 with the real-world large MCP suite, openai-codex/gpt-5.5, 10 tasks, 2 runs per task, and a large no-fixture MCP stack."; + const benchmarkRows = [ { mode: "Caplets Code Mode", @@ -140,6 +145,22 @@ const lightThemeColor = "oklch(97% 0.012 85)"; const darkThemeColor = "oklch(18% 0.014 100)"; const exampleCaplets = [ + { + id: "osv", + name: "OSV", + summary: "A small explicit HTTP API for vulnerability lookups by package, purl, commit, or batch query.", + why: "Start here: OSV is public, no-auth, and shows the capability surface without OAuth friction.", + path: ["osv", "inspect", "search_tools", "get_tool", "call_tool"], + steps: [ + { command: "caplets setup", label: "Caplets setup command" }, + { + command: "caplets install spiritledsoftware/caplets osv", + label: "OSV caplet install command", + }, + { command: 'codex "try using the osv caplet"', label: "Codex trial command" }, + ], + help: ["OSV is public and does not need auth; check Node 24+ and ", "caplets setup", "."], + }, { id: "github", name: "GitHub", @@ -148,13 +169,14 @@ const exampleCaplets = [ path: ["github", "inspect", "search_tools", "get_tool", "call_tool"], steps: [ { command: "export GH_TOKEN=github_pat_...", label: "GitHub token export" }, + { command: "caplets setup", label: "Caplets setup command" }, { command: "caplets install spiritledsoftware/caplets github", label: "GitHub caplet install command", }, { command: 'codex "try using the github caplet"', label: "Codex trial command" }, ], - help: ["If setup fails, check Node 22+, ", "caplets setup", ", and ", "GH_TOKEN", "."], + help: ["If setup fails, check Node 24+, ", "caplets setup", ", and ", "GH_TOKEN", "."], }, { id: "sourcegraph", @@ -163,6 +185,7 @@ const exampleCaplets = [ why: "Use it when the agent should search code first, then inspect only the matching operations.", path: ["sourcegraph", "inspect", "search_tools", "get_tool", "call_tool"], steps: [ + { command: "caplets setup", label: "Caplets setup command" }, { command: "caplets install spiritledsoftware/caplets sourcegraph", label: "Sourcegraph caplet install command", @@ -170,22 +193,7 @@ const exampleCaplets = [ { command: "caplets auth login sourcegraph", label: "Sourcegraph auth command" }, { command: 'codex "try using the sourcegraph caplet"', label: "Codex trial command" }, ], - help: ["If setup fails, check Node 22+, ", "caplets setup", ", and Sourcegraph OAuth login."], - }, - { - id: "osv", - name: "OSV", - summary: "A small explicit HTTP API for vulnerability lookups by package, purl, commit, or batch query.", - why: "Use it when Caplets should bound a sharp task without exposing arbitrary HTTP calls.", - path: ["osv", "inspect", "search_tools", "get_tool", "call_tool"], - steps: [ - { - command: "caplets install spiritledsoftware/caplets osv", - label: "OSV caplet install command", - }, - { command: 'codex "try using the osv caplet"', label: "Codex trial command" }, - ], - help: ["OSV is public and does not need auth; check Node 22+ and ", "caplets setup", "."], + help: ["If setup fails, check Node 24+, ", "caplets setup", ", and Sourcegraph OAuth login."], }, ]; --- @@ -230,9 +238,9 @@ const exampleCaplets = [
- - - + + +
@@ -290,13 +298,13 @@ const exampleCaplets = [
- npm package GitHub repo + npm package
@@ -306,15 +314,39 @@ const exampleCaplets = [

Give your agent Capabilities, not a tool wall

- Caplets wraps MCP servers, APIs, and commands as focused capabilities. Choose direct tools, progressive discovery, Code Mode, or mixed exposure so each agent sees the smallest useful surface for the job. + Turn sprawling MCP servers into focused capability cards. Your agent can start with one typed route, zoom into tools only when needed, and keep huge schemas out of the prompt until they matter.

+
+
+
Tool wall
+
215 tools
+
+
+
Caplets
+
7 cards
+
+
+
Code Mode
+
72% fewer tokens
+
+
- Add Caplets to your agent - See the benchmark + Install & run setup + GitHub repo + npm package
-
+
Quick start + More setup options
    @@ -354,14 +386,14 @@ const exampleCaplets = [
-
+
{mapModes.map((mode) => ( + ))} +
+ + Explore more Caplets + +
+ +
+ {exampleCaplets.map((example) => ( +
+
+

Add {example.name}

+

{example.summary}

+

{example.why}

+
+ {example.path.map((step, index) => index === 0 ? {step} : {step})} +
+

+ {example.help.map((part) => part === "GH_TOKEN" || part === "caplets setup" ? {part} : part)} +

+
+
+ +
    + {example.steps.map((step, index) => ( +
  1. + {step.command} + +
  2. + ))} +
+
+
+ ))} +
+
+ +
- Live Pi eval + Benchmark proof

Real-world large MCP stack: GitHub, Context7, DeepWiki, Git, filesystem, Playwright, ast-grep, language-server, and web-search MCP servers.

+ {benchmarkProvenance}
{proofStats.map((stat) => ( @@ -425,9 +526,9 @@ const exampleCaplets = [ {benchmarkRows.map((row) => ( {row.mode} - {row.passed} - {row.tokens} - {row.surfaceTokens} + {row.passed} + {row.tokens} + {row.surfaceTokens} ))} @@ -534,80 +635,13 @@ const exampleCaplets = [
-
-
-

Setup

-

Run setup, then add a Caplet.

-

- caplets setup lets you choose which agent integrations to wire up. After that, - add one premade Caplet and your agent sees one focused capability before it can search or - call downstream tools. -

-
- -
-
-
- {exampleCaplets.map((example) => ( - - ))} -
- - Explore more Caplets - -
- -
- {exampleCaplets.map((example) => ( -
-
-

Add {example.name}

-

{example.summary}

-

{example.why}

-
- {example.path.map((step, index) => index === 0 ? {step} : {step})} -
-

- {example.help.map((part) => part === "GH_TOKEN" || part === "caplets setup" ? {part} : part)} -

-
-
- -
    - {example.steps.map((step, index) => ( -
  1. - {step.command} - -
  2. - ))} -
-
-
- ))} -
-
-