Skip to content

How Bun (package manager)’s scores are calculated

The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.

verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10

PA Score29/100

Agent-ready 58.0 × 0.30 = 17.40

API quality 8.0 × 0.20 = 1.60

Openness 0.0 × 0.20 = 0.00

Built-in AI n/a — excluded, its ×0.15 weight renormalized away

Automation 36.0 × 0.15 = 5.40

(17.40 + 1.60 + 0.00 + 5.40) ÷ (0.30 + 0.20 + 0.20 + 0.15) = 24.40 ÷ 0.85 = 28.7 — weights renormalized over the scored components

Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.

Agent-ready58.0/100×0.30 of the PA blend

Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.

Point an agent at llms.txt or agent-oriented docsweight 2

2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [probe] https://bun.com/llms.txtPROBE llms.txt: HTTP 200 at https://bun.com/llms.txt # Bun ## Docs - [Welcome to Bun](https://bun.com/docs/index.md): Bun is an all-in-one toolkit for developing modern Ja
  • [probe] https://bun.com/docs.mdPROBE docs-md: HTTP 200 at https://bun.com/docs.md # Welcome to Bun > Bun is an all-in-one toolkit for developing modern JavaScript/TypeScript applications. <CardGroup>

Run the product headlessly / in CI for automationweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://bun.com/docs/cli/installFor reproducible installs, use `--frozen-lockfile`. Bun installs the exact versions specified in the lockfile and does not update it.
  • [claimed-docs] https://bun.com/docs/cli/installTo install in production mode (without `devDependencies`):
  • [claimed-docs] https://bun.com/docs/install/cacheBun stores every package downloaded from the registry in a global cache at `~/.bun/install/cache`
  • [community] https://hn.algolia.com/api/v1/items/44611467FYI, there seems to be some bugs with installs yet that cause bun to crash. Might be related to having an old package-lock or old node_modules or switching back and forth between WSL and Windows proper. Deleting all lock files and node modules usually fixes it.
  • [community] https://hn.algolia.com/api/v1/items/44611467Isolated installs are a significant performance improvement on Windows (10x, sometimes 20x faster installs) and a minor positive or neutral performance impact on macOS and Linux. More importantly, they make using bun install in monorepos a lot more reliable.

Plug MCP servers into this product so it can use their toolsweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Connect an agent via an official MCP serverweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Use an official CLIweight 2

2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [claimed-docs] https://bun.com/docs/cli/installThe `bun` CLI contains a Node.js-compatible package manager designed to be a dramatically faster replacement for `npm`, `yarn`, and `pnpm`.
  • [claimed-docs] https://bun.combunx cowsay 'Hello, world!' # execute a package
  • [probe] https://bun.com/llms.txtPROBE llms.txt: HTTP 200 at https://bun.com/llms.txt # Bun ## Docs - [Welcome to Bun](https://bun.com/docs/index.md): Bun is an all-in-one toolkit for developing modern Ja
  • [probe] https://bun.com/docs.mdPROBE docs-md: HTTP 200 at https://bun.com/docs.md # Welcome to Bun > Bun is an all-in-one toolkit for developing modern JavaScript/TypeScript applications. <CardGroup>
  • [probe] https://bun.com/docs/cli/installofficial CLI documented at https://bun.com/docs/cli/install
  • [community] https://hn.algolia.com/api/v1/items/44611467Really loving Bun these days. Was really pleasantly surprised using their shell scripting API in typescript - single file, shebang line, straightforward DSL, support for piping data here and there. Really, really nice and ergonomic.
  • [community] https://hn.algolia.com/api/v1/items/44611467It is also my first choice now. Especially due to built in SQLite support. Also recently needed to write a simple script to dump some data to S3. Found out that bun has built in s3 client too...

Drive the product through a documented public APIweight 3

3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max

  • [probe] https://bun.com/llms.txtPROBE llms.txt: HTTP 200 at https://bun.com/llms.txt # Bun ## Docs - [Welcome to Bun](https://bun.com/docs/index.md): Bun is an all-in-one toolkit for developing modern Ja
  • [probe] https://bun.com/docs.mdPROBE docs-md: HTTP 200 at https://bun.com/docs.md # Welcome to Bun > Bun is an all-in-one toolkit for developing modern JavaScript/TypeScript applications. <CardGroup>
  • [probe] https://bun.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://bun.com/openapi.json, https://bun.com/swagger.json, https://bun.com/api/openapi.json, https://bun.com/.well-known/openapi.json)
  • [probe] https://bun.com/docs/cli/installofficial CLI documented at https://bun.com/docs/cli/install
  • [claimed-docs] https://bun.com/docs/cli/installThe `bun` CLI contains a Node.js-compatible package manager designed to be a dramatically faster replacement for `npm`, `yarn`, and `pnpm`.

Issue scoped/least-privilege API credentials for an agentweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Build against official SDKsweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Subscribe to events via webhooksweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Agent-ready = 52.2 ÷ 90 × 100 = 58.0

API quality8.0/100×0.20 of the PA blend

The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.

Explore an interactive API reference with runnable examplesweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://bun.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://bun.com/openapi.json, https://bun.com/swagger.json, https://bun.com/api/openapi.json, https://bun.com/.well-known/openapi.json)
  • [probe] https://bun.com/llms.txtPROBE llms.txt: HTTP 200 at https://bun.com/llms.txt # Bun ## Docs - [Welcome to Bun](https://bun.com/docs/index.md): Bun is an all-in-one toolkit for developing modern Ja
  • [probe] https://bun.com/docs.mdPROBE docs-md: HTTP 200 at https://bun.com/docs.md # Welcome to Bun > Bun is an all-in-one toolkit for developing modern JavaScript/TypeScript applications. <CardGroup>

Download a machine-readable API spec (OpenAPI or equivalent)weight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [probe] https://bun.com/llms.txtPROBE llms.txt: HTTP 200 at https://bun.com/llms.txt # Bun ## Docs - [Welcome to Bun](https://bun.com/docs/index.md): Bun is an all-in-one toolkit for developing modern Ja
  • [probe] https://bun.com/docs.mdPROBE docs-md: HTTP 200 at https://bun.com/docs.md # Welcome to Bun > Bun is an all-in-one toolkit for developing modern JavaScript/TypeScript applications. <CardGroup>
  • [probe] https://bun.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://bun.com/openapi.json, https://bun.com/swagger.json, https://bun.com/api/openapi.json, https://bun.com/.well-known/openapi.json)

Test against a sandbox environment without touching production dataweight 1

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Rely on versioned APIs with a documented deprecation policyweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://bun.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://bun.com/openapi.json, https://bun.com/swagger.json, https://bun.com/api/openapi.json, https://bun.com/.well-known/openapi.json)

API quality = 4.8 ÷ 60 × 100 = 8.0

Openness0.0/100×0.20 of the PA blend

Can you leave, inspect, or self-host — data export, open source, portability.

Do everything through the API that I can do in the UIweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Export all of my data in open formats and leaveweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Read the product's source under an open licenseweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Self-host the core productweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Openness = 0.0 ÷ 20 × 100 = 0.0

Built-in AIn/a×0.15 of the PA blend

Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.

Get AI-generated insights and suggestions from my data inside the productweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Set up automations that run autonomously in the backgroundweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Delegate tasks to a built-in AI assistant inside the productweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Operate the product with natural-language commandsweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

every cell n/a — unscored (not zero), excluded from the blend

Automation36.0/100×0.15 of the PA blend

Depth of automation primitives — rules, scheduling, bulk operations, webhooks.

Perform bulk operations across many items at onceweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://bun.com/docs/install/auditRuns the audit, then upgrades each vulnerable package to the lowest non-vulnerable version that every dependent's range allows, and installs.
  • [claimed-docs] https://bun.com/docs/install/workspacesInstall dependencies for all workspaces starting with `pkg-` except for `pkg-c`
  • [claimed-docs] https://bun.com/docs/install/workspacesWhen many packages need the same dependency versions, define those versions once in a catalog in the root `package.json`
  • [claimed-docs] https://bun.com/docs/cli/installInstall dependencies for only `pkg-a` in `./packages/pkg-a`
  • [claimed-docs] https://bun.com/docs/install/workspacesWhen many packages need the same dependency versions, define those versions once in a catalog in the root `package.json` and reference them from your workspaces with the `catalog:` protocol.
  • [claimed-docs] https://bun.com/docs/cli/installIn a monorepo, you can install the dependencies for a subset of packages using the `--filter` flag.
  • [community] https://hn.algolia.com/api/v1/items/44611467So can I use bun now in pnpm monorepo without problems? I like bun and want to try it out more but also, I don't want to do the hassle of migrating only to find out some functionalities are missing eg. ability to run specific scripts on specific packages in monorepo.

Define rules that trigger actions automatically on eventsweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Schedule recurring jobs or workflowsweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Version, review, and roll back my automationsweight 1

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Automation = 7.2 ÷ 20 × 100 = 36.0