Skip to content

How mise’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 Score31/100

Agent-ready 63.1 × 0.30 = 18.93

API quality 0.0 × 0.20 = 0.00

Openness 32.4 × 0.20 = 6.48

Built-in AI 12.0 × 0.15 = 1.80

Automation 21.7 × 0.15 = 3.25

(18.93 + 0.00 + 6.48 + 1.80 + 3.25) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 30.46 ÷ 1.00 = 30.5

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-ready63.1/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) × 7 (quality) × 1.0 (full) = 14.0 of 20 max

  • [probe] https://mise.jdx.dev/llms.txtPROBE llms.txt: HTTP 200 at https://mise.jdx.dev/llms.txt # mise-en-place > Dev tools, env vars, and tasks in one CLI ## Guides - [Demo](https://mise.jdx.dev/demo.html): The f
  • [probe] https://mise.jdx.dev/getting-started.html.mdPROBE docs-md: HTTP 404 at https://mise.jdx.dev/getting-started.html.md

Run the product headlessly / in CI for automationweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [claimed-docs] https://mise.jdx.dev/continuous-integration.htmlwe provide a mise-action that wraps the installation of mise and the tools
  • [claimed-docs] https://mise.jdx.dev/continuous-integration.htmlwe provide a [mise-action](https://github.com/jdx/mise-action) that wraps the installation of mise and the tools
  • [claimed-docs] https://mise.jdx.dev/continuous-integration.htmlcurl https://mise.run | MISE_VERSION="$MISE_VERSION" sh mise version | grep -q "^${MISE_VERSION#v} " mise install
  • [claimed-docs] https://mise.jdx.dev/continuous-integration.htmlWe recommend pinning tools to specific versions so the environment is reproducible.
  • [claimed-docs] https://mise.jdx.dev/continuous-integration.htmlset MISE_SAFE=1 so that project configuration cannot execute code
  • [claimed-docs] https://mise.jdx.dev/continuous-integration.htmlset `MISE_SAFE=1` so that project configuration cannot execute code
  • [claimed-docs] https://mise.jdx.dev/continuous-integration.htmlset MISE_SAFE=1 so that project configuration cannot execute code.
  • [community] https://hn.algolia.com/api/v1/items/42347917Lately I was thinking 'what's the best way to integrate/use a task runner like mise in a github actions workflow'. Looking at the workflow files in the mise repository it seems like they gave up and just put in a few run: mise steps.

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) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [probe] https://mise.jdx.dev/cli/official CLI documented at https://mise.jdx.dev/cli/
  • [probe] https://mise.jdx.dev/llms.txtPROBE llms.txt: HTTP 200 at https://mise.jdx.dev/llms.txt # mise-en-place > Dev tools, env vars, and tasks in one CLI ## Guides - [Demo](https://mise.jdx.dev/demo.html): The f
  • [claimed-docs] https://mise.jdx.dev/getting-started.htmlThe quickest way to run a tool at a specific version is mise x|exec
  • [claimed-docs] https://mise.jdx.dev/getting-started.htmleval "$(~/.local/bin/mise activate bash)" >> ~/.bashrc
  • [community] https://hn.algolia.com/api/v1/items/42347917I recently switched to Mise for all of my JS, ruby, python, and java sdk management needs... Not having to install RVM, NVM, some toxic brew of python installers... has been such a breath of fresh air.
  • [community] https://hn.algolia.com/api/v1/items/42347917Just using mise as a drop-in asdf replacement has been delightful. Same functionality but much snappier with better ux

Drive the product through a documented public APIweight 3

3 (weight) × 6 (quality) × 0.6 (partial) = 10.8 of 30 max

  • [probe] https://mise.jdx.dev/cli/official CLI documented at https://mise.jdx.dev/cli/
  • [probe] https://mise.jdx.dev/llms.txtPROBE llms.txt: HTTP 200 at https://mise.jdx.dev/llms.txt # mise-en-place > Dev tools, env vars, and tasks in one CLI ## Guides - [Demo](https://mise.jdx.dev/demo.html): The f
  • [probe] https://mise.jdx.dev/openapi.jsonPROBE openapi: all candidate paths 404 (https://mise.jdx.dev/openapi.json, https://mise.jdx.dev/swagger.json, https://mise.jdx.dev/api/openapi.json, https://mise.jdx.dev/.well-known/openapi.json)
  • [claimed-docs] https://mise.jdx.dev/getting-started.htmlThe quickest way to run a tool at a specific version is mise x|exec
  • [claimed-docs] https://mise.jdx.dev/security.htmlMISE_SAFE=1 mise lock --bump --dry-run --json

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 = 56.8 ÷ 90 × 100 = 63.1

API quality0.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://mise.jdx.dev/getting-started.html.mdPROBE docs-md: HTTP 404 at https://mise.jdx.dev/getting-started.html.md
  • [probe] https://mise.jdx.dev/openapi.jsonPROBE openapi: all candidate paths 404 (https://mise.jdx.dev/openapi.json, https://mise.jdx.dev/swagger.json, https://mise.jdx.dev/api/openapi.json, https://mise.jdx.dev/.well-known/openapi.json)
  • [probe] https://mise.jdx.dev/cli/official CLI documented at https://mise.jdx.dev/cli/

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

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

  • [probe] https://mise.jdx.dev/openapi.jsonPROBE openapi: all candidate paths 404 (https://mise.jdx.dev/openapi.json, https://mise.jdx.dev/swagger.json, https://mise.jdx.dev/api/openapi.json, https://mise.jdx.dev/.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://mise.jdx.dev/openapi.jsonPROBE openapi: all candidate paths 404 (https://mise.jdx.dev/openapi.json, https://mise.jdx.dev/swagger.json, https://mise.jdx.dev/api/openapi.json, https://mise.jdx.dev/.well-known/openapi.json)

API quality = 0.0 ÷ 60 × 100 = 0.0

Openness32.4/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

  • [probe] https://mise.jdx.dev/openapi.jsonPROBE openapi: all candidate paths 404 (https://mise.jdx.dev/openapi.json, https://mise.jdx.dev/swagger.json, https://mise.jdx.dev/api/openapi.json, https://mise.jdx.dev/.well-known/openapi.json)
  • [probe] https://mise.jdx.dev/cli/official CLI documented at https://mise.jdx.dev/cli/

Export all of my data in open formats and leaveweight 3

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

  • [claimed-docs] https://mise.jdx.dev/dev-tools/mise is also compatible with asdf `.tool-versions` files and with idiomatic version files
  • [claimed-docs] https://mise.jdx.devmise replaces them with one file that's checked in, so a fresh laptop is `git clone` and `mise bootstrap`.
  • [claimed-docs] https://mise.jdx.devComing from asdf? mise reads `.tool-versions` as-is.
  • [claimed-docs] https://mise.jdx.dev/dev-tools/mise is also compatible with asdf `.tool-versions` files
  • [claimed-docs] https://mise.jdx.dev/configuration.htmlmise looks for these files in every parent directory, so if you have a `~/src/work/myproj/mise.toml` file, what is defined there overrides anything set in `~/src/work/mise.toml`

Read the product's source under an open licenseweight 2

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

  • [github] https://github.com/jdx/mise$ mise set SOME_VAR=bar $ echo $SOME_VAR bar
  • [github] https://github.com/jdx/misedepends = ["validate", "plan"] run = "terraform apply -auto-approve"
  • [github] https://github.com/jdx/miseLoad environment variables per project directory, including values from `.env` files and other sources.
  • [claimed-docs] https://mise.jdx.dev/continuous-integration.htmlwe provide a [mise-action](https://github.com/jdx/mise-action) that wraps the installation of mise and the tools

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 = 16.2 ÷ 50 × 100 = 32.4

Built-in AI12.0/100×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

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

  • [claimed-docs] https://mise.jdx.dev/tasks/mise watch to automatically rebuild on changes—no configuration required, but it helps
  • [claimed-docs] https://mise.jdx.dev/tasks/building dependencies in parallel—by default, with no configuration required
  • [claimed-docs] https://mise.jdx.dev/tasks/[mise watch](./running-tasks.html#watching-files) to automatically rebuild on changes—no configuration required, but it helps
  • [github] https://github.com/jdx/misedepends = ["validate", "plan"] run = "terraform apply -auto-approve"
  • [claimed-docs] https://mise.jdx.dev/tasks/Define and run project _tasks_ for building, testing, linting, deploying, and everyday development workflows.

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

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

  • [claimed-docs] https://mise.jdx.dev/getting-started.htmlThe quickest way to run a tool at a specific version is mise x|exec
  • [claimed-docs] https://mise.jdx.dev/getting-started.htmlmise use --global node@26 # install node 26 and set it as the global default
  • [probe] https://mise.jdx.dev/llms.txtPROBE llms.txt: HTTP 200 at https://mise.jdx.dev/llms.txt # mise-en-place > Dev tools, env vars, and tasks in one CLI ## Guides - [Demo](https://mise.jdx.dev/demo.html): The f
  • [probe] https://mise.jdx.dev/cli/official CLI documented at https://mise.jdx.dev/cli/

Built-in AI = 4.8 ÷ 40 × 100 = 12.0

Automation21.7/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) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://mise.jdx.dev/tasks/building dependencies in parallel—by default, with no configuration required
  • [claimed-docs] https://mise.jdx.dev/tasks/[tasks.build] description = "Build the CLI" run = "cargo build"
  • [claimed-docs] https://mise.jdx.devmise bootstrap sets up a whole machine from the same config: OS packages, dotfiles, repos, services, macOS defaults, and services, then your tools.
  • [claimed-docs] https://mise.jdx.devPoint it at a fresh machine and `mise bootstrap` sets up the rest: packages, dotfiles, services.

Define rules that trigger actions automatically on eventsweight 3

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

  • [claimed-docs] https://mise.jdx.dev/dev-tools/Once activated, mise can automatically switch between different versions of tools based on the directory you're in.
  • [claimed-docs] https://mise.jdx.devPer-project env vars from `mise.toml`, .env files, secrets, and shell commands. Set when you enter, gone when you leave.
  • [claimed-docs] https://mise.jdx.dev/tasks/mise watch to automatically rebuild on changes—no configuration required, but it helps
  • [claimed-docs] https://mise.jdx.dev/tasks/[mise watch](./running-tasks.html#watching-files) to automatically rebuild on changes—no configuration required, but it helps
  • [claimed-docs] https://mise.jdx.devSet when you enter, gone when you leave.

Schedule recurring jobs or workflowsweight 2

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

  • [claimed-docs] https://mise.jdx.dev/tasks/Define and run project _tasks_ for building, testing, linting, deploying, and everyday development workflows.
  • [claimed-docs] https://mise.jdx.dev/tasks/mise watch to automatically rebuild on changes—no configuration required, but it helps
  • [claimed-docs] https://mise.jdx.dev/tasks/[tasks.build] description = "Build the CLI" run = "cargo build"
  • [claimed-docs] https://mise.jdx.dev/tasks/You can then run the task with `mise run build`
  • [claimed-docs] https://mise.jdx.dev/tasks/[mise watch](./running-tasks.html#watching-files) to automatically rebuild on changes—no configuration required, but it helps

Version, review, and roll back my automationsweight 1

1 (weight) × 4 (quality) × 0.6 (partial) = 2.4 of 10 max

  • [claimed-docs] https://mise.jdx.devmise replaces them with one file that's checked in, so a fresh laptop is `git clone` and `mise bootstrap`.
  • [claimed-docs] https://mise.jdx.devmise replaces them with one file that's checked in, so a fresh laptop is `git clone` and `mise bootstrap`
  • [claimed-docs] https://mise.jdx.dev/configuration.htmlmise looks for these files in every parent directory, so if you have a `~/src/work/myproj/mise.toml` file, what is defined there overrides anything set in `~/src/work/mise.toml`
  • [claimed-docs] https://mise.jdx.dev/tasks/Define and run project _tasks_ for building, testing, linting, deploying, and everyday development workflows.
  • [claimed-docs] https://mise.jdx.dev/tasks/[tasks.build] description = "Build the CLI" run = "cargo build"

Automation = 17.4 ÷ 80 × 100 = 21.7