agentspeed.

biomejs.dev

scanned 7/26/2026, 1:40:27 AM · cached · refresh in 22h · rubric 2026.07.4
robots.txt present: passrobots.txt allows AI agents: passContent-Signal directives: failllms.txt present: warnSitemap present: failLink response headers: failCanonical URL: passMCP server card: failOAuth authorization metadata: failOAuth resource metadata: failAPI catalog / OpenAPI: failWeb Bot Auth: failMarkdown negotiation: failText-to-markup ratio: failContent without JavaScript: skipHeading hierarchy: passCookie wall blocks content: passPage title: passMeta description: warnJSON-LD present: failStructured data validates: skipSchema type coverage: failPaywall / login wall: passAgent Skills manifest: failWebMCP actions: failPrimary action reachable: passReachability: passTime to first byte: passFull render time: skipPage weight: pass61/ 100 · D
Needs work

This is how AI agents (not browsers) experience biomejs.dev. The score weights five categories of machine-readability; the ticks on the arc are the 30 individual checks behind it.

✉ Email me this report + alert me when it changes ↓

Top fixes

failSitemap presentDiscoverability

No reachable sitemap.xml. Publish one and reference it in robots.txt.

Fix: Publish /sitemap.xml and reference it from robots.txt with a Sitemap: line.

failJSON-LD presentStructured data

No JSON-LD blocks found. Add a <script type="application/ld+json"> with a schema.org type for this page.

Fix: Add a <script type="application/ld+json"> describing the page (Organization, Article, Product, FAQPage).

warnllms.txt presentDiscoverability

Found /llms.txt but missing H1 header and markdown links.

Fix: Publish /llms.txt at your domain root. Build a spec-compliant one at /tools/llms-txt-generator.

failLink response headersDiscoverability

No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.

Fix: Emit `Link:` headers for canonical, alternate-language, and describedby relations. Agents that fetch HEAD-only or stream-render rely on these.

failText-to-markup ratioReadability

Visible text is 5.7% of HTML weight (6027/106200 bytes). Low. Markup may be crowding out agent-usable text.

Fix: Heavy ad or navigation markup crowds out agent-usable text. Aim for a text-to-DOM ratio above 15%.

warnMeta descriptionReadability

Meta description is 49 characters; aim for 50–200 so it's neither thin nor truncated.

Fix: Add `<meta name="description" content="...">` to your primary pages. Agents frequently use it as a summary.

Don’t lose this report

Get it in your inbox now — and a heads-up whenever biomejs.dev’s agent-readiness score changes. Free, unsubscribe anytime.

Fix it

Generated, ready-to-ship files for the gaps above — copy them or download and drop them into your repo.

Add an llms.txt
Publish this at https://biomejs.dev/llms.txt
# Biome, toolchain of the web

> Format, lint, and more in a fraction of a second.

## Key pages
- [Home](https://biomejs.dev/)
- [One toolchain for your web project](https://biomejs.dev/)
- [Format code like Prettier, save time](https://biomejs.dev/)
- [Fix problems, learn best practice](https://biomejs.dev/)
- [Everything all at once](https://biomejs.dev/)
- [Try Biome](https://biomejs.dev/)
- [Trusted by leading organizations](https://biomejs.dev/)

## About
Describe what biomejs.dev does, who it's for, and the primary action you want an
agent to be able to complete. Keep it factual and current.

What the agent receives

The agent’s-eye view
Biome, toolchain of the web Skip to content Biome Docs Enterprise Playground Search Ctrl K Cancel Discord GitHub Mastodon Open Collective YouTube BlueSky RSS Blog Select theme Dark Light Auto Select language English Español Français 日本語 简体中文 Polski Português Українська Русский Version v1.x v2.x next More than 500 lint rules with Biome v2.5! One toolchain for your web project Format, lint, and more in a fraction of a second. Get started View on GitHub Format code like Prettier, save time Biome is a fast formatter for JavaScript , TypeScript , JSX , TSX , JSON , HTML , CSS and GraphQL that scores 97% compatibility with Prettier (see known limitations ), saving CI and developer time . Biome can even format malformed code as you write it in your favorite editor . CODE 1 function HelloWorld ( { greeting = " hello " , greeted = ' "World" ' , silent = false , onMouseOver , } ) { 2 3 if ( ! greeting ){ return null }; 4 5 // TODO: Don't use random in render 6 let num = Math . floor ( Math . random () * 1E+7 ) . toString () . replace ( / . d + / ig , "" ) 7 8 return &#x3C; div className = ' HelloWorld ' title = { ` You are visitor number ${ num } ` } onMouseOver = { onMouseOver } > 9 10 &#x3C; strong > { greeting . slice ( 0 , 1 ) . toUpperCase () + greeting . slice ( 1 ) . toLowerCase () } &#x3C;/ strong > 11 { greeting . endsWith ( " , " ) ? " " : &#x3C; span style = { {color: ' grey ' } } > ", " &#x3C;/ span > } 12 &#x3C; em > 13 { greeted } 14 &#x3C;/ em > 15 { ( silent ) 16 ? " . " 17 : " ! " } 18 19 &#x3C;/ div > ; 20 }  { greeting.slice( 0, 1 ).toUpperCase() + greeting.slice(1).toLowerCase() }  {greeting.endsWith(&#x22;,&#x22;) ? &#x22; &#x22; : &#x22;, &#x22; }  { greeted }  { (silent) ? &#x22;.&#x22; : &#x22;!&#x22;} ;}"> OUTPUT 1 function HelloWorld ( { 2 greeting = " hello " , 3 greeted = ' "World" ' , 4 silent = false , 5 onMouseOver , 6 } ) { 7 if ( ! greeting ) { 8 return null ; 9 } 10 11 // TODO: Don't use random in render 12 let num = Math . floor ( Math . random () * 1E+7 ) 13 . toString () 14 . replace ( / . d + / gi , "" ); 15 16 return ( 17 &#x3C; div 18 className = " HelloWorld " 19 title = { ` You are visitor number ${ num } ` } 20 onMouseOver = { onMouseOver } 21 > 22 &#x3C; strong > 23 { greeting . slice ( 0 , 1 ) . toUpperCase () + greeting . slice ( 1 ) . toLowerCase () } 24 &#x3C;/ strong > 25 { greeting . endsWith ( " , " ) ? ( 26 " " 27 ) : ( 28 &#x3C; span style = { { color: " grey " } } > ", " &#x3C;/ span > 29 ) } 30 &#x3C; em > { greeted } &#x3C;/ em > 31 { silent ? " . " : " ! " } 32 &#x3C;/ div > 33 ); 34 }   {greeting.slice(0, 1).toUpperCase() + greeting.slice(1).toLowerCase()}  {greeting.endsWith(&#x22;,&#x22;) ? ( &#x22; &#x22; ) : ( &#x22;, &#x22;  )} {greeted}  {silent ? &#x22;.&#x22; : &#x22;!&#x22;}  );}"> PERFORMANCE Biome 0.00 s Prettier 0.00 s ~35x Faster than Prettier when formatting 171,127 lines of code in 2,104 files with an Intel Core i7 1270P. Try the Biome formatter on the playground or directly on your project: Terminal window 1 npm i -D --save-exact @biomejs/biome 2 npx @biomejs/biome format --write ./src Fix problems, learn best practice Biome is a performant linter for JavaScript , TypeScript , JSX , CSS and GraphQL that features 511 rules from ESLint, TypeScript ESLint, and other sources . Biome outputs detailed and contextualized diagnostics that help you to improve your code and become a better programmer! complexity/useFlatMap.js:2:1 lint/complexity/useFlatMap FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✖ The call chain .map().flat() can be replaced with a single .flatMap() call. 1 │ const array = ["split", "the text", "into words"]; > 2 │ array.map(sentence => sentence.split(' ')).flat(); │ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 3 │ ℹ Safe fix : Replace the chain with .flatMap() . 1 1 │ const array = ["split", "the text", "into words"]; 2 │ - a r r a y . m a p ( s e n t e n c e · = > · s e n t e n c e . s p l i t ( ' · ' ) ) . f l a t ( ) ; 2 │ + a r r a y . f l a t M a p ( s e n t e n c e · = > · s e n t e n c e . s p l i t ( ' · ' ) ) ; 3 3 │ Try the Biome linter on the playground or directly on your project: Terminal window 1 npm i -D --save-exact @biomejs/biome 2 npx @biomejs/biome lint --write ./src Everything all at once Not only can you format and lint your code separately, you can do it all at once with a single command ! Every tool integrates seamlessly with others to create a cohesive toolchain for web projects. Run all tools with the check command: Terminal window 1 npm i -D --save-exact @biomejs/biome 2 npx @biomejs/biome check --write ./src Fast Built with Rust and an innovative architecture inspired by rust-analyzer. Simple Zero configuration needed to get started. Extensive options available for when you need them. Scalable Designed to handle codebases of any size. Focus on growing product instead of your tools. Actionable & Informative Avoid obscure error messages, when we tell you something is wrong, we tell you exactly where the problem is and how to fix it. Batteries Included Out of the box support for all the language features you use today. First class support for TypeScript and JSX. Enterprise Support We offer commercial support to organizations that need it through our community of contributors. Try Biome Install Biome using your preferred package manager AND integrate it in your editor. Install with package manager Integrate Biome in your editor Trusted by leading organizations Join thousands of developers and companies using Biome in production Astro AWS Canonical Cloudflare Coinbase Comcast Discord Google Microsoft n8n Node.js Slack Socket Uniswap Vercel View all users Community Powered by our open-source contributors Discord GitHub BlueSky Mastodon Sponsors Sponsored by Copyright (c) 2023-present Biome Developers and Contributors.

Show your score

Embed this badge on your site. It links back to this live scan and updates on every rescan.

AgentSpeed score for biomejs.dev
<a href="https://agentspeed.com/scan/biomejs.dev"><img src="https://agentspeed.com/badge/biomejs.dev" alt="AgentSpeed agent-readiness score" height="56"></a>

Track this score

Get this report by email, then a heads-up when biomejs.dev’s agent-readiness actually changes — a check regressing, or the composite dropping.

Two things never trigger an email: a score change caused by us publishing a new rubric, because that is a different instrument rather than a change to your site, and movement explained only by timing-derived checks, which shift run to run on a site nobody touched.

Want it on your own schedule, with Slack or a webhook instead of email? Score-drift monitoring is on every paid plan.

This score says whether an AI agent could read biomejs.dev. AI traffic analytics says whether one actually came — and which pages turned it away.

Full breakdown

11 pass2 warn14 fail3 skip
Discoverability
pass
robots.txt present
A robots.txt is reachable at the site root.
100/100
pass
robots.txt allows AI agents
All 8 answer-time access agents allowed.
100/100
fail
Content-Signal directivesemerging
No Content-Signal directives. Add e.g. `Content-Signal: ai-train=no, ai-summarize=yes` to declare granular AI usage policy beyond binary allow/disallow.
0/100
warn
llms.txt present
Found /llms.txt but missing H1 header and markdown links.
60/100
fail
Sitemap present
No reachable sitemap.xml. Publish one and reference it in robots.txt.
0/100
fail
Link response headers
No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.
0/100
pass
Canonical URL
Canonical points to self: https://biomejs.dev/.
100/100
fail
MCP server cardemerging
No valid MCP Server Card at /.well-known/mcp/server-card.json. Publish one so agents can discover your tools without HTML scraping.
0/100
fail
OAuth authorization metadataemerging
No RFC 8414 metadata at /.well-known/oauth-authorization-server. Agents that act on behalf of users need this to discover your authorization endpoints.
0/100
fail
OAuth resource metadataemerging
No RFC 9728 metadata at /.well-known/oauth-protected-resource. Publish it so agents can discover required scopes without hand-coded credentials.
0/100
fail
API catalog / OpenAPIemerging
No /.well-known/api-catalog (RFC 9727) and no /openapi.json|yaml. Publish one so agents that integrate with APIs can discover your endpoints.
0/100
fail
Web Bot Authemerging
No Web Bot Auth JWKS at /.well-known/http-message-signatures-directory.json. Publish one to allow trusted agents while keeping a default-deny posture for the rest.
0/100
Readability
fail
Markdown negotiationemerging
Accept: text/markdown returns HTML, not markdown. Serve a markdown variant of primary content when requested; agents summarize and cite it more reliably.
0/100
fail
Text-to-markup ratio
Visible text is 5.7% of HTML weight (6027/106200 bytes). Low. Markup may be crowding out agent-usable text.
43/100
skip
Content without JavaScript
Browser pass unavailable; cannot measure JS dependency.
pass
Heading hierarchy
Hierarchy is well-formed (1 H1, no skipped levels, 8 headings total).
100/100
pass
Cookie wall blocks content
No common consent-modal markers detected.
100/100
pass
Page title
A concise <title> is present (27 chars).
100/100
warn
Meta description
Meta description is 49 characters; aim for 50–200 so it's neither thin nor truncated.
60/100
Structured data
fail
JSON-LD present
No JSON-LD blocks found. Add a <script type="application/ld+json"> with a schema.org type for this page.
0/100
skip
Structured data validates
No JSON-LD blocks present; nothing to validate (covered by structured_data.jsonld_present).
fail
Schema type coverage
Page looks like Article|BlogPosting|NewsArticle; missing JSON-LD type(s): Article|BlogPosting|NewsArticle.
0/100
Actionability
pass
Paywall / login wall
No paywall or login-wall detected on the landing URL.
100/100
fail
Agent Skills manifestemerging
No Agent Skills manifest at /.well-known/agent-skills.json. Enumerate the tasks agents can perform (search, add-to-cart, contact-support) so they pick the right one without scraping.
0/100
fail
WebMCP actionsemerging
No WebMCP detected. On pages with first-class actions (cart, support, account), embed a WebMCP server so on-page agents invoke tools directly.
0/100
pass
Primary action reachable
Primary offering identified ("web toolchain for formatting, linting, and code analysis") with price/CTA ("Get started").
100/100
pass
Reachability
HTTP 200.
100/100
Performance
pass
Time to first byte
TTFB 128ms. Healthy.
100/100
skip
Full render time
Full-render time unavailable (browser pass skipped or failed).
pass
Page weight
Initial document is a lean 104 KB.
100/100
Beyond the scan

Running AI agents of your own? AgentSpeed also monitors them in production — every run, its latency, cost, and failures, with alerts when something breaks. Free for 10,000 events a month, no credit card.

Start watching free →See plans