scanned Jul 4, 2026

Kumo

kumo-ui.com

developer-toolsVisit site →

Kumo is a user interface component library for building applications.

53/100

Tier 3 · Agent-Accessible

Content answers58/100
Protocol plumbing40/1006 of 15 checks pass

Scored by asking 15 questions a buyer of a developer-tools product asks, then grading this site’s own pages: answered, hedged (partial or vague), or silent (no page answers it). How scoring works

This report is public. Own kumo-ui.com? Claiming is free: crawl every page, re-audit as you fix, and track your score over time.

Sign in to claim

The fix queue

47 points sit between kumo-ui.com and 100: 12 open questions and 9 missing protocol checks, ordered by estimated payoff.

Point estimates are per fix under scoring v2. They are not additive to a promised total.

01setup · importance highGoes silent+7 content pts est.

What's the minimum Node.js version required to run the Kumo CLI without hitting compatibility errors?

What the pages say

No page on the site addresses this.

The fix

Add a Prerequisites or Requirements section to the CLI documentation (e.g., cli.md or the CLI page) that explicitly states the minimum Node.js version required to run the CLI.

confidence high · grounding world-knowledge · weight 0.00 · Absent

02components · importance mediumGoes silent+7 content pts est.

Does the autocomplete component debounce network requests internally, and what's the default delay in milliseconds?

What the pages say

The retrieved chunks do not mention whether the Autocomplete component debounces network requests or specify a default delay.

The fix

Document whether the Autocomplete component internally debounces network requests when used with server-side data, and specify the default delay and any related props (e.g., `debounceMs`).

Where we looked: /components/autocomplete, /components/autocomplete.md, /components/autocomplete, /components/autocomplete.md, /components/autocomplete.md, /components/autocomplete, /components/autocomplete.md

confidence high · grounding synthesized · weight 0.00 · Absent

03registry · importance mediumGoes silent+7 content pts est.

When self-hosting a private registry, what are the required fields in the registry's index.json for the Kumo CLI to recognize and install custom components?

What the pages say

No page on the site addresses this.

The fix

Add documentation for self-hosting private registries, including the required index.json schema and fields the Kumo CLI expects when resolving custom components.

Where we looked: /cli, /cli.md, /registry, /registry.md

confidence high · grounding world-knowledge · weight 0.00 · Absent

Hedged · 9 of 15 questions

A buyer gets something, then has to guess the rest. Expand any row for the evidence and the fix.

04Which Kumo components access browser-only APIs like window or document and therefore require Next.js dynamic imports with SSR disabled?integrationHedges+4 pts est.

Which Kumo components access browser-only APIs like window or document and therefore require Next.js dynamic imports with SSR disabled?

What the pages say

The site notes that CodeHighlighted provides server utilities for SSR frameworks such as Next.js RSC, Astro, and Remix so highlighting can happen at build time (https://kumo-ui.com/components/code-highlighted). The changelog also mentions that missing “use client” directives in a past build broke components in Next.js App Router (https://kumo-ui.com/changelog.md). However, no specific Kumo components are identified as accessing browser-only APIs like window or document, and the site does not mention using Next.js dynamic imports with SSR disabled.

The fix

Create a dedicated Next.js / SSR integration guide that explicitly lists which components access browser-only APIs (e.g., window, document) and provides copy-paste dynamic import examples with SSR disabled.

Where we looked: /components/code-highlighted, /changelog.md

confidence medium · grounding world-knowledge · weight 0.40 · Vague

05When I import only the badge and button components, does my bundler automatically tree-shake the rest of the Kumo registry, or do I need to configure sideEffects in my package.json?operationsHedges+2 pts est.

When I import only the badge and button components, does my bundler automatically tree-shake the rest of the Kumo registry, or do I need to configure sideEffects in my package.json?

What the pages say

Kumo describes its components as "tree-shakeable" and recommends granular imports (e.g., `import { Button } from "@cloudflare/kumo/components/button"`) for better tree-shaking and smaller bundle sizes. However, the site does not explicitly state whether importing only a few components from the main `@cloudflare/kumo` barrel automatically tree-shakes the rest of the registry, nor does it mention whether you need to configure `sideEffects` in your own `package.json`.

The fix

Add explicit guidance to the Installation docs on whether consumers need to configure `sideEffects` in their `package.json` to enable tree-shaking, and clarify if barrel imports from `@cloudflare/kumo` are automatically tree-shaken or if granular imports are required to avoid unused code.

Where we looked: /installation.md, /components-vs-blocks.md, /installation.md, /installation.md

confidence medium · grounding synthesized · weight 0.65 · Vague

06Does the streaming documentation cover Suspense boundaries for individual components, or only full-page streaming patterns?integrationThin on specifics+2 pts est.

Does the streaming documentation cover Suspense boundaries for individual components, or only full-page streaming patterns?

What the pages say

The streaming documentation focuses on LLM token streaming and progressive rendering of flat UI trees. It does not mention React Suspense boundaries, individual component streaming, or full-page streaming patterns.

The fix

Consider adding a section to the streaming documentation that clarifies whether Kumo UI supports React Suspense boundaries for individual components, or if streaming is limited to full-page LLM response patterns.

Where we looked: /streaming.md, /streaming.md, /streaming.md

confidence high · grounding synthesized · weight 0.70 · Absent

07What's the maximum nesting depth for sub-commands in the command palette, or is it strictly a flat list?componentsHedges+2 pts est.

What's the maximum nesting depth for sub-commands in the command palette, or is it strictly a flat list?

What the pages say

The CommandPalette supports a flat array of items as well as single-level grouped items, but the documentation does not specify a maximum nesting depth for sub-commands or describe support for hierarchical nesting beyond groups.

The fix

Document whether the CommandPalette supports nested sub-commands or hierarchical drill-down, and clarify the maximum nesting depth if applicable.

Where we looked: /components/command-palette, /components/command-palette, /components/command-palette.md

confidence medium · grounding synthesized · weight 0.65 · Vague

08Does the date picker support non-Gregorian calendars like Jalali or Hijri out of the box, or is it strictly ISO/Gregorian?componentsHedges+2 pts est.

Does the date picker support non-Gregorian calendars like Jalali or Hijri out of the box, or is it strictly ISO/Gregorian?

What the pages say

The documentation does not explicitly state whether non-Gregorian calendars like Jalali or Hijri are supported out of the box. It notes that the DatePicker is built on react-day-picker v9, supports localization via date-fns locales, and forwards all react-day-picker props, but every example shows standard Gregorian dates (e.g., July 2026) and no non-Gregorian calendar modes are mentioned.

The fix

Add an explicit statement or FAQ on the DatePicker page clarifying which calendar systems are supported out of the box (e.g., Gregorian/ISO only) and whether non-Gregorian calendars can be configured via react-day-picker props.

Where we looked: /changelog.md, /components/date-picker, /components/date-picker, /components/date-picker.md

confidence medium · grounding synthesized · weight 0.65 · Vague

09If I render the dialog inside a React portal, does the focus trap stay scoped to the portal DOM node, or can tabbing leak back to the main document?componentsHedges+2 pts est.

If I render the dialog inside a React portal, does the focus trap stay scoped to the portal DOM node, or can tabbing leak back to the main document?

What the pages say

Kumo's Dialog supports rendering inside a portal, Shadow DOM, or custom container via the `container` prop and `KumoPortalProvider`, and the dialog renders the content underneath inert. However, the site does not explicitly state whether the focus trap stays scoped to the portal DOM node or if tabbing can leak back to the main document.

The fix

Add explicit documentation on focus trap behavior when Dialog is rendered inside a portal or Shadow DOM, clarifying whether tabbing is scoped to the portal container or can leak to the main document.

Where we looked: /components/dialog.md, /components/dialog.md, /changelog.md

confidence medium · grounding synthesized · weight 0.65 · Vague

10Does the Kumo CLI auto-detect my package manager, or do I have to pass a flag like --pnpm every time I add a component?setupHedges+2 pts est.

Does the Kumo CLI auto-detect my package manager, or do I have to pass a flag like --pnpm every time I add a component?

What the pages say

The site documents that you install blocks via `npx @cloudflare/kumo add <block-name>`, but it does not mention whether the CLI auto-detects your package manager or if you must pass a flag like `--pnpm`.

The fix

Add CLI documentation explaining whether `kumo add` auto-detects the project's package manager or if users must pass a flag (e.g., `--pnpm`, `--npm`, `--yarn`).

Where we looked: /installation.md, /cli.md

confidence high · grounding synthesized · weight 0.70 · Vague

11Does the grid component use CSS subgrid under the hood, and what's the fallback behavior on browsers that don't support it?componentsHedges+2 pts est.

Does the grid component use CSS subgrid under the hood, and what's the fallback behavior on browsers that don't support it?

What the pages say

The Kumo UI Grid component documentation describes its responsive layout variants (e.g., 2up, 3up, 4up), gap sizes, and props, but it does not mention whether the component uses CSS subgrid under the hood or specify any fallback behavior for browsers that do not support subgrid.

The fix

Add an implementation details or browser support section to the Grid documentation that explicitly states whether CSS subgrid is used and describes the fallback strategy for unsupported browsers.

Where we looked: /components/grid, /components/grid, /components/grid.md, /components/grid

confidence high · grounding synthesized · weight 0.70 · Vague

12Are the Figma community files version-locked to specific Kumo releases, or do they typically lag behind the React components?integrationHedges+2 pts est.

Are the Figma community files version-locked to specific Kumo releases, or do they typically lag behind the React components?

What the pages say

The Kumo site describes a Figma plugin that generates components directly from `component-registry.json` — the same source of truth used by React components — and states that regenerating everything fresh on each run ensures the Figma file always matches the current state of the codebase. However, the chunks do not mention Figma community files, version-locking to specific Kumo releases, or whether published files typically lag behind React components.

The fix

Add explicit guidance on whether published Figma community files (if offered) are tied to specific releases and how users should expect them to stay in sync with React components.

Where we looked: /figma, /figma, /figma.md

confidence medium · grounding synthesized · weight 0.65 · Vague

What the pages already answer cleanly

3 of 15. Answered with enough specificity for a buyer to act on. This is the bar the queue above is chasing.

integrationAnswered

Do Kumo components ship with the 'use client' directive by default, or are they fully compatible with React Server Components?

What the pages say

Kumo components ship with the "use client" directive by default. The build configuration injects the directive into all output chunks via `output.banner` to ensure components work in Next.js App Router. However, specific server entry points such as `@cloudflare/kumo/code/server` have the directive explicitly removed so those utilities can be used in React Server Component (RSC) and SSR contexts.

Source: /changelog.md, /changelog.md

confidence high · grounding synthesized · weight 0.95 · Answered

setupAnswered

What's the exact CLI command to add the command-palette component to an existing project after initial setup?

What the pages say

No CLI command is documented for adding CommandPalette. The CommandPalette installation page only shows npm package imports (`import { CommandPalette } from "@cloudflare/kumo";` or `import { CommandPalette } from "@cloudflare/kumo/components/command-palette";`). The CLI command `npx @cloudflare/kumo add <name>` is documented exclusively for blocks (e.g., PageHeader, DeleteResource), and CommandPalette is presented in the Component Registry as a regular package component rather than a block.

Source: /components/command-palette, /components/command-palette.md, /cli, /blocks/delete-resource.md

confidence high · grounding synthesized · weight 0.95 · Answered

configAnswered

Can I override the default color tokens globally without ejecting individual components, and if so, what config file does Kumo expect me to edit?

What the pages say

Yes. You can override default color tokens globally without ejecting individual components by adding theme overrides in the theme generator config file at `packages/kumo/scripts/theme-generator/config.ts`. Only override tokens that need to change — all other tokens inherit from the base kumo theme — then run `pnpm codegen:themes` to generate the CSS.

Source: /colors.md, /colors.md

confidence high · grounding stated · weight 1.00 · Answered

Protocol plumbing · 40/1006 of 15 checks pass · each fix +7 protocol pts est.

The other half of the score: 15 checks for the files and headers agents look for. The 9 below are installs, not judgment calls, and most are an afternoon. Expand any for the snippet and the standard it follows. They sit after the queue because none of them changes what your pages say.

sitemap.xmlDiscoverability+7 pts est.

Standardsitemaps.orgIndustry standard

AI crawler accessAccess+7 pts est.
Install snippet
User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: Googlebot-Extended
Allow: /

StandardRFC 9309IETF RFC

Markdown negotiationRendering+7 pts est.

StandardRFC 9110 + 7763IETF RFC

MCP cardInteraction+7 pts est.

Sitedex generates this file from your crawl. Grab it in Files from this audit below.

StandardModel Context ProtocolCommunity spec

OpenAPI specInteraction+7 pts est.

StandardOpenAPI SpecIndustry standard

WebMCP widgetInteraction+7 pts est.

Sitedex generates this file from your crawl. Grab it in Files from this audit below.

StandardW3C WebMCP draftW3C / WHATWG

Canonical URLsHygiene+7 pts est.
Install snippet
<link rel="canonical" href="https://kumo-ui.com/" />

StandardRFC 6596IETF RFC

Meta descriptionsHygiene+7 pts est.
Install snippet
<meta name="description" content="kumo-ui.com: [outcome you deliver] for [who you help]. One sentence, 50-160 characters." />

StandardHTML Living StandardW3C / WHATWG

Organization schemaIdentity+7 pts est.

Sitedex generates this file from your crawl. Grab it in Files from this audit below.

StandardSchema.org + JSON-LDIndustry standard

Already passing 6 of 15: robots.txt, llms.txt, Content signal, Clean crawl, Server-rendered content, HTML lang attribute.

Ask this site’s index

Sitedex already serves kumo-ui.com as an MCP endpoint. Ask kumo-ui.com anything an AI agent might ask, and see what its index returns. (To score your own site, use the form below.)

Snippets & configs

For developers and the engineer-on-call: copy these into your tools or your site.

Files from this audit

Built from this crawl. Download or copy each, then install it at the path noted.

llms.txt

Built from this crawl. Install at /llms.txt so agents start here.

organization.json

Organization JSON-LD, pre-filled from this crawl. Wrap in a ld+json script.

server-card.json

MCP server card built from this crawl. Host at /.well-known/mcp/server-card.json.

webmcp.json

WebMCP discovery manifest built from this crawl. Host at /.well-known/webmcp.json.

MCP endpoint

https://mcp.sitedex.dev/s/kumo-ui-com/mcp

The URL anyone's agent points at. Read-only; safe to share.

Claude Code

claude mcp add kumo-ui --transport http https://mcp.sitedex.dev/s/kumo-ui-com/mcp

One command, then the agent has it.

Cursor / Continue

{
  "mcpServers": {
    "kumo-ui": {
      "url": "https://mcp.sitedex.dev/s/kumo-ui-com/mcp"
    }
  }
}

Drop into mcp.json.

WebMCP: two parts

WebMCP-capable browsers run the widget at runtime. Crawlers without JS rendering need the discovery manifest to find your tool surface. Install both.

1 · Widget script

<script async src="https://sitedex.dev/widget.js"></script>

Drop in <head>. WebMCP-capable browsers (Chrome 146+ Origin Trial) call navigator.modelContext.provideContext() via this script.

2 · Discovery manifest

{
  "$schema": "https://wellknownmcp.org/schemas/webmcp.json",
  "name": "kumo-ui.com",
  "tools": [
    { "name": "search", "description": "Search kumo-ui.com's indexed content." },
    { "name": "get_page", "description": "Fetch a page from kumo-ui.com as markdown." }
  ]
}

Host alongside the script at /.well-known/webmcp.json. Crawlers that don't render JS rely on this.

Your turn

See which of these questions your site goes silent on.

Free, about 5 minutes. We crawl your site, test it against the buyer questions your category asks, and name what’s vague, contradictory, or missing, plus the files AI agents look for.

ComingEmbeddable grade badgeScore history and deltasOpt-in public board